PLM terminál - skripty pro kontroly při zahájení nebo ukončení operace v panelu Práce na operacích
Skript v parametru OperStartScript, OperValidScript je volán před zahájením záznamu práce na operaci tlačítkem Start nebo před uložením hodnot v okně pro dokončení operace (v okamžiku kdy pracovník stiskne tlačítko Uložit). Do parametrů skriptu budou předány hodnoty všech klíčových položek zadávaných v okně pro dokončení operace. Je-li v parametrech panelu definováno zadávání hodnot uživatelských položek, pak i názvy a hodnoty těchto položek (pouze pro validaci ukončení). Podrobně popsáno v komentáři příkladu skriptu níže. Návratovou hodnotou skriptu je možné řídit povolení pro uložení zadaných hodnot a zobrazit chybové hlášení. Volaný skript musí být typu knihovna a musí mít hlavičku QrFunkce.
Musí být typu string s hodnotami oddělenými znakem ";". Pro plnění jednotlivých hodnot platí následující pravidla:
- První je vždy stavová hodnota, která informuje o výsledku kontrol provedených ve skriptu. Může nabývat následujících znaků:
- 0 - chyba/negativní výsledek kontroly a ve druhé položce vráceného stringu musí následovat text chybového hlášení sestaveného skriptem. Toto hlášení bude pracovníkovi zobrazeno v novém okně. S touto stavovou hodnotou ukončení operace nebude možné záznam uložit.
- 1 - pozitivní výsledek kontroly. Nebude nic zobrazeno a ukončení operace bude uloženo.
- 2 - negativní výsledek kontroly s dotazem Ano/Ne na pracovníka v němž rozhodne o uložení ukončení operace.
Případné hlášení vrácená skriptem budou zobrazena následovně:
- Skript bude volán jako poslední kontrola po provedení všech kontrol standardně prováděných terminálem.
- Jednotlivé systémové kontroly před uložením okna probíhají paralelně a může být detekování více různých druhů problémů. Tyto jsou následně vypsány hlášením ve formě seznamu. Při detekci systémových problémů a chybového hlášení vraceného skriptem, bude chybové hlášení skriptu přidáno na konec tohoto seznamu.
- Na konec chybového hlášení vráceného skriptem, bude automaticky přidán vykřičník.
V níže uvedených oknech jsou zobrazeny různé kombinace hlášení z kontroly zadaných údajů před uložením okna dokončení výkonu. Na levém obrázku je okno negativním výsledkem kontroly a zamezením uložení výkonu. První hlášení v seznamu je ze systémové kontroly, druhé z volaného skriptu.Na pravém je okno s jediným hlášením skriptu a možností pracovníka rozhodnout o uložení výkonu. Hlášení ze skriptu odpovídají níže uvedenému příkladu.
Příklady doporučujeme zkopírovat jako výchozí kód vámi vytvářeného skriptu. Případně je možné naimportovat stejné skripty v balíčku PlmTerminal.xml do agendy Balíčků skriptů.
function StartOperation_Valid (AReportHelper:TNxQRScriptHelper; aPlmWorker_id, aManufacturedItem_id, aRoutine_id, aUnit :string;
aPlanQuantity, aPreviosOpQuantity, aFinishedQuantity, aQuantity : single; aDefFields_Name, aDefFields_Value : string) : string;
// Příklad skriptu pro validaci okna pro ukončení operace. Podrobný popis naleznete v dokumentaci PLM Terminálu, popis definice profilů, panel operací
// Vstupní parametry: aPlmWorker_id - ID pracovníka
// aManufacturedItem_id - ID vyráběné položky
// aRoutine_id - ID operace na kterou bude vytvořen pracovní lístek
// aPlanQuantity - Celkem plánované množství na zadávané operaci.
// aPreviosOpQuantity - Celkové množství dokončené na předchozí operaci.
// aFinishedQuantity - Dřive navedené množství na zadávané operaci.
//
// Návratová hodnota je řetězec s oddělovačem ";".
// Pozice jednotlivých položek: - status kontroly - '0' = chyba, operaci nepůjde zahájit, bude zobrazeno chybové hlášení předané v návratové hodnotě skriptu.
// Zamezení startu bude provedeno bez ohledu na výsledek systémových kontrol terminálu.
// '1' = správně, operace bude zahájena. Ale pouze v případě pozitivního výsledku
// kontrol prováděných terminálem.
// '2' = nalezen problém, o zahájení rozhodne uživatel odpovědí na dotaz.
// Bude zobrazeno chybové hlášení předané v návratové hodnotě skriptu.
// chybové hlášení - Text, který bude zobrazen při chybě. Důvod, proč není možné
// operaci dokončit nebo popis nalezeného problému.
begin
// ... kód skriptu s vlastními kontrolami ...
// Validace je pozitivní
result := '1';
// Validace je negativní, výkon nepůjde uložit
result := '0';
// Validace je negativní, ale uživateli bude zobrazen dotaz zda-li si přeje výkon uložit
result := '2';
// Při negativní validaci je nutné vrátit chybové hlášení
result := result + ';Validace ve skriptu PlmTerminal.common.StartOperation_Valid skončila negativním výsledkem';
end;
function EditOperation_Valid (AReportHelper:TNxQRScriptHelper; aPlmWorker_id, aManufacturedItem_id, aRoutine_id, aUnit :string;
aPlanQuantity, aPreviosOpQuantity, aFinishedQuantity, aQuantity : single;
aDefFields_Name, aDefFields_Value : string) : string;
// Příklad skriptu pro validaci okna pro ukončení operace. Podrobný popis naleznete v dokumentaci PLM Terminálu, popis definice profilů, panel operací
// Vstupní parametry: aPlmWorker_id - ID pracovníka
// aManufacturedItem_id - ID vyráběné položky
// aRoutine_id - ID operace na kterou bude vytvořen pracovní lístek
// aPlanQuantity - Celkem plánované množství na zadávané operaci.
// aPreviosOpQuantity - Celkové množství dokončené na předchozí operaci.
// aFinishedQuantity - Dřive navedené množství na zadávané operaci.
// aQuantity - Množství, které uživatel zadal položky "Dokončeno nyní".
// Všechna množství jsou vracena v jednotce příslušné vyráběné položky (tzn. UnitQuantity).
// aDefFields_Name - Názvy případných definovatelných položek zobrazených v okně pro dokončení operace
// oddělené středníkem. Pro snadnější porovnávání jsou předávány vždy velkým písmem.
// aDefFields_Value - Hodnoty definovatelných položek ve stejném pořadí jako v aDefFields_Name. Oddělené středníkem.
// Všechny hodnoty budou převedeny na text.
//
// Návratová hodnota je řetězec s oddělovačem ";".
// Pozice jednotlivých položek: - status kontroly - '0' = chyba, operaci nepůjde dokončit, bude zobrazeno chybové hlášení předané v návratové hodnotě skriptu.
// Zamezení uložení bude provedeno bez ohledu na výsledek systémových kontrol terminálu.
// '1' = správně, operace bude dokončena. Ale pouze v případě pozitivního výsledku
// kontrol prováděných terminálem.
// '2' = nalezen problém, o uložení rozhodne uživatel odpovědí na dotaz.
// Bude zobrazeno chybové hlášení předané v návratové hodnotě skriptu.
// chybové hlášení - Text, který bude zobrazen při chybě. Důvod, proč není možné
// operaci dokončit nebo popis nalezeného problému.
begin
// ... kód skriptu s vlastními kontrolami ...
// Validace je pozitivní
result := '1';
// Validace je negativní, výkon nepůjde uložit
result := '0';
// Validace je negativní, ale uživateli bude zobrazen dotaz zda-li si přeje výkon uložit
result := '2';
// Při negativní validaci je nutné vrátit chybové hlášení
result := result + ';Validace ve skriptu PlmTerminal.common.EditOperation_Valid, pro zadané množství ' +
trim (formatfloat ('#### ##0.###', aQuantity)) + ' skončila negativním výsledkem';
end;
Při výskytu chyby v provádění skriptu systémem ABRA Gen bude vyvolána chyba Externího objektu. Na záložce podrobnosti této chyby si můžete prohlédnout parametry vstupující do skriptu a vrácený řetězec. Příklad je uveden na následujícím obrázku.
Této chyby je možné využít také při nejasnosti v předávaných nebo vracených hodnotách. Stačí ve skriptu dočasně změnit návratovou hodnot na nepodporovaný znak. Např. "E". Po provedení skriptu a vrácení bude zobrazena chyba a v jejích podrobnostech výpis předaných parametrů a vraceného stringu.