Hello to all,
I have been "playing" with BOTS-EDI for some time now and so far I only use it to generate INVRPT. Something very simple.
Now I want to generate a DESADV from a pseudo-CSV. In the lines for the CPS PAC and LIN I can't get the loop to work properly.
These are the lines (CPS, PAC, and LIN) in the CSV.
400;1;0;;3;CT;;85.5;;;85.5;90123;20210809;
420;CT;01987654321184;1;;;
500;000001;1000;4012345678939;
500;000002;1000;4012345678938;
420;CT;01987654321185;2;;;
500;000005;1000;4012345678936;
400;1;0;;3;CT;;85.5;;;85.5;90123;20210809;
420;CT;01987654321184;1;;;
500;000001;1000;4012345678939;
500;000002;1000;4012345678938;
420;CT;01987654321185;2;;;
500;000005;1000;4012345678936;
This is my structure:
structure= [
{ID:'00',MIN:1,MAX:1,
QUERIES:{
'frompartner': {'BOTSID':'000','EANZENDER':None},
'topartner': {'BOTSID':'000','EANONTVANGER':None},
'reference': {'BOTSID':'000','ORDERNUMMERAFNEMER':None},
'testindicator':{'BOTSID':'000','TEST':None},
},
LEVEL:[
{ID:'10',MIN:1,MAX:1,LEVEL:[
{ID:'11',MIN:1,MAX:1},
{ID:'12',MIN:1,MAX:1},
{ID:'13',MIN:1,MAX:10},
{ID:'14',MIN:1,MAX:1},
{ID:'40',MIN:1,MAX:10,LEVEL:[
{ID:'50',MIN:1,MAX:10,LEVEL:[
{ID:'60',MIN:1,MAX:10}
]},
]},
]},
]},
]
And here ist my loop
cpsline = 0
for cps in inn.getloop({'BOTSID':'10'},{'BOTSID':'40'}):
verzendregel = out.putloop({'BOTSID':'UNH'},{'BOTSID':'CPS'})
cpsline = cpsline + 1
verzendregel.put({'BOTSID':'CPS','7164':cpsline})
verzendregel.put({'BOTSID':'CPS','7166':'111'})
for pakk in cps.getloop({'BOTSID':'40'},{'BOTSID':'50'}):
verpakking = verzendregel.putloop({'BOTSID':'CPS'},{'BOTSID':'PAC'})
verpakking.put({'BOTSID':'PAC','7224':pakk.get({'BOTSID':'50','50_03':None})})
verpakking.put({'BOTSID':'PAC','C202.7065':pakk.get({'BOTSID':'50','50_01':None})})
for line in cps.getloop({'BOTSID':'400'},{'BOTSID':'420'},{'BOTSID':'500'}):
regel = verzendregel.putloop({'BOTSID':'CPS'},{'BOTSID':'LIN'})
regel.put({'BOTSID':'LIN','1082':line.get({'BOTSID':'500','500_01':None})})
regel.put({'BOTSID':'LIN','C212.7143':'EN','C212.7140':line.get({'BOTSID':'500','500_03':None})})
cpsline = 0
for cps in inn.getloop({'BOTSID':'10'},{'BOTSID':'40'}):
verzendregel = out.putloop({'BOTSID':'UNH'},{'BOTSID':'CPS'})
cpsline = cpsline + 1
verzendregel.put({'BOTSID':'CPS','7164':cpsline})
verzendregel.put({'BOTSID':'CPS','7166':'111'})
for pakk in cps.getloop({'BOTSID':'40'},{'BOTSID':'50'}):
verpakking = verzendregel.putloop({'BOTSID':'CPS'},{'BOTSID':'PAC'})
verpakking.put({'BOTSID':'PAC','7224':pakk.get({'BOTSID':'50','50_03':None})})
verpakking.put({'BOTSID':'PAC','C202.7065':pakk.get({'BOTSID':'50','50_01':None})})
for line in cps.getloop({'BOTSID':'40'},{'BOTSID':'50'},{'BOTSID':'60'}):
regel = verzendregel.putloop({'BOTSID':'CPS'},{'BOTSID':'LIN'})
regel.put({'BOTSID':'LIN','1082':line.get({'BOTSID':'60','60_01':None})})
regel.put({'BOTSID':'LIN','C212.7143':'EN','C212.7140':line.get({'BOTSID':'60','60_03':None})})
My "mess" generates the following output:
CPS+1+111
PAC+1++CT
PAC+2++CT
LIN+1++4012345678939:EN
LIN+2++4012345678938:EN
LIN+5++4012345678936:EN
CPS+2+111
PAC+1++CT
PAC+2++CT
LIN+1++4012345678939:EN
LIN+2++4012345678938:EN
LIN+5++4012345678936:EN'
Expected was:
CPS+1+111
PAC+1++CT
LIN+1++4012345678939:EN
LIN+2++4012345678938:EN
PAC+2++CT
LIN+5++4012345678936:EN
CPS+2+111
PAC+1++CT
LIN+1++4012345678939:EN
LIN+2++4012345678938:EN
PAC+2++CT
LIN+5++4012345678936:EN
I'm like a monkey with guns with Python.... :P
I hope someone here can help me!
And thanks in advance for the support you give and the hours you dedicate to this group.
Best Regards,
Antonio