Index: UI/Utils/MAppLauncher/MainForm.cls.xml =================================================================== diff -u -r1926 -r3690 --- UI/Utils/MAppLauncher/MainForm.cls.xml (.../MainForm.cls.xml) (revision 1926) +++ UI/Utils/MAppLauncher/MainForm.cls.xml (.../MainForm.cls.xml) (revision 3690) @@ -537,10 +537,19 @@ ;============================================================================= outFillGAPR - Quit:('$D(..Params("GAPR"))) - Set ^IPCom("D",..ComKey,"P","HALID")=$G(..Params("GAPR","NewProductID")) - Set ^IPCom("D",..ComKey,"P","PRNR")=$G(..Params("GAPR","PRNr")) - Set ^IPCom("D",..ComKey,"P","AANTAL")=$G(..Params("GAPR","Qty")) + // De subnode DialogResult (CANCELLED of OK) is toegevoegd voor een vlottere communicatie via ECP - by WimV on 13/12/2011. + New IsCancelled + Set IsCancelled=0 + If $D(..Params("GAPR")) Do + . Set ^IPCom("D",..ComKey,"P","HALID")=$G(..Params("GAPR","NewProductID")) + . Set ^IPCom("D",..ComKey,"P","PRNR")=$G(..Params("GAPR","PRNr")) + . Set ^IPCom("D",..ComKey,"P","AANTAL")=$G(..Params("GAPR","Qty")) + . Set IsCancelled=($G(..Params("GAPR","PRNr"))="") ; in een meer gerafineerde versie kan men gaan kijken naar het ModalResult van het Dialog-screen + Else Do + . Set IsCancelled=1 + + Set ^IPCom("D",..ComKey,"P","DialogResult")=$S(IsCancelled:"CANCELLED", 1:"OK") + ;d ..TTrace($$ArrayToText^vhLib("^IPCom")) Quit Index: HADWIZ.mac.rou =================================================================== diff -u -r2200 -r3690 --- HADWIZ.mac.rou (.../HADWIZ.mac.rou) (revision 2200) +++ HADWIZ.mac.rou (.../HADWIZ.mac.rou) (revision 3690) @@ -80,16 +80,26 @@ If (X="T"),$G(PRNr)?4.7N,$D(^HADPR("P",PRNr,"BP")) Set ^IPCom("D",Key,"P","DFLREF")=$NA(^HADPR("P",PRNr,"BP")),^IPCom("D",Key,"P","DFLPR")=PRNr ; Start Applicatie Set FP=2001 Write @F,"VBA:\\" + + New IsCancelled,CanQuitECPWaitingLoop + Set IsCancelled=0 + ; Terugkeer van VBA If ViaIPCom Do . Set FP=2320 Write @F Read Qty ; Wachten op terugkeer + . Set CanQuitECPWaitingLoop = 0 + . For i = 1 : 1 : 100 Do Quit:(CanQuitECPWaitingLoop) Hang 0.1 ; met interval van 0.1 sec checken of ^IPCom() ingevuld is (global mapping via ECP). --> max 100 iteraties = 10 sec wachten + . . Set IsCancelled=($G(^IPCom("D",Key,"P","DialogResult"))="CANCELLED") + . . Set PRNr=$G(^IPCom("D",Key,"P","PRNR")) + . . Set CanQuitECPWaitingLoop=(IsCancelled)||($length(PRNr)) . Set Qty=$G(^IPCom("D",Key,"P","AANTAL")) - . Set PRNr=$G(^IPCom("D",Key,"P","PRNR")) + . ;d WLIP^vhDBG(97,$$$ArrayTT($Na(^IPCom("D",Key)))) Else Do . Set FP=2320 Write @F Read Qty . Set FP=2415 Write @F Read PRNr Kill ^IPCom("D",Key) - Quit:PRNr="" "" + Quit:(IsCancelled)||(PRNr="") "" + If PRNr'?4.7N||'$D(^KPR(PRNr)) Do WARN^vhTXTPOP("Foutief produktID, verwittig ICT") Quit "" Do AdaptPlanilak Do RECALC^PRODUKT2(PRNr)