Servisas -> Administravimas -> Parametrai
Pastaba 1. Parametrų reikšmės gali būti aprašomos pagal modulius.
Jeigu parametro reikšmė galioja tik lokacijų operacijose, parenkamas modulis "Sandėlio valdymas SV".
Pastaba 2. MSCAN aplikacijoje gali būti kuriami nauji dokumentai. Tokiu atveju, turi būti peržiūrėti ir tinkamai aprašyti Nustatymai, reikalingi naujų dokumentų kūrimui MSCAN aplikacijoje.
| Parametras | Aprašymas |
|---|---|
| MSCAN_BUS | MSCAN aplikacijoje naudojamų būsenų pavadinimai. |
| MSCAN_HSAR | Dokumentų sąraše matoma informacija. |
| MSCAN_HRUS | Dokumentų sąrašo rūšiavimas. |
| MSCAN_HFIL | Dokumentų sąrašo filtravimas. |
| MSCAN_HPAP | Informacijos apie dokumentą papildymas |
| MSCAN_DSAR | Detalioje eilutėje matoma informacija. |
| MSCAN_DRUS | Detalios informacijos rūšiavimas. |
| MSCAN_DFIL | Detalios informacijos filtravimas. |
| MSCAN_DPAP | Informacijos apie detalią eilutę papildymas laukais iš lentelių N17_PROD, N37_PMAT, I33_PKAI ir I17_VPRO. |
| MSCAN_DISM | Detalios eilutės išmetimas. |
| MSCAN_PAB_OP | Operacijų užbaigimo parametras, nustatantis teises, kai atrinktas kiekis nesutampa su dokumento kiekiu. |
| MSCAN_DPAS | Detalios eilutės pastabų lauko pasirinkimo variantai. Pagal nutylėjimą, galima vesti bet kokią reikšmę. |
| MSCAN_HPAS | Operacijos užbaigimo metu vedamų pastabų lauko pasirinkimo variantai. Pagal nutylėjimą, galima vesti bet kokią reikšmę. |
| MSCAN_KIEKOR | Ar leisti detalioje eilutėje kiekio koregavimą. Pagal nutylėjimą ši galimybė yra išjungta. |
| MSCAN_ATR_TO | Prekių kiekių tolerancija atrinkimo operacijose. |
| MSCAN_PAJ_TO | Prekių kiekių tolerancija pajamavimo operacijose. |
| MSCAN_ATR_GT | Parametras nustato, ar atrinkimo metu prekių kiekiams taikoma griežta tolerancija |
| MSCAN_PAJ_GT | Parametras nustato, ar pajamavimo metu prekių kiekiams taikoma griežta tolerancija |
| MSCAN_KP_PAV | Aprašymo laukų pasirinkimo variantai, kuriant naujas kaupiklio operacijas. Pagal nutylėjimą, galima vesti bet kokią reikšmę. |
| MSCAN_IV_PAV | Aprašymo laukų pasirinkimo variantai, kuriant naujas inventorizacijos operacijas. Pagal nutylėjimą, galima vesti bet kokią reikšmę. |
| MSCAN_IS | Padalinio kodas pagal nutylėjimą MSCAN aplikacijoje. |
| MSCAN_APPIS | Parametras skirtas nurodyti padalinių, su kuriais vartotojas galės dirbti aplikacijoje, sąrašui. |
| MSCAN_PADFIL | Leidžiamų padalinių sąrašas, kuriant vidinį dokumentą MSCAN aplikacijoje. Pagal nutylėjimą, leidžiama įvesti visus padalinius. |
| MSCAN_ITRAUK | Veiksmai su prekėmis, kurių nebuvo pirminiame dokumente. Parametro pirmo lauko reikšmė - ar leisti į MSCAN operaciją įtraukti prekę, kurios nebuvo pirminiame dokumente. Antro lauko reikšmė - ar leisti tą prekę įtraukti ir į originalų Rivile GAMA dokumentą. |
| MSCAN_NBAR | Parametras nustato, ar MSCAN aplikacijoje leisti įtraukti neegzistuojantį barkodą. |
| MSCAN_TARA | Ar skenuojant prekę įtraukti ir tarą (jei prekės kortelėje ji yra aprašyta). Pagal nutylėjimą, ši galimybė yra išjungta. |
| SS_SVS_KBAR | Sveriamo barkodo maketas. |
| MSCAN_PAGVNT | Galimybė įjungti režimą, kai skenuojant prekės papildomą barkodą visa informacija verčiama į prekės pagrindinį mato vienetą. |
| MSCAN_DOKTIP | Leistini dokumentų tipai, kuriant naują dokumentą MSCAN aplikacijoje. |
| MSCAN_PASTAB | Pastabų pasirinkimo variantai, kuriant pirkimo, pardavimo, gamybos ar vidinį dokumentą MSCAN aplikacijoje. Pagal nutylėjimą, galima vesti bet kokią reikšmę. |
| MSCAN_NUOROD | Nurodomas prekės kortelės laukas, kuriame talpinama išorinė nuotraukos nuoroda. |
| MSCAN_PAP1, MSCAN_PAP2, MSCAN_PAP3, MSCAN_PAP4, MSCAN_PAP5 | Aprašomi papildomi laukai, kurie bus skenuojami (vedami) MSCAN aplikacijoje. Pirma parametro reikšmė nustato lauko pavadinimą, antra – lauko tipą. |
| MSCAN_GAMIN | Gaminio kiekio koregavimas (tik gamybos modulyje) |
| MSCAN_SKYR | Barkodo / objekto / serijos skyriklis |
| MSCAN_NAUEIL | Galimybė skenuojant brūkšninius kodus nesumuoti eilučių, t. y. kiekvieną kartą nuskenavus prekę į operaciją ji įkris kaip nauja eilutė. Parametras veikia tik Kaupiklių modulyje. |
| MSCAN_KOMP | Automatinis komponenčių įtraukimas naujose gamybos operacijose iš komplektuojamų prekių kortelių kalkuliacijų. |
| MSCAN_KOMPP | Komponentų parinkimas pagal serijas ir likučius gamybos operacijose. |
| MSCAN_KS_FIL | MSCAN klientų filtravimas pagal N08 (veikia iš sąrašo pasirenkant klientą, kai per MSCAN kuriamos pardavimo / pirkimo operacijos) |
| MSCAN_PS_FIL | MSCAN prekių filtravimas pagal N17 (veikia iš sąrašo pasirenkant gaminį, kai per MSCAN kuriamos gamybos operacijos) |
| MSCAN_BAR_PA | Prekės paieška |
| MSCAN_OBJ_PA, MSCAN_OB2_PA | Objekto paieška |
| MSCAN_SER_PA, MSCAN_SE2_PA | Serijos paieška |
| MSCAN_ADR_PA | Alternatyvaus adreso paieška |
| MSCAN_SKEN | Skenavimo metu kviečiamos formulės |
| MSCAN_PABAIG | Operacijos pabaigimo metu kviečiamos formulės |
| MSCAN_DT_INF | Formulė informacijos apie detalią eilutę arba dokumentą formavimui |
| MSCAN_BA_INF | Informacijos apie barkodą formulė |
| MSCAN_LAU_TV | Rodomi skenavimo laukai ir jų eiliškumas |
| MSCAN_MENIU | Rodomi meniu punktai ir jų eiliškumas |
| MSCAN_MINUSL | Neigiami lokacijų likučiai |
| MSCAN_V3 | Versijos keitimo mygtukas |
| MSCAN_LOK | Reikalauti įvesti lokaciją |
Automatiniam būsenų sukūrimui užprogramuojamas klavišas: MSCAN Būsenų importas.
Plačiau apie MSCAN būsenas aprašyta MSCAN būsenos.
Parametras leidžia vartotojui pakeisti MSCAN modulyje naudojamų būsenų pavadinimus.
Šis parametras nustatomas tik modulio lygyje. Vartotojo laukas naudojamos būsenos kodui įrašyti. Jeigu parametras neaprašytas, naudojamos standartinės MSCAN būsenos.
Būsenos kodas (N,K,P..) rašomas į lauką "Vartotojas".
Būsenų kodai:

