Pasirinktų MSCAN operacijų eilučių ignoravimas

Pateikiama informacija, kaip MSCAN sprendime teisingai sukonfigūruoti tam tikrų operacijos eilučių (pavyzdžiui, transporto paslaugų, pardavimo kodų ar kitų ne fizinių prekių) ignoravimą. Tai leidžia vartotojams patogiai skenuoti tik realias prekes, o sistemai – sklandžiai užbaigti operaciją.

Eilučių atvaizdavimo filtravimas ekrane

MSCAN aplikacijoje eilučių filtravimui naudojamas Rivile Gama MSCAN parametras MSCAN_DFIL.

Šis parametras apriboja atvaizduojamą informaciją. Pavyzdžiui, įrašius reikšmę N17_TIPAS = 1, vartotojui bus rodomos tik prekės, o paslaugos ar kiti kodai bus paslėpti.

eil_01

Nors MSCAN_DFIL paslepia eilutes ekrane, operacijos pabaigimo metu į šį filtrą nėra atsižvelgiama.

Su viena MSCAN operacija vienu metu lygiagrečiai gali dirbti keli vartotojai. Skirtingi vartotojai gali turėti skirtingus filtrus (pavyzdžiui, kiekvienas mato tik savo padalinio priskirtas prekes). Operacijos pabaigimo procesas privalo apdoroti ir įvertinti visų vartotojų atliktus pakeitimus ir visos operacijos būklę, todėl asmeniniai vaizdo filtrai čia negalioja. Jei dalis eilučių liks neapdorotos, sistema pabaigimo metu jas pašalins.

Automatinis eilučių patvirtinimas

Yra galimybė prekių skenavimo metu iškviesti formulę, kuri atitinkamas eilutes pažymėtų kaip pabaigtas ir taip išvengti šių eilučių pašalinimo pabaigiant operaciją.

Veikimo principas: Nuskenavus pačią pirmą prekę, automatiškai suveikia formulė, kuri pereina per visas operacijos eilutes. Visos eilutės, kurios atitinka nurodytus kriterijus, yra programiškai pažymimos kaip pilnai atrinktos. Kadangi šios eilutės tampa užbaigtos, operacijos pabaigimo metu sistema jas sėkmingai ignoruoja.

Sprendimo privalumai ir lankstumas: ši vieta yra pritaikoma pagal reikalingą verslo logiką.

Pavyzdžiai į ką galima atsižvelgti automatinio patvirtinimo formulėje:

  • Prekės/paslaugos tipą (N17_TIPAS).
  • Konkrečius prekės ar paslaugos kodus (pvz., tik transporto išlaidos).
  • Padalinius ar kitus operacijos/eilutės parametrus.

Formulės pavyzdys

Formulė naudojama Rivile Gama parametre MSCAN_SKEN lauke Formulė PRIEŠ.

declare @module char(2), @operationCode char(12), @operationType char(20), @mscanUser char(12)
select @module = module, @operationCode = operationCode, @operationType = operationType, @mscanUser = mscanUser from #inParams

-- paslaugos ir kodai pažymimi kaip pilnai atrinkti
if @module in ('PO', 'RO')
    insert into dbo.RGI_MSCAN_D (operationCode, module, operationType, rowNumber, productCode, productName, mscanCode, barcode, objectCode, lot,
        unitCode, quantityApp, quantityDoc, fraction, isFullyCollected, addUser, updateUser, updateDate, addDate)
    select i07_kodas_po, @module, @operationType, i07_eil_nr, i07_kodas, i07_pav, '', isnull(n37_bar_kodas, ''), i07_kodas_os, i07_serija,
        i07_kodas_us_p, i07_alt_kiekis, i07_alt_kiekis, i07_alt_frak, 1, @mscanUser, @mscanUser, convert(char(30),getdate(),20), convert(char(30),getdate(),20)
    from dbo.I07_PARD left join dbo.RGI_MSCAN_D on module = @module and i07_kodas_po = operationCode
        left join dbo.N17_PROD on i07_kodas = n17_kodas_ps left join dbo.N37_PMAT on n17_kodas_ps = n37_kodas_ps and i07_kodas_us_p = n37_kodas_us
    where i07_kodas_po = @operationCode and id is null and (n17_kodas_ps is null or n17_tipas = 2)

eil_02