Dokumentų sąrašo formavimui naudojami laukai:
| Kodas | Aprašymas |
|---|---|
| operationCode | operacijos numeris |
| operationType | operacijos tipas – (ATR – atrinkimas, PAJ – pajamavimas, KAUP - kaupikliai) |
| documentNr | dokumento numeris |
| docDate | dokumento data |
| clientCode | kliento kodas |
| clientName | kliento pavadinimas |
| description | pirmas aprašymo laukas Rivile GAMA sistemoje (Pirkimo ir Pardavimo moduliuose – I06_APRASYMAS1, vidiniuose – I09_PAV, kaupiklių modulyje – I51_PAV) |
| appPosition | nuskenuotų pozicijų kiekis |
| documentPosition | dokumente esančių pozicijų kiekis |
| logisticsCode1 | pirmas dokumento logistikos kodas |
| logisticsCode2 | antras dokumento logistikos kodas |
| logisticsCode3 | trečias dokumento logistikos kodas |
| logisticsCode4 | ketvirtas dokumento logistikos kodas |
| managerCode | menedžerio kodas |
| state | operacijos būsenos pavadinimas (pavyzdžiui, „MSCAN renkama“) |
| stateIndicator | būsenos indikatorius (K - renkama, N - paruošta) |
| addUser | MSCAN vartotojas pradėjęs skanavimą |
| addDate | MSCAN skanavimo pradžios laikas |
| updateUser | MSCAN vartotojas paskutinis koregavęs operaciją |
| updateDate | MSCAN operacijos paskutinio koregavimo laikas |
Papildomai galima panaudoti informaciją iš:
N08), N15), I06) (parametras galimas tik Pirkimo/Pardavimo modulyje),I09) (parametras galimas tik Vidinių modulyje),I15) (parametras galimas tik Gamybos modulyje), I51) (parametras galimas tik Kaupiklių modulyje), I47) (parametras galimas tik Inventorizacijos modulyje), @mscan_user - MSCAN dirbančio vartotojo vardas GAMA programoje. Daugiau informacijos apie lentelių struktūras čia.
Parametras, leidžiantis vartotojui pakeisti dokumentų sąraše matomą informaciją.
Kiekviena operacija matoma dviem eilutėmis: Elementas1 ir Elementas2:

Elementas 1 - aprašomas pirmame parametro reikšmės lauke.
Elementas 2 – aprašomas antrame parametro reikšmės lauke.
Jeigu norima rodyti kelių laukų reikšmes, parametro aprašyme tokie laukai atskiriami kableliu.
Parametras gali būti valdomas bendrai, modulio, vartotojų grupės ar vartotojo lygyje.
Pvz.:

Papildomai galima panaudoti:
'Dok: '+documentNr+', '+convert(char(10),docDate,102)+', renka:'+addUser,Parametras skirtas nustatyti laukus, pagal kuriuos rūšiuojamas dokumentų sąrašas ir jų rūšiavimo tvarką.
Parametras gali būti valdomas bendrai, modulio, vartotojų grupės ar vartotojo lygyje
Pvz.:

Parametras, skirtas papildomai filtruoti operacijas dokumentų sąraše, aprašomas naudojant SQL sintaksę.
Parametras gali būti valdomas bendrai, modulio, vartotojų grupės ar vartotojo lygyje.
Pvz.:

Neaprašius parametrų:
Elementas 1 - operacijos numeris,
Elementas 2 - dokumento numeris ir operacijos data,
Rūšiavimas - pagal operacijos numerį,
Papildomo filtravimo nėra (rodoma tik "paruoštos" bei "renkamos" operacijos).
Detali informacija apie dokumentą gali būti papildoma laukais iš lentelių N08_KLIJ, N15_MEN, o gamybos modulyje ir iš N17_PROD, N37_PMAT, I33_PKAI.
MSCAN aplikacijoje spustelėjus ant dokumento hederio, atsiranda galimybė pažiūrėti dokumento informaciją:


Standartiškai pateikiamą informaciją galima papildyti laukais iš lentelių N08_KLIJ, N15_MEN, o gamybos modulyje ir iš N17_PROD, N37_PMAT, I33_PKAI, t.y. atsiranda galimybė matyti gaminio kainą, svorį, logistikos kodus ir kt.
Parametro aprašyme laukų reikšmės skiriamos kableliu. Aprašymui gali būti naudojama tiek pirma, tiek antra parametro reikšmė. Jeigu laukui suteikiamas pavadinimas, naudojama speciali išraiška, tokia kaip pavyzdžiui :
N17_KODAS_KS as 'Tiekėjas', N37_BAR_KODAS,N37_NETTO

Norint papildyti ar pakeisti standartinį informacijos suformavimo algoritmą, galima nurodyti atitinkamos informacijos suformavimo formulę parametre MSCAN_DT_INF.
Dokumento detalių eilučių formatavimui naudojami laukai:
| Kodas | Aprašymas |
|---|---|
| productCode | prekės kodas |
| productName | prekės pavadinimas |
| unitCode | matavimo vienetas |
| objectCode | objekto kodas |
| lot | serija |
| departmentCode | padalinio kodas |
| fraction | matavimo vieneto frakcija |
| module | modulis (RO – pardavimų, PO – pirkimų, VD – vidinių, KP – kaupiklių) |
| operationCode | operacijos kodas |
| operationType | operacijos tipas (ATR – atrinkimas, PAJ – pajamavimas, KAUP – kaupikliai) |
| quantityApp | nuskenuotas kiekis |
| quantityDocument | kiekis dokumente |
| rowNumber | eilutės numeris |
| updateDate | eilutės atnaujinimo data |
| barcode | prekės brūkšninis kodas |
| fstock | detalios eilutės likutis (FIFO kiekis - rezervuota - atiduota) |
| ivstock | inventorizacijos prekių sąrašo pafiksuotas kiekis (galimas tik Inventorizacijos modulyje) |
| mscanCode | nuskanuotas kodas (paskutinio skanavimo) |
| note | pastabos |
Papildomai galima panaudoti informaciją iš:
N17), N37), I33),I17), I07) (parametras galimas tik Pirkimo/Pardavimo modulyje), I10) (parametras galimas tik Vidinių modulyje),I16) (parametras galimas tik Gamybos modulyje),I52) (parametras galimas tik Kaupiklių modulyje),I46) (parametras galimas tik Inventorizacijos modulyje),I48) (parametras galimas tik Inventorizacijos modulyje),I52) (parametras galimas tik Kaupiklių modulyje),@mscan_user - MSCAN dirbančio vartotojo vardas GAMA programoje. Daugiau informacijos apie lentelių struktūras čia.
Dokumento viduje kiekviena prekė matoma dviem eilutėmis: Elementas1 ir Elementas2:

Elementas 1 - aprašomas pirmame parametro reikšmės lauke
Elementas 2 – aprašomas antrajame parametro reikšmės lauke.
Jeigu norima rodyti kelių laukų reikšmes, parametro aprašyme tokie laukai atskiriami kableliu nepaliekant tarpų. Pvz.:

Papildomai galima panaudoti :
'pav:'+n17_pav+', lik:'+fstock+', sertif:'+rtrim(n17_sertif_poz),Parametras skirtas nustatyti laukus, pagal kuriuos dokumente rūšiuojamos detalios eilutės.
Parametras gali būti valdomas bendrai, modulio, vartotojų grupės ar vartotojo lygyje.
Papildomai galima panaudoti prekės informacijos duomenis (N17,N37,I33,I17).
Pvz.:

Parametras skirtas nustatyti laukus, pagal kuriuos dokumente filtruojamos detalios eilutės (SQL sintaksė).
Parametras gali būti valdomas bendrai, modulio, vartotojų grupės ar vartotojo lygyje.
Papildomai galima panaudoti prekės informacijos duomenis (N17,N37,I33,I17)
Pvz.:

Neaprašius parametrų:
Elementas 1 - prekės barkodas,
Elementas 2 - prekės pavadinimas,
Rūšiavimas - pagal operacijos numerį,
Filtruojamos tik prekės (pagal nutylėjimą paslaugų nerodo).
Informacija apie detalią eilutę gali būti papildoma laukais iš lentelių N17_PROD, N37_PMAT, I33_PKAI ir I17_VPRO.
MSCAN aplikacijoje spustelėjus ant detalios eilutės, atsiranda galimybė pažiūrėti informaciją apie eilutę:

Standartiškai pateikiamą informaciją galima papildyti laukais iš lentelių N17_PROD, N37_PMAT, I33_PKAI ir I17_VPRO, t.y. rodyti tiekėją, kainas, svorius, likutį ir pan.
Parametro aprašyme laukų reikšmės skiriamos kableliu. Aprašymui gali būti naudojama tiek pirma, tiek antra parametro reikšmė. Jeigu laukui suteikiamas pavadinimas, naudojama speciali išraiška, tokia kaip pavyzdžiui :
N17_KODAS_KS as 'Tiekėjas', N37_BAR_KODAS,N37_NETTO

Norint papildyti ar pakeisti standartinį informacijos suformavimo algoritmą, galima nurodyti atitinkamos informacijos suformavimo formulę parametre MSCAN_DT_INF.
Galimybė išmesti detalią eilutę dokumente atsiranda tik tada, kai parametro MSCAN_DISM pirma reikšmė nurodoma "Taip".
Jeigu Rivile GAMA parametras nėra aprašytas arba pirmoji parametro reikšmė "Ne", tuomet MSCAN aplikacijoje paspaudus ant detalios eilutės, pasirinkimas "Ištrinti" nebus rodomas.

Jeigu aprašant parametrą pirmoji reikšmė nurodoma "Taip", o antroji - "Ne", tuomet leidžiama išmesti tik savo paties kurtus įrašus, t. y. tikrinama, ar sutampa vartotojas, kuris nori ištrinti detalią eilutę, su eilutės autoriumi tiek Rivile GAMA programoje, tiek MSCAN aplikacijoje.
Jeigu norima, kad vartotojas galėtų trinti visus įrašus (detalias eilutes), neatsižvelgiant į autorių, parametro abi reikšmės turi būti nurodytos "Taip".

Kai atrinktas kiekis nesutampa su originaliame dokumente įvestu kiekiu, bandant užbaigti operaciją vartotojui leidžiama pasirinkti iš 2 variantų:
Parametras gali būti valdomas bendrai, modulio, vartotojų grupės ar vartotojo lygyje.
Jeigu abi parametro reikšmės bus "Ne" ir dokumentas bus netiksliai atrinktas, vartotojas per MSCAN aplikaciją negalės užbaigti operacijos.

Užbaigus su netikslumais, dokumente buvę kiekiai lieka nepakitę, suvesti kiekiai matosi tik MSCAN informacijoje.
Jeigu dokumentas buvo sukurtas per MSCAN ir baigiama su netislumais, tai dokumente matysis tik Barkodai, o kiekiai bus nuliai.
Užbaigus koreguojant, iškoreguojami dokumente esantys kiekiai.
Išimtis! Vidinio judėjimo operacijose PAJAMAVIMO metu niekada nebus koreguojami kiekiai originaliame dokumente.
MSCAN informaciją galima pasižiūrėti ir atsispausdinti, paspaudus tam tikslui užsiprogramuotą klavišą.
Klavišo užprogramavimas aprašytas MSCAN informacijos peržiūros aprašymas.
Detalioje eilutėje galima įvesti pastabas. Spustelėjus ant detalios eilutės, atsiranda pasirinkimas "Eilutės koregavimas".

Paspaudus "Eilutės koregavimas" , užpildomas pastabų laukas.

Pastabų laukas gali būti suadministruotas kaip sąrašinis - tada jo galimos reikšmės aprašomos parametre MSCAN_DPAS.

Operacijos užbaigimo metu galima įvesti pastabas.

Pastabų laukas gali būti suadministruotas kaip sąrašinis - tada jo galimos reikšmės aprašomos parametre MSCAN_HPAS.

Pagal nutylėjimą, kiekio koregavimas detalioje eilutėje negalimas.

Paspaudus "Eilutės koregavimas" , užpildomas tik pastabų laukas ir papildomi laukai (jei tokie naudojami).
Parametre uždėjus reikšmę .T. , atsiranda galimybė įvesti nuskenuotą kiekį.


Paspaudus "Tęsti", įvestas kiekis išsaugomas.
Parametras nustato prekių kiekių toleranciją atrinkimo operacijose.
Parametras gali būti valdomas bendrai, modulio, vartotojų grupės ar vartotojo lygyje.
Tolerancija yra procentinė išraiška, kuri nurodo, kiek gali nuskenuotas kiekis viršyti dokumente įvestą faktinį kiekį, neišduodant įspėjimo vartotojui.
Parametro pirma reikšmė skirta nurodyti toleranciją vienetinėms prekėms, antroji – frakcijinėms prekėms.

Pagal nutylėjimą, atrinktas kiekis turi sutapti su dokumento kiekiu (tolerancija lygi 0.00).
Jeigu dokumentas yra sukurtas per MSCAN aplikaciją, į toleranciją nebus atsižvelgiama.
Parametre nurodžius reikšmę -9999, tolerancijos sąlygos yra ignoruojamos, t. y. netikrinama, ar atrinktas prekės kiekis didesnis nei dokumente.
Parametras MSCAN_ATR_GT nustato ar atrinkimo metu prekių kiekiams taikoma griežta tolerancija.
Parametras nustato prekių kiekių toleranciją pajamavimo operacijose.
Parametras gali būti valdomas bendrai, modulio, vartotojų grupės ar vartotojo lygyje
Tolerancija yra procentinė išraiška, kuri nurodo, kiek gali nuskenuotas kiekis viršyti dokumente įvestą faktinį kiekį, neišduodant įspėjimo vartotojui.
Parametro pirma reikšmė skirta nurodyti toleranciją vienetinėms prekėms, antroji – frakcijinėms prekėms.

Pagal nutylėjimą, užpajamuotas kiekis turi sutapti su dokumento kiekiu (tolerancija lygi 0.00).
Jeigu dokumentas yra sukurtas per MSCAN aplikaciją, į toleranciją nebus atsižvelgiama.
Parametre nurodžius reikšmę -9999, tolerancijos sąlygos yra ignoruojamos, t. y. netikrinama, ar pajamuotas prekės kiekis didesnis nei dokumente.
Parametras MSCAN_PAJ_GT nustato ar pajamavimo metu prekių kiekiams taikoma griežta tolerancija.
Parametras gali būti valdomas bendrai, modulio, vartotojų grupės ar vartotojo lygyje.
Prekių kiekio tolerancijos procentas atrinkimo metu nustatomas naudojant parametrą MSCAN_ATR_TO.
Parametras nurodo, ar tolerancija turi būti griežta. Jeigu įvesta reikšmė Taip - kai nuskenuotas kiekis didesnis nei dokumente įvestas faktinis kiekis vartotojui išduodama klaida. Priešingu atveju – išduodamas tik įspėjamasis pranešimas.
Parametro pirma reikšmė skirta nurodyti, ar griežta tolerancija taikoma vienetinėms prekėms, antroji – frakcijinėms prekėms.

Jeigu parametre nurodyta reikšmė – „Taip“, nuskenavus didesnį kiekį, nei faktiškai įvesta dokumente, gaunama klaida:

Jeigu parametras neįvestas, arba nurodyta reikšmė – „Ne“, nuskenavus didesnį kiekį, nei faktiškai įvesta dokumente, gaunamas įspėjimas:

Jeigu dokumentas yra sukurtas per MSCAN aplikaciją, į toleranciją nebus atsižvelgiama.
Parametras gali būti valdomas bendrai, modulio, vartotojų grupės ar vartotojo lygyje.
Prekių kiekio tolerancijos procentas atrinkimo metu nustatomas naudojant parametrą MSCAN_PAJ_TO
Parametras nurodo, ar tolerancija turi būti griežta. Jeigu įvesta reikšmė – Taip, kai nuskenuotas kiekis didesnis nei dokumente įvestas faktinis kiekis vartotojui išduodama klaida. Priešingu atveju – išduodamas tik įspėjamasis pranešimas.
Parametro pirma reikšmė skirta nurodyti, ar griežta tolerancija taikoma vienetinėms prekėms, antroji – frakcijinėms prekėms.

Jeigu parametre nurodyta reikšmė – „Taip“, nuskenavus didesnį kiekį, nei faktiškai įvesta dokumente gaunama klaida:

Jeigu parametras neįvestas, arba nurodyta reikšmė – „Ne“, nuskenavus didesnį kiekį, nei faktiškai įvesta dokumente gaunamas įspėjimas:

Jeigu dokumentas yra sukurtas per MSCAN aplikaciją, į toleranciją nebus atsižvelgiama.
Parametras naudojamas naujos kaupiklio operacijos kūrimo procese.
Parametre aprašomos reikšmės, kurias galima rinktis naujai kuriamos kaupiklio operacijos aprašymo lauke. Galimi variantai atskiriami kableliu. Pvz.:

Jeigu parametras neįvestas, naujai kuriamos kaupiklio operacijos aprašymo lauke galima įvesti bet kokią reikšmę.
Parametras naudojamas naujos inventorizacijos operacijos kūrimo procese.
Parametre aprašomos reikšmės, kurias galima rinktis naujai kuriamos inventorizacijos operacijos aprašymo lauke. Galimi variantai atskiriami kableliu.

Jeigu parametras neįvestas, naujai kuriamos inventorizacijos operacijos aprašymo lauke galima įvesti bet kokią reikšmę.
Parametras veikia tuo atveju, kai nenaudojamas parametras MSCAN_APPIS.
Parametro aprašyme nurodomas padalinys, naudojamas informacijai apie prekę (barkodą) gauti. Pavyzdžiui, prekės kaina padalinyje ar prekės likutis padalinyje bus paimami iš parametre nurodyto padalinio.


Nenurodžius šio padalinio, prekės likutis bus rodomas bendrai visiems padaliniams, o kaina išvis nebus rodoma.
Parametrą būtina aprašyti Pirkimų ir Pardavimų moduliuose, jeigu norima nuskenuotą prekę, kurios nebuvo pirminiame dokumente, įtraukti į originalų Rivile GAMA dokumentą. Tada prekė bus užpajamuota arba atrinkta parametre nurodytame padalinyje.
Parametras skirtas nurodyti padalinių, su kuriais vartotojas galės dirbti aplikacijoje, sąrašui.
MSCAN_APPIS realiai panaikina MSCAN_IS.
Jeigu įjungiamas MSCAN_APPIS, tai MSCAN_IS praranda prasmę - tai reiškia, kad vartotojui leidžiama pačiam pasirinkti padalinį vietoje to, kad nustatytume per Rivile GAMA programą.
Parametro aprašyme nurodoma padalinių filtravimo lentelė.

Įjungus šį parametrą vartotojui, aplikacijoje, nustatymų skiltyje, atsiranda galimybė pasirinkti padalinį, su kurio informacija bus dirbama. Pasirinkti galima iš parametre nurodytoje filtravimo lentelėje esančių padalinių.

Pasirinkus padalinį:
Jeigu Rivile GAMA programoje vartotojui aprašytas parametras MSCAN_APPIS, tačiau MSCAN aplikacijoje vartotojas nepasirinko padalinio, vartotojui bus rodoma visų parametre aprašytų padalinių informacija.
Jeigu aprašant parametrą filtravimo lentelėje nurodytas tik vienas padalinys, MSCAN vartotojui nebūtina pasirinkti padalinio aplikacijoje. Operacijose jis bus priskiriamas automatiškai.
Jeigu Rivile GAMA programoje vartotojui aprašytas parametras MSCAN_APPIS, kuriame yra daugiau nei vienas padalinys, tačiau MSCAN aplikacijoje vartotojas nepasirinko padalinio, Pirkimų ir Pardavimų operacijose skenuojant prekes bus išduodamas pranešimas "Klaida! 0 Aplikacijos parametruose pasirinkite padalinį!".
Rivile GAMA sistemoje sukuriamos filtravimo lentelės, kuriose išvardinami padaliniai, kuriuos bus galima rinktis MSCAN aplikacijoje kuriant vidinius dokumentus. Atskirose lentelėse išvardinami padaliniai siuntėjai ir padaliniai gavėjai.
Parametre nurodomos padalinių siuntėjų ir padalinių gavėjų, su kuriais vartotojui leidžiama kurti naujus vidinius dokumentus MSCAN aplikacijoje, filtravimo lentelės.
Padalinys siuntėjas parenkamas tokia tvarka:
Padalinys siuntėjas parenkamas tokia tvarka:


Esant poreikiui, galima nustatyti, kad MSCAN leistų įtraukti į sąrašą barkodą, kuris nėra įvestas Rivile GAMA programoje.
Tokiu atveju vietoj pranešimo "Klaida! 9009 Nėra tokios prekės" bus papildomas užklausimas "403: Barkodas neegzistuoja! Spauskite tęsti, jei norite įtraukti kodą [xyz]...".
Paspaudus "Tęsti", kodas įtraukiamas į MSCAN aplikaciją su pavadinimu "Nėra barkodo".
Parametras gali būti valdomas bendrai, modulio ar vartotojo lygyje. Jeigu parametras nenustatytas - neleidžiama įtraukti neegzistuojančio barkodo.



Jeigu kartu su parametru MSCAN_NBAR naudojamas parametras MSCAN_DFIL su reikšmėmis iš prekės/paslaugos informacijos (N17), tai parametro MSCAN_DFIL aprašyme reikia naudoti ISNULL() funkciją.
Pvz. parametre MSCAN_DFIL vietoj N17_TIPAS=1, reikia naudoti ISNULL(N17_TIPAS,1)=1
Pirkimų, pardavimų ir vidinių operacijų atveju, kartu turi būti naudojamas parametras MSCAN_ITRAUK, nurodantis, ar prekę galima įtraukti į MSCAN dokumentą.
Neegzistuojantis barkodas niekada nebus įtraukiamas į originalų Rivile GAMA pirkimų, pardavimų ir vidinių operacijų dokumentą.
Rivile GAMA programoje prekėms gali būti aprašyta tara. Pati tara aprašoma kaip prekė arba kaip paslauga. Prekėms, kurios turi tarą, nurodomas prekės tipas "Mišri". Tara priskiriama prekės kortelėje skirtuke "Kalkuliacija".

Tarai būtinai turi būti aprašytas Bar kodas.

Parametras MSCAN_TARA nustato, ar skenuojant prekę įtraukti ir tarą (jei prekės kortelėje ji yra aprašyta).

Kaupiklių ir Inventorizacijos modulyje, jeigu įjungtas parametras MSCAN_TARA, skenuojant prekę, jos tara iškart įtraukiama į operaciją.
Pajamavimo ir atrinkimo dokumentuose (Pardavimai, Pirkimai, Vidiniai) – tara turi būti įtraukta prie detalių eilučių.
Jeigu tara iš anksto nebuvo įtraukta prie detalių eilučių, tolesnė eiga priklauso nuo parametro MSCAN_ITRAUK:
Skenuojant kelias prekes su vienoda tara, taros kiekis yra sumuojamas. Tarai niekada nepriskiriama nei serija, nei objektas.
Parametras leidžia valdyti sveriamų barkodų šablonus. Sveriamas barkodas - tai barkodas, kuriame yra užkoduotas prekės barkodas bei svoris. Pvz:

Parametre galima apsirašyti keletą šablonų su skirtingais požymiais, šablonus atskiriant per kabliataškį, pvz 22*4#3;23*4#2; .
MSCAN aplikacijoje, nuskenavus parametre aprašytam šablonui atitinkantį barkodą, atskirai nurodomas kiekis yra ignoruojamas, ir imamas kiekis, kuris yra sveriamame barkode.
Parametras gali būti valdomas bendrai, modulio ar vartotojo lygyje.

Parametras įjungia darbo režimą, kai skenuojant prekės papildomą barkodą visa informacija verčiama į prekės pagrindinį mato vienetą.
Parametras aktualus, jei visa apskaita vedama pagrindiniu mato vienetu, o atrenkant norima turėti galimybę skenuoti papildomais mato vienetus. Pavyzdžiui, prekė XX turi du matavimo vienetus – pagrindinis L (litrai), papildomas VNT. Santykis 1 VNT lygus 2L. Pagal suformuotą pardavimą, reikia atrinkti 6L. Sandėlininkas turi galimybę skenuoti prekę pagrindiniu mato vienetu arba skenuoti prekę papildomu mato vienetu. Skenuojant papildomu mato vienetu, jam reikalinga nuskenuoti 3VNT, kurie aplikacijoje bus užskaityti kaip 6L.

Parametras yra privalomas, jeigu norima pačioje MSCAN aplikacijoje kurti naujus pardavimų, pirkimų ar vidinio judėjimo dokumentus.
Jeigu Rivile GAMA sistemoje šis parametras nėra aprašytas, kuriant naują dokumentą MSCAN aplikacijoje, bus gaunamas pranešimas – „Klaida! 10003 Neaprašytas parametras MSCAN_DOKTIP“.

Parametras gali būti aprašomas vartotojo ir/ar modulio lygyje.
Parametro aprašyme išvardinamos leistinų dokumentų tipų pirmosios raidės, jas atskiriant kableliu:
V – važtaraštis;
G – grąžinimas;
U – užsakymas;
R – rezervavimas;
P – pasiūlymas;
S – surinkimas;
SU – surinkimo užsakymas;
I – išbarstymas;
IU – išbarstymo užsakymas;
OP - kaupiklių ir inventorizacijos operacijos;
LO - lokacijų operacija;
LP - paletės operacijos.

Kuriant naują operaciją, MSCAN aplikacijoje atsiranda operacijos tipo pasirinkimas iš parametre nurodytų reikšmių.


Parametro pirmo lauko reikšmė apibrėžia ar leisti į MSCAN operaciją įtraukti prekę, kurios nebuvo pirminiame dokumente.
Jeigu pirmo parametro lauko reikšmė yra "Ne“, skenuojant prekę bus išduodamas pranešimas – "Klaida! 9014 Prekė nepriskirta šiam užsakymui“.

Jeigu pirmo parametro lauko reikšmė yra "Taip“:

Parametro antro lauko reikšmė apibrėžia, ar leisti prekę, kurios nebuvo dokumente, įtraukti į originalų Rivile GAMA dokumentą.
Jeigu parametro reikšmė "Ne“ - prekė bus įtraukta tik į Rivile MSCAN operaciją. Jei reikšmė "Taip " - prekė bus įtraukta ir į Rivile GAMA operaciją (atsiras operacijos detaliose eilutėse).
Jeigu prekė įtraukiama į Rivile GAMA programoje esantį dokumentą, skenavimo metu dokumente esantis prekės kiekis lygus 0.
Prekės kiekis iškoreguojamas į nuskenuotą kiekį tik MSCAN operacijos užbaigimo metu, ir tik tuo atveju, jeigu pasirenkamas užbaigimo būdas "Baigti koreguojant“ (žr. parametrą MSCAN_PAB_OP).
Išimtis! Vidinio judėjimo operacijose PAJAMAVIMO metu, naujos prekės niekada nebus traukiamos į originalų dokumentą.
Sistemoje neegzistuojantys brūkšniniai kodai niekada nebus traukiami į Rivile GAMA pardavimų, pirkimų ar vidinių operacijų dokumentus. Net jeigu parametrų MSCAN_ITRAUK ir MSCAN_NBAR reikšmės teigiamos, neegzistuojantis brūkšninis kodas traukiamas tik į MSCAN aplikaciją.
Kuriant pirkimo, pardavimo, gamybos ar vidinio judėjimo dokumentą MSCAN aplikacijoje, yra galimybė įvesti pastabas.
Šios pastabos persikelia į Rivile GAMA programoje esantį pastabų lauką.

Pastabų laukas gali būti suadministruotas kaip sąrašinis - tada jo galimos reikšmės aprašomos parametre MSCAN_PASTAB.

Parametras nurodo prekės kortelės lauką, kuriame talpinama išorinė nuotraukos nuoroda.
Parametre nurodomas laukas būtinai turi priklausyti N17_PROD lentelei, pavyzdžiui, N17_ADR_LINK (prekės kortelės laukas "Nuoroda").

Nuoroda privalo būti išorinė, t. y. nurodanti pilną internetinį adresą iki paveikslėlio.
Prekės nuotrauką galima pasižiūrėti MSCAN modulyje Prekės informacija.
Aprašius parametrą automatiškai sukuriamas papildomas laukas skenavimui MSCAN aplikacijoje. Pirma parametro reikšmė nustato lauko pavadinimą, antra – lauko tipą. Galimi lauko tipai:
$N – skaitinis laukas;
$C – simbolinis laukas;
$D – datos laukas;
$B – loginis laukas, kurio reikšmė gali būti tik true arba false;
Sąrašinis laukas. Šio lauko reikšmes galima pasirinkti iš Rivile GAMA programoje esančių sąrašų. Aprašant parametrą nurodomas Rivile GAMA programoje esančio sąrašo kodas:
Sąrašinis laukas, kurio visi galimi pasirinkimai išvardinami atskiriant kableliu aprašant parametro antrą reikšmę.


Informacija MSCAN aplikacijoje grupuojama tik pagal prekės kodą, objektą ir seriją, bet negrupuojama pagal papildomus laukus. Kelis kartus skenuojant prekę su papildomais laukais, bus išsaugoma paskutinė nuskenuota informacija.
Pagal nutylėjimą, gaminio kiekio koregavimas negalimas.
Parametras sudarytas iš dviejų reikšmių:

Parametre pasirinkus pirmąją reikšmę "Taip“, MSCAN aplikacijoje gamybos modulyje paspaudus ant dokumento atsiranda papildomas pasirinkimas – "Gaminio kiekio keitimas“.

Parametre nurodžius antrąją reikšmę "Taip“ ir MSCAN aplikacijoje pasirinkus funkcionalumą "Gaminio kiekio keitimas“, pasirinkimas "Perskaičiuoti komponentes“ būna iš karto pažymėtas. Šis pasirinkimas nurodo, kad keičiant gaminio kiekį, gaminio komponenčių kiekiai bus perskaičiuojami proporcingai gaminio naujajam kiekiui.

Parametre nurodomas simbolis, kuriuo bus atskiriamas barkodo lauke vedamas šablonas barkodas + objektas + serija.
Pavyzdžiui, jeigu pasirinktas simbolis "/", ir aplikacijoje barkodo lauke bus įvestas tekstas 123456789012/CENTRAS/RAUDONA, aplikacija šį tekstą išskirs į barkodą (123456789012), objektą (CENTRAS) ir seriją (RAUDONA).
Jeigu parametro reikšmė nenurodyta, standartiškai barkodo / objekto / serijos skyriklis yra kabliataškis (";").


Parametras nustato galimybę skenuojant brūkšninius kodus nesumuoti eilučių, t. y. kiekvieną kartą nuskenavus prekę į operaciją ji įkris kaip nauja eilutė.
Parametras veikia tik Kaupiklių modulyje.


Pagal nutylėjimą , kai naujos gamybos operacijos kuriamos MSCAN-e, komponentės į jas neįtraukiamos.
Parametru galima įjungti ir konfigūruoti automatinį komponenčių įtraukimą naujose gamybos operacijose. Komponentės paimamos iš komplektuojamų prekių kortelių kalkuliacijos aprašymo.
Šiame parametre taip pat galima įjungti pusgaminių išskleidimą iki detalių medžiagų.

Parametre "MSCAN_KOMPP" galima įjungti komponentų parinkimą pagal serijas ir likučius nurodant jų parinkimo tvarką (pvz.: I17_KODAS_OS ASC,I17_SERIJA).
Šiame parametre taip pat galima įjungti vienodų komponenčių sumavimą.

Parametras skirtas filtruoti MSCAN sąraše klientus (SQL sintaksė). Parametras veikia iš sąrašo pasirenkant klientą, kai per MSCAN kuriamos pardavimo / pirkimo operacijos.
Galimi filtravimo laukai - N08_KLIJ struktūra
Parametras gali būti valdomas bendrai, modulio, vartotojų grupės ar vartotojo lygyje.
Pvz.:

Parametras skirtas filtruoti MSCAN sąraše prekes (SQL sintaksė). Parametras veikia iš sąrašo pasirenkant gaminį, kai per MSCAN kuriamos gamybos operacijos.
Galimi filtravimo laukai - N17_PROD struktūra
Parametras veikia vartotojų grupės ar vartotojo lygyje (pagal modulius neveikia).
Pvz.:

Parametras turi dvi reikšmes:
Kaip aprašyti formules paieškos laukams galima rasti čia.
Pagal nutylėjimą paieška yra išjungta.
Sistemiškai paieška atsižvelgia į Rivile GAMA nustatytus filtravimo parametrus: SS_FIL_PS - Prekių filtras, SS_FIL_OS - Objektų filtras.
Serijos laukas nėra sąrašinis, todėl nėra sisteminio serijų sąrašo. Norint naudoti paiešką, būtina aprašyti formulę ir ją nurodyti parametre antrame reikšmės lauke.

Rivile MSCAN aplikacijoje paiešką galima rasti skenavimo lange prie skenavimo lauko, paspaudus ant mygtuko
. Jeigu paieškos parametras neaprašytas - pasirinkimų lange "Paieška" nebus matoma.

Atidarius paieškos langą - sąrašas tuščias. Įvedus bent vieną simbolį pradedama paieška pagal įvestą fragmentą.

Jei Parametras1 reikšmė nustatyta "S" , tada laukas tampa sąrašiniu.

Parametras turi dvi reikšmes. Pirmoji skirta aprašyti formulei, kuri bus kviečiama prieš sistemines patikras. Antroji - formulei, kuri bus kviečiama po sisteminių patikrų.
Servisas -> Kortelės -> Formulės
Formulė rašoma T-SQL kalba.

Tiek formulė PRIEŠ, tiek formulė PO gali dirbti su laikinomis lentelėmis #inParams, #outParams, #appErrors, #appWarnings.
Formulė PRIEŠ gali būti naudojama, jei reikalinga skenuoti kitokį nei standartinis barkodas.
Formulėse numatyta galimybė vartotojui išvesti pasirinkimus į laikiną lentelę #appWarnings įtraukiant pranešimus. Jei neužpildomas laukas warningId tuomet vartotojo pasirinkimas grąžinamas lauke ignoreWarnings.
Formulės pavyzdys su tokio patvirtinimo pavyzdžiu:
-- perspėti jei pardavimo operacijos data vėlesnė nei šiandiena
if exists (select 1 from #inParams inner join dbo.i06_parh on module = 'RO' and ignoreWarnings = 0 and operationCode = i06_kodas_po and i06_op_data > left(convert(char(30), getdate(), 102), 10))
insert into #appWarnings (warningCode, warningMessage) values (0, 'Pardavimo data vėlesnė nei šiandien!')

Numatyta galimybė išvesti ir kelis pranešimus, tokiu atveju dar pildomas warningId laukas ir pagal jį identifikuojamas atsakymas naudojant funkciją RGI_F_WARN_VALUE(warningId, value). Taip pat vietoje mygtuko "Tęsti" galima turėti iki 3 mygtukų su norimais pavadinimais (pildomos btn1, btn2 ir btn3 reikšmės).
Formulės pavyzdys su dviem atskitais paklausimais:
-- lokacijos ir galiojimo datos pasirinkimas pirkimo operacijose
if exists (select 1 from #inParams where kodas_0l2 = '' and module = 'PO')
begin
-- lokacijos paklausimas
if not exists (select 1 from #inParams where warningId like '%LOKACIJA%')
begin
insert into #appWarnings (warningCode, warningId, warningMessage, btn1, btn2, btn3) values (0, 'LOKACIJA', 'Pasirinkite lokaciją', 'Lokacija Nr.1', 'Lokacija Nr.2', 'Paletė Nr.1')
return
end
else
update #inParams set kodas_0l2 = case when dbo.RGI_F_WARN_VALUE(warningId, 'LOKACIJA') = 1 then 'LL1' when dbo.RGI_F_WARN_VALUE(warningId, 'LOKACIJA') = 2 then 'LL2' else 'PP1' end
-- galiojimos datos priskyrimas
if not exists (select 1 from #inParams where warningId like '%GALIOJIMAS%')
insert into #appWarnings (warningCode, warningId, warningMessage, btn1, btn2) values (0, 'GALIOJIMAS', 'Galiojimo datos pasirinimas', '30 dienų', 'Nekeisti')
else
update #inParams set expirationDate2 = getdate() + 30 where dbo.RGI_F_WARN_VALUE(warningId, 'GALIOJIMAS') = 1
end

Parametras turi dvi reikšmes. Pirmoji skirta aprašyti formulei, kuri bus kviečiama prieš sisteminį pabaigimą. Antroji - formulei, kuri bus kviečiama po sisteminio pabaigimo.
Servisas -> Kortelės -> Formulės
Formulė rašoma T-SQL kalba.

Rašant formulę, yra pasiekiami tam tikri kintamieji.
| Kintamasis | Aprašymas |
|---|---|
| @module | Modulio kodas |
| @operationCode | Operacijos kodas |
| @operationType | MSCAN operacijos tipas (ATR - atrinkimas, PAJ - pajamavimas, LOK - lokacijos op.) |
| @mscanUser | MSCAN vartotojas |
| @locale | Kalba |
| @note | Pastaba |
| @departmentId | Padalinio kodas |
Formulės PRIEŠ su papildomu tikrinimu pavyzdys:
-- leidžiama pabaigti tik operacijas su logistikos kodu TEST, taikoma tik pirkimų ir pardavimų moduliams
if @module in ('PO', 'RO') and not exists (select 1 from dbo.i06_parh where i06_kodas_po = @operationCode and i06_kodas_ls_1 = 'TEST')
insert into #A12345 (Tag, Err_Code, Expr2) values ('KLAIDA', 0, 'Galimas tik operacijų su logistikos kodu "TEST" pabaigimas')
-- vidinėse operacijose tik vartotojas priklausantis vadovų grupei gali pabaigti taros perkėlimus
if @module = 'VD' and exists (select 1 from #FinalizeCheck inner join dbo.n17_prod on productCode = n17_kodas_ps and n17_kodas_gs = 'TARA') and not exists (select 1 from dbo.R05_USER where r05_kodas_rs = @mscanUser and r05_kodas_rs_g = 'VADOVAI')
insert into #A12345 (Tag, Err_Code, Expr2) values ('KLAIDA', 0, 'Taros perkėlimą gali pabaigti tik vadovai')


Formulės PO su pakeitimais po pabaigimo pavyzdys:
-- gamybos operacijose data pakeičiama į šios dienos datą
if @module = 'KA'
update dbo.i15_kalh set i15_op_data = convert(char(30), getdate(), 102) where i15_kodas_ka = @operationCode

Formulės prieš pabaigimą su paklausimu vartotojui pavyzdys:
-- serijos tikrinimas ir užpildymas kliento "RIVILE" pirkimo pasiūlymams
if @module = 'PO' and exists (select 1 from #FinalizeCheck where lot = '')
and exists (select 1 from dbo.i06_parh where i06_kodas_po = @operationCode and i06_kodas_ks = 'RIVILE' and i06_op_tip = 4)
begin
if @ignoreWarnings = 0
begin
insert into #appWarnings (warningCode, warningMessage, btn1, btn2) values (0, 'Rastos prekės be serijos!', 'Užpildyti šios dienos data', 'Nekeisti')
return
end
-- serijų atnaujinimas
if @ignoreWarnings = 1
begin
update dbo.i07_pard set i07_serija = convert(varchar(8), getdate(), 112) from #FinalizeCheck where i07_kodas_po = operationCode and i07_serija = ''
update dbo.rgi_mscan_d set lot = convert(varchar(8), getdate(), 112) from #FinalizeCheck tmp where tmp.operationCode = rgi_mscan_d.operationCode and rgi_mscan_d.lot = ''
update #FinalizeCheck set lot = convert(varchar(8), getdate(), 112) where lot = ''
end
end
MSCAN aplikacijoje informacija apie dokumentą arba eilutę pasiekti galima:

Norint papildyti ar pakeisti standartinį informacijos suformavimo algoritmą, galima nurodyti atitinkamos informacijos suformavimo formulę parametre MSCAN_DT_INF:

Nurodomos atskiros formulės – dokumento suformavimo formulė ir/arba detalios eilutės formulė. Galima nurodyti atskiras formules kiekvienam moduliui ir/arba vartotojui.
Formulės nurodomos:
Servisas -> Kortelės -> Formulės

Formulė rašoma T-SQL kalba.
Rašant informacijos apie dokumentą formulę, yra pasiekiami tam tikri kintamieji bei laikinos lentelės.
Kintamieji
| Kintamasis | Aprašymas |
|---|---|
| @operationCode | Operacijos kodas |
| @module | Modulio kodas |
| @filter | Įvesta filtravimo sąlyga filtruojant dokumentų sąraše |
| @departmentId | Padalinio kodas parinktas aplikacijoje |
| @infoType | Eilutės formavimo paskirtis. Galimos reikšmės: DET – detali informacija, LIST - sąrašas |
Rezultatų lentelė #RGI_MSCAN_LIST_DOC_V3_result - kurioje koreguojamas rezultatas. Kadangi dalis informacijos yra pateikiama dinamiškai, priklausomai nuo to kokie yra naudojami kiti MSCAN parametrai, todėl galutinį prieinamą stulpelių sąrašą galima matyti užklausos rezultate:

Ši formulė gali grąžinti tiek pakoreguotą lentelę #RGI_MSCAN_LIST_DOC_V3_result, tiek schema.
Pavyzdys.
Formulė rašoma T-SQL kalba.
if @infoType='DET'
begin
select @return=1 -- nurodome, kad rezultatą suformuosime patys
-- Suformuojame XML schema kaip rezultatą, tai ką rodysime ekrane
select *
from (
select 0 as eil, 'inline' as [type], 'Dokumentas' as [key], rtrim(i06_dok_nr) as [value], null as [data] from #RGI_MSCAN_LIST_DOC_V3_result inner join I06_PARH on I06_KODAS_PO=operationCode
union all
select 1 as eil, 'inline' as [type], 'Tipas' as [key], (case operationType when 'PAJ' then 'Pajamavimas (Grąžinimas)' when 'ATR' then 'Atrinkimas (Sąskaita)' else 'Kita' end) as [value], null as [data] from #RGI_MSCAN_LIST_DOC_V3_result
union all
select 2 as eil, 'inline' as [type], 'Klientas' as [key], rtrim(I06_KODAS_KS)+' - '+dbo.RGI_F_SPEC_SYMB(rtrim(I06_PAV)) as [value], null as [data] from #RGI_MSCAN_LIST_DOC_V3_result inner join I06_PARH on I06_KODAS_PO=operationCode
union all
select 3 as eil, 'inline' as [type], 'Taikomos nuolaidos' as [key], 'Taip' as [value], null as [data] from #RGI_MSCAN_LIST_DOC_V3_result where exists(select top 1 1 from I07_PARD where I07_KODAS_PO=operationCode and I07_NUOLAIDA<>0)
) as [schema]
order by eil asc
FOR XML auto, elements
goto ExitCode
end
if @infoType='LIST'
begin
-- Pažymėti mano operacijas, kurias pradėjau
update #RGI_MSCAN_LIST_DOC_V3_result set element1='$r$'+rtrim(element1)+'$r$' from R05_USER where updateUser=R05_KODAS_RS and updateUser=@user
-- Pažymėti kitų vartotojų pradėtas operacijas
update #RGI_MSCAN_LIST_DOC_V3_result set element2='$b$('+LEFT(ltrim(R05_VARDAS),1)+LEFT(ltrim(R05_PAV),1)+')$b$'+rtrim(element2) from R05_USER where updateUser=R05_KODAS_RS and stateIndicator='K'
end

Rašant informacijos apie detalią eilutę formulę, yra pasiekiami tam tikri kintamieji bei laikinos lentelės.
Kintamieji
| Kintamasis | Aprašymas |
|---|---|
| @operationCode | Operacijos kodas |
| @rowNumber | Detalios eilutės numeris operacijoje |
| @appId | Detalios eilutės numeris RGI_MSCAN_D lentelėje |
| @module | Modulio kodas |
| @filter | Įvesta filtravimo sąlyga filtruojant dokumentų sąraše |
| @departmentId | Padalinio kodas parinktas aplikacijoje |
| @infoType | Eilutės formavimo paskirtis. Galimos reikšmės: DET – detali informacija, LIST - sąrašas |
Rezultatų lentelė #RGI_MSCAN_LIST_DET_V3_result - kurioje koreguojamas rezultatas. Kadangi dalis informacijos yra pateikiama dinamiškai, priklausomai nuo to kokie yra naudojami kiti MSCAN parametrai, todėl galutinį prieinamą stulpelių sąrašą galima matyti užklausos rezultate:

Ši formulė gali grąžinti tiek pakoreguotą lentelę #RGI_MSCAN_LIST_DET_V3_result, tiek schema.
Pavyzdys
Formulė rašoma T-SQL kalba.
if @infoType<>'DET'
goto ExitCode
select @return=1 -- nurodome, kad rezultatą suformuosime patys
-- Nuskanuotas kiekis lokacijoje (suformuojame sąrašą)
declare @xml_lok_fact xml
select cast(ROW_NUMBER() OVER(ORDER BY A.lokacija1, A.lokacija2, A.kiekis, A.expDateStr) as numeric(10,1)) AS Row_number, A.*
into #tmp_lok_fact
from (
select rtrim(isnull(E1LK1.barcode,''))+isnull('['+rtrim(E1PK1.barcode)+']','') as lokacija1, rtrim(isnull(E1LK2.barcode,''))+isnull('['+rtrim(E1PK2.barcode)+']','') as lokacija2, dbo.RGI_F_D_KIEKIS(E1.quantity,E1.fraction) as kiekis, left(convert(varchar(23),E1.expDate2,120),10) as expdateStr
from (select [id] from dbo.RGI_MSCAN_D where operationCode=@operationCode and module=@module and rowNumber=@rowNumber) as A1
inner join dbo.RGI_MSCAN_D_0E as E1 on A1.[id]=E1.[id]
left join RGI_MSCAN_0L_S as E1PK1 on E1PK1.kodas_0l=E1.kodas_0l1 and E1PK1.type=2
left join RGI_MSCAN_0L_S as E1LK1 on E1LK1.kodas_0l=isnull(E1PK1.kodas_0l_l,E1.kodas_0l1) and E1LK1.type=1
left join RGI_MSCAN_0L_S as E1PK2 on E1PK2.kodas_0l=E1.kodas_0l2 and E1PK2.type=2
left join RGI_MSCAN_0L_S as E1LK2 on E1LK2.kodas_0l=isnull(E1PK2.kodas_0l_l,E1.kodas_0l2) and E1LK2.type=1
) as A
select @xml_lok_fact=(
select * from (
select Row_number as eil_nr, (case when lokacija1='' then '_' else lokacija1 end)+' -> '+(case when lokacija2='' then '_' else lokacija2 end) as [key], kiekis as [value], 'inline' as [type], null as [color]
from #tmp_lok_fact
UNION
select Row_number+0.1 as eil_nr, '' as [key], (case when expdateStr<>'3999-01-01' then 'Galioja: '+rtrim(expDateStr) else '' end) as [value], 'inline' as [type], null as [color]
from #tmp_lok_fact
where expdateStr<>'3999-01-01'
UNION
select Row_number+0.2 as eil_nr, '' as [key], '' as [value], 'space' as [type], null as [color]
from #tmp_lok_fact
where expdateStr<>'3999-01-01'
) as [schema]
order by eil_nr
for xml auto, elements
)
drop table #tmp_lok_fact
-- Suformuojame XML schema kaip rezultatą, tai ką rodysime ekrane
select *
from (
select 0 as eil, 'inline' as [type], 'Dokumentas' as [key], rtrim(i06_dok_nr) as [value], null as [data] from #RGI_MSCAN_LIST_DET_V3_result inner join I06_PARH on I06_KODAS_PO=operationCode
union all
select 1 as eil, 'inline' as [type], 'Tipas' as [key], (case operationType when 'PAJ' then 'Pajamavimas (Grąžinimas)' when 'ATR' then 'Atrinkimas (Sąskaita)' else 'Kita' end) as [value], null as [data] from #RGI_MSCAN_LIST_DET_V3_result
union all
select 2 as eil, 'inline' as [type], 'Klientas' as [key], rtrim(I06_KODAS_KS)+' - '+dbo.RGI_F_SPEC_SYMB(rtrim(I06_PAV)) as [value], null as [data] from #RGI_MSCAN_LIST_DET_V3_result inner join I06_PARH on I06_KODAS_PO=operationCode
union all
select 3 as eil, 'inline' as [type], 'Prekė' as [key], rtrim(productCode)+' - '+dbo.RGI_F_SPEC_SYMB(rtrim(productName)) as [value], null as [data] from #RGI_MSCAN_LIST_DET_V3_result
union all
select 4 as eil, 'inline' as [type], 'Kaina (be PVM)' as [key], cast(I07_KAINA_BE as varchar(20)) as [value], null as [data] from #RGI_MSCAN_LIST_DET_V3_result inner join I07_PARD on I07_KODAS_PO=operationCode and I07_EIL_NR=rowNumber
union all
select 5 as eil, 'inline' as [type], 'Nuolaida' as [key], rtrim(cast(I07_NUOLAIDA as varchar(20)))+' %' as [value], null as [data] from #RGI_MSCAN_LIST_DET_V3_result inner join I07_PARD on I07_KODAS_PO=operationCode and I07_EIL_NR=rowNumber where I07_NUOLAIDA<>0
union all
select 6 as eil, 'inline' as [type], 'Kiekis dokumente' as [key], dbo.RGI_F_D_KIEKIS(quantityDocument,fraction)+' ('+rtrim(unitCode)+') ' as [value], null as [data] from #RGI_MSCAN_LIST_DET_V3_result
union all
select 7 as eil, 'inline' as [type], 'Atrinktas kiekis' as [key], dbo.RGI_F_D_KIEKIS(quantityApp,fraction)+' ('+rtrim(unitCode)+') ' as [value], null as [data] from #RGI_MSCAN_LIST_DET_V3_result
union all
select 8 as eil, 'list' as [type], 'Atrinktas kiekis lokacijose' as [key], '' as [value], @xml_lok_fact as [data] from #RGI_MSCAN_LIST_DET_V3_result where @xml_lok_fact is not null
union all
select 9 as eil, 'inline' as [type], 'Būtinas kiekis' as [key], (case when extraInfo5='true' then 'Taip' else 'Ne' end) as [value], null as [data] from #RGI_MSCAN_LIST_DET_V3_result
) as [schema]
order by eil asc
FOR XML auto, elements

MSCAN aplikacijoje informacija apie prekę matoma:
Modulyje "Informacija pagal barkodą";

Paspaudus ant detalios eilutės ir pasirinkus "Informacija pagal barkodą";

Įvedus barkodą skenavimo lange, paspaudus mygtuką
ir pasirinkus "Informacija pagal barkodą".

Parametre nurodoma papildoma formulė informacijai apie barkodą.
Servisas -> Kortelės -> Formulės
Formulė rašoma T-SQL kalba.

Rašant formulę, yra pasiekiami tam tikri kintamieji bei laikinos lentelės.
Kintamieji
| Kintamasis | Aprašymas |
|---|---|
| @tipas | PS - prekė, LO - lokacija, PA - paletė |
| @barcode | Barkodas |
| @barcode_pgr | Pagrindinis barkodas |
| @barcode_alt | Altrenatyvus barkodas |
| @operationCode | Operacijos kodas |
| @module | Modulio kodas |
| @rowNumber | Eilutės numeris |
| @locale | Kalba |
| @productCode | Prekės kodas |
| @unitCode | Matavimo vienetas |
| @departmentCode | Padalinio kodas |
| @imageLink | Paveikslėlio nuoroda |
Rezultatų lentelė #RGI_MSCAN_GET_BARCODE_INFO_result - į kurią talpinamas rezultatas
| Stulpelis | Pavadinimas | Tipas |
|---|---|---|
| eil | Eiliškumas | int |
| type | Tipas | varchar(50) |
| key | Raktas | varchar(max) |
| value | Reikšmė | varchar(max) |
| title | Pavadinimas | varchar(2000) |
| color | Spalva | varchar(50) |
| data | Duomenys | xml |
Esant poreikiui papildyti ar nerodyti tam tikros informacijos, galima koreguoti duomenis lentelėje #RGI_MSCAN_GET_PRODUCT_INFO_result.
Formulė rašoma T-SQL kalba.
-- Informacija pagal barkodą
-- Resultatas talpinamas čia: #RGI_MSCAN_GET_BARCODE_INFO_result ([eil] int, [type] varchar(50), [key] varchar(max), [value] varchar(max), [title] varchar(2000), varchar(50), [data] xml)
if @tipas<>'PS' -- Keisime tik prekės informaciją. Kitais atvejais (('LO')Lokacijos ir ('PA')Paletės) - rodysime standartiškai
goto ExitCode
-- 1. Pašaliname skiltį "Pagrindinis matavimo vienetas"
DELETE FROM #RGI_MSCAN_GET_BARCODE_INFO_result where [key]='Pagrindinis matavimo vienetas'
-- 2. Skiltyje "Matavimo vienetas" rodyti ne kodą, o matavimo vieneto pavadinimą (Pavadinimas kita kalba 1)
UPDATE #RGI_MSCAN_GET_BARCODE_INFO_result SET [value]=rtrim(N18_PAV_K1) FROM N18_MAT WHERE [key]='Matavimo vienetas' and [value]=N18_KODAS_US
-- 3. Įterpiame naują skiltį "Pardavimo kaina"
declare @kain numeric(12,4)
SELECT @kain=I33_KAINA FROM I33_PKAI WHERE I33_KODAS_IS=@departmentCode and I33_KODAS_PS=@productCode and I33_KODAS_US=@unitCode
insert into #RGI_MSCAN_GET_BARCODE_INFO_result ([eil],[key],[value],[type],[data])
select 7 as eil, 'Pardavimo kaina' as [key], cast(@kain as varchar(10))+' €/'+rtrim(@unitCode) as [value], 'inline' as [type], null as [data] where @kain is not null
-- 4. Likutį rodome tos prekės visų mato vienetų visuose padaliniuose
declare @xml_lik xml
SELECT cast(ROW_NUMBER() OVER(ORDER BY I17_KODAS_IS, I17_KODAS_OS, I17_SERIJA) as numeric(10,1)) AS Row_number, I17_KODAS_PS, I17_KODAS_IS, I17_KODAS_OS, I17_SERIJA, N37_FRAKCIJA_A as frakcija, SUM(I17_KIEKIS-I17_ATIDUOTA-I17_REZERVAS)/N37_KOEFICI*N37_FRAKCIJA_A as likutis
into #tmp_lik
from I17_VPRO inner join N37_PMAT on I17_KODAS_PS=N37_KODAS_PS and I17_KODAS_US_A=N37_KODAS_US
where I17_KODAS_PS=@productCode
group by I17_KODAS_PS, I17_KODAS_IS, I17_KODAS_OS, I17_SERIJA, N37_KOEFICI, N37_FRAKCIJA_A
having SUM(I17_KIEKIS-I17_ATIDUOTA-I17_REZERVAS)<>0
select @xml_lik= (
select * from (
select Row_number as eil_nr, '[PAD:'+rtrim(dbo.RGI_F_SPEC_SYMB(n07_pav))+'] '+rtrim(dbo.RGI_F_SPEC_SYMB(n17_pav)) as [key], dbo.RGI_F_D_KIEKIS(likutis,frakcija)+' '+rtrim(@unitCode) as [value], 'inline' as [type], case when likutis<0 then 'red' else null end as
from #tmp_lik
inner join N07_IMON on N07_KODAS_IS=I17_KODAS_IS
inner join N17_PROD on N17_KODAS_PS=I17_KODAS_PS and N17_TIPAS=1
) as [schema]
order by [key], eil_nr
for xml auto, elements
)
drop table #tmp_lik
DELETE FROM #RGI_MSCAN_GET_BARCODE_INFO_result where [key] in ('Likučiai','Likutis')
insert into #RGI_MSCAN_GET_BARCODE_INFO_result (eil,[key],[value],[type],[data])
select 99 as eil, 'Likučiai padaliniuose' as [key], '' as [value], 'list' as [type], @xml_lik as [data] where @xml_lik is not null


MSCAN aplikacijoje skenavimo lange yra galimybė dirbti su 11 laukų: lokacija iš, lokacija į, barkodas, kiekis, objektas, gavėjo objektas, serija, gavėjo serija, galiojimo data, galiojimo data lokacijoje ir papildoma informacija.
Barkodo ir kiekio laukai yra privalomi ir įjungti visada.
Laukus lokacija, objektas, gavėjo objektas, serija, gavėjo serija, galiojimo data ir papildoma informacija galima įjungti arba išjungti MSCAN nustatymuose.
MSCAN nustatymas kontroliuoja visus su lokacija susijusius laukus, t.y. lokacija iš, lokaciją į ir galiojimo data lokacijoje. Šių laukų rodymas priklauso nuo modulio ir parametro MSCAN_LAU_TV konfigūracijos.
Laukai rodomi tik tuo atveju, jei jie įjungti ir per MSCAN_LAU_TV parametrą, ir per MSCAN nustatymus.

MSCAN_LAU_TV parametras naudojamas tiek skenavimo laukų įjungimui / išjungimui, tiek jų eiliškumui keisti.
Parametras gali būti aprašytas modulio ir vartotojo lygyje. Parametro neaprašius rodomi standartiniai numatyti laukai.
Reikšmė "lokacija" įjungia pagrindinį lokacijos lauką modulyje (pirkimuose - lokacija į, pardavimuose - lokacija iš ir pan.)
Reikšmė "lokacija2" įjungia papildomą lokacijos lauką (pirkimuose - lokacija iš, pardavimuose - lokacija į ir pan.)
Ne visuose moduliuose galima įjungti visus laukus, pvz kaupikliuose galimi tik barkodo, kiekio ir papildomi laukai, gavėjo objektas ir gavėjo serija - tik vidinėse operacijose priėmimo atveju.
| Lauko kodas | Lauko pavadinimas | Veikimas moduliuose |
|---|---|---|
| lokacija | Lokacija į / iš | Pajamavime veikia kaip "Lokacija į", atrinkime - kaip "Lokacija iš". Pajamavimas - tai pirkimas, pardavimų grąžinimas, vidinių priėmimas, inventorizacija Atrinkimas - tai pardavimas, pirkimų grąžinimas, vidinių atidavimas, gamyba, lokacijų op. |
| lokacija2 | Lokacija iš / į | Pajamavime veikia kaip "Lokacija iš", atrinkime - kaip "Lokacija į" (atvirkščiai nei lokacija). |
| barkodas | Barkodas | Visuose moduliuose be galimybės išjungti |
| kiekis | Kiekis | Visuose moduliuose be galimybės išjungti |
| objektas | Objektas | Visuose moduliuose išskyrus kaupiklius ir vidines op. priėmimo atveju |
| objektas2 | Gavėjo objektas | Vidinėse operacijose priėmimo atveju |
| serija | Serija | Visuose moduliuose išskyrus kaupiklius ir vidines op. priėmimo atveju |
| serija2 | Gavėjo serija | Vidinėse operacijose priėmimo atveju |
| galiojimoData | Galiojimo data | Pirkimuose, vidinėse op. |
| galiojimoData2 | Galiojimo data lokacijoje | - |
| papildomi | Papildoma informacija | Visuose moduliuose |
Parametro reikšmės pagal nutylėjimą pagal modulius:
| Modulis | Reikšmė pagal nutylėjimą |
|---|---|
| Pardavimai | lokacija,barkodas,kiekis,objektas,serija,papildomi |
| Pirkimai | lokacija,barkodas,kiekis,objektas,serija,galiojimodata,papildomi |
| Vidiniai judėjimai | lokacija,barkodas,kiekis,objektas,serija,galiojimodata,papildomi |
| Kaupikliai | barkodas,kiekis,papildomi |
| Inventorizacija | lokacija,barkodas,kiekis,objektas,serija,papildomi |
| Gamyba | lokacija,barkodas,kiekis,objektas,serija,papildomi |
| Lokacijos | lokacija,lokacija2,barkodas,kiekis,objektas,serija,papildomi |
Laukų eiliškumas kontroliuojamas keičiant jų poziciją parametre. Pateiktame pavyzdyje laukai objektas ir serija iškeliami į viršų:


Šiuo parametru galima apriboti kokie meniu punktai (moduliai) prieinami vartotojui ir kokiu eiliškumu jie rodomi. Parametras gali būti aprašytas vartotojo lygyje. Parametro neaprašius, rodomas visų modulių sąrašas.

Modulių kodai atskiriami kableliu. Sąrašo apribojimo pavyzdys:
PO,RO,IF


| Modulio kodas | Pavadinimas |
|---|---|
| RO | Pardavimai |
| PO | Pirkimai |
| VD | Vidiniai judėjimai |
| KP | Kaupikliai |
| IF | Inventorizacija |
| KA | Gamyba |
| 0E | Lokacijos |
| PS | Prekės informacija |
Parametre nurodoma ar lokacijose gali būti neigiami likučiai.

Aprašius parametrą MSCAN_V3 ir nustačius reikšmę "Ar leisti?" į "Taip", tiek senoje tiek naujoje MSCAN versijoje nustatymuose atsiranda mygtukas, leidžiantis pakeisti versiją.

Jeigu "Griežtai reikalauti" uždėta "Taip", tada galima dirbti tik su sena arba tik su nauja versija, o užėjus į kitą versiją (naršyklėje įvedus adresą) bus gaunama klaida:

Senoje MSCAN aplikacijos versijoje nustatymuose atsiranda mygtukas "Pereiti prie naujos versijos".

Perėjus prie naujos versijos, nustatymuose atsiranda mygtukas "Grąžinti seną versiją".

Šiuo parametru lokacijos lauką galima padaryti privalomą.
Laukas Lokacija - pajamavime "Lokacija į", atrinkime - "Lokacija iš".
Laukas Lokacija2 - pajamavime "Lokacija iš", atrinkime - "Lokacija į" (atvirkščiai nei Lokacija).
Įjungus parametrą ir skanavimo metu neįvedus lokacijos gaunama klaida: