Thanks Ben, I didn't touch the action_trigger.event_output so that might explain the error message which might make it unrelated to the other issue of producing an EDI message.
Tim On Thu, Dec 1, 2011 at 10:09 AM, Ben Shum <[email protected]> wrote: > I'm not sure yet, still thinking on this, but curious, when you deleted > entries, did you remove any extra outputs from action_trigger.event_output? > Perhaps you have remnant entries in there that are still trying to be > pushed, but since you deleted the associated acq.* contents, it doesn't > operate correctly. > > I'll ponder this some more, but that's my first gut reaction. > > -- Ben > > On Dec 1, 2011, at 8:40 AM, Tim Spindler wrote: > > I have been doing a bit of testing of EDI and now i get the following > error after doing the following: > > 1. Create a test order connected to an EDI account (i have been > successfully running this until I changed the notification/trigger template) > 2. Issue to send order to test site > > ./action_trigger_runner.pl --run_pending > ./edi_pusher.pl > > 3. The following error is generated and no edi message created > > Can't call method "id" on an undefined value at ./edi_pusher.pl line 139. > > > The other thing I did do is delete a bunch of orders form the database to > clean up all the testing we had been doing. I deleted rows in the tables > acq.purchase_order, acq.po_item, acq.po_note, acq.line_item, acq.line_item > detail. I modified the PO_JEDI template to read as follows. The line I > changes is this > > "buyer":[ > [% IF target.provider.edi_default.vendcode && > (target.provider.code == 'BT' || target.provider.name.match('(?i)^BAKER & > TAYLOR')) -%] > {"id-qualifier": 91, "id":"[% > target.ordering_agency.mailing_address.san _ ' ' _ > target.provider.edi_default.vendcode %]"} > [%- ELSIF target.provider.edi_default.vendcode && > (target.provider.code == 'INGRAM' || > target.provider.name.match('(?i)^ingra')) || > target.provider.name.match('(?i)^ingrb')) -%] > {"id":"[% target.ordering_agency.mailing_address.san %]"}, > {"id-qualifier": 91, "id":"[% > target.provider.edi_default.vendcode %]"} > [%- ELSE -%] > {"id":"[% target.ordering_agency.mailing_address.san %]"} > [%- END -%] > ], > > ----------full template code below--------------------------- > > [%- USE date -%] > [%# start JEDI document > # Vendor specific kludges: > # BT - vendcode goes to NAD/BY *suffix* w/ 91 qualifier > # INGRAM - vendcode goes to NAD/BY *segment* w/ 91 qualifier > (separately) > # BRODART - vendcode goes to FTX segment (lineitem level) > -%] > [%- > IF target.provider.edi_default.vendcode && target.provider.code == > 'BRODART'; > xtra_ftx = target.provider.edi_default.vendcode; > END; > -%] > [%- BLOCK big_block -%] > { > "recipient":"[% target.provider.san %]", > "sender":"[% target.ordering_agency.mailing_address.san %]", > "body": [{ > "ORDERS":[ "order", { > "po_number":[% target.id %], > "date":"[% date.format(date.now, '%Y%m%d') %]", > "buyer":[ > [% IF target.provider.edi_default.vendcode && > (target.provider.code == 'BT' || target.provider.name.match('(?i)^BAKER & > TAYLOR')) -%] > {"id-qualifier": 91, "id":"[% > target.ordering_agency.mailing_address.san _ ' ' _ > target.provider.edi_default.vendcode %]"} > [%- ELSIF target.provider.edi_default.vendcode && > (target.provider.code == 'INGRAM' || > target.provider.name.match('(?i)^ingra')) || > target.provider.name.match('(?i)^ingrb')) -%] > {"id":"[% target.ordering_agency.mailing_address.san %]"}, > {"id-qualifier": 91, "id":"[% > target.provider.edi_default.vendcode %]"} > [%- ELSE -%] > {"id":"[% target.ordering_agency.mailing_address.san %]"} > [%- END -%] > ], > "vendor":[ > [%- # target.provider.name (target.provider.id) -%] > "[% target.provider.san %]", > {"id-qualifier": 92, "id":"[% target.provider.id %]"} > ], > "currency":"[% target.provider.currency_type %]", > > "items":[ > [%- FOR li IN target.lineitems %] > { > "line_index":"[% li.id %]", > "identifiers":[ [%-# li.isbns = > helpers.get_li_isbns(li.attributes) %] > [% FOR isbn IN helpers.get_li_isbns(li.attributes) -%] > [% IF isbn.length == 13 -%] > {"id-qualifier":"EN","id":"[% isbn %]"}, > [% ELSE -%] > {"id-qualifier":"IB","id":"[% isbn %]"}, > [%- END %] > [% END %] > {"id-qualifier":"IN","id":"[% li.id %]"} > ], > "price":[% li.estimated_unit_price || '0.00' %], > "desc":[ > {"BTI":"[% helpers.get_li_attr_jedi('title', '', > li.attributes) %]"}, > {"BPU":"[% helpers.get_li_attr_jedi('publisher', '', > li.attributes) %]"}, > {"BPD":"[% helpers.get_li_attr_jedi('pubdate', '', > li.attributes) %]"}, > {"BPH":"[% helpers.get_li_attr_jedi('pagination','', > li.attributes) %]"} > ], > [%- ftx_vals = []; > FOR note IN li.lineitem_notes; > NEXT UNLESS note.vendor_public == 't'; > ftx_vals.push(note.value); > END; > IF xtra_ftx; ftx_vals.unshift(xtra_ftx); END; > IF ftx_vals.size == 0; ftx_vals.unshift(''); END; # > BT needs FTX+LIN for every LI, even if it is an empty one > -%] > > "free-text":[ > [% FOR note IN ftx_vals -%] "[% note %]"[% UNLESS > loop.last %], [% END %][% END %] > ], > "quantity":[% li.lineitem_details.size %] > }[% UNLESS loop.last %],[% END %] > [%-# TODO: lineitem details (later) -%] > [% END %] > ], > "line_items":[% target.lineitems.size %] > }] [%# close ORDERS array %] > }] [%# close body array %] > } > [% END %] > [% tempo = PROCESS big_block; helpers.escape_json(tempo) %] > > > And it had worked when I had the following but when I returned it to this > state and rebooting the server I always get the above error. > > [%- USE date -%] > [%# start JEDI document > # Vendor specific kludges: > # BT - vendcode goes to NAD/BY *suffix* w/ 91 qualifier > # INGRAM - vendcode goes to NAD/BY *segment* w/ 91 qualifier > (separately) > # BRODART - vendcode goes to FTX segment (lineitem level) > -%] > [%- > IF target.provider.edi_default.vendcode && target.provider.code == > 'BRODART'; > xtra_ftx = target.provider.edi_default.vendcode; > END; > -%] > [%- BLOCK big_block -%] > { > "recipient":"[% target.provider.san %]", > "sender":"[% target.ordering_agency.mailing_address.san %]", > "body": [{ > "ORDERS":[ "order", { > "po_number":[% target.id %], > "date":"[% date.format(date.now, '%Y%m%d') %]", > "buyer":[ > [% IF target.provider.edi_default.vendcode && > (target.provider.code == 'BT' || target.provider.name.match('(?i)^BAKER & > TAYLOR')) -%] > {"id-qualifier": 91, "id":"[% > target.ordering_agency.mailing_address.san _ ' ' _ > target.provider.edi_default.vendcode %]"} > [%- ELSIF target.provider.edi_default.vendcode && > (target.provider.code == 'INGRAM' || > target.provider.name.match('(?i)^ingra')) -%] > {"id":"[% target.ordering_agency.mailing_address.san %]"}, > {"id-qualifier": 91, "id":"[% > target.provider.edi_default.vendcode %]"} > [%- ELSE -%] > {"id":"[% target.ordering_agency.mailing_address.san %]"} > [%- END -%] > ], > "vendor":[ > [%- # target.provider.name (target.provider.id) -%] > "[% target.provider.san %]", > {"id-qualifier": 92, "id":"[% target.provider.id %]"} > ], > "currency":"[% target.provider.currency_type %]", > > "items":[ > [%- FOR li IN target.lineitems %] > { > "line_index":"[% li.id %]", > "identifiers":[ [%-# li.isbns = > helpers.get_li_isbns(li.attributes) %] > [% FOR isbn IN helpers.get_li_isbns(li.attributes) -%] > [% IF isbn.length == 13 -%] > {"id-qualifier":"EN","id":"[% isbn %]"}, > [% ELSE -%] > {"id-qualifier":"IB","id":"[% isbn %]"}, > [%- END %] > [% END %] > {"id-qualifier":"IN","id":"[% li.id %]"} > ], > "price":[% li.estimated_unit_price || '0.00' %], > "desc":[ > {"BTI":"[% helpers.get_li_attr_jedi('title', '', > li.attributes) %]"}, > {"BPU":"[% helpers.get_li_attr_jedi('publisher', '', > li.attributes) %]"}, > {"BPD":"[% helpers.get_li_attr_jedi('pubdate', '', > li.attributes) %]"}, > {"BPH":"[% helpers.get_li_attr_jedi('pagination','', > li.attributes) %]"} > ], > [%- ftx_vals = []; > FOR note IN li.lineitem_notes; > NEXT UNLESS note.vendor_public == 't'; > ftx_vals.push(note.value); > END; > IF xtra_ftx; ftx_vals.unshift(xtra_ftx); END; > IF ftx_vals.size == 0; ftx_vals.unshift(''); END; # > BT needs FTX+LIN for every LI, even if it is an empty one > -%] > > "free-text":[ > [% FOR note IN ftx_vals -%] "[% note %]"[% UNLESS > loop.last %], [% END %][% END %] > ], > "quantity":[% li.lineitem_details.size %] > }[% UNLESS loop.last %],[% END %] > [%-# TODO: lineitem details (later) -%] > [% END %] > ], > "line_items":[% target.lineitems.size %] > }] [%# close ORDERS array %] > }] [%# close body array %] > } > [% END %] > [% tempo = PROCESS big_block; helpers.escape_json(tempo) %] > > > > -- > Tim Spindler > Manager of Library Applications > [email protected] > 508-755-3323 x20 > > C/W MARS, Inc. > 67 Millbrook St, Suite 201 > Worcester, MA 01606 > http://www.cwmars.org > > > *P** Go Green - **Save a tree! Please don't print this e-mail unless > it's really necessary.* > > > > > Benjamin Shum > Open Source Software Coordinator > Bibliomation, Inc. > 32 Crest Road > Middlebury, CT 06762 > 203-577-4070, ext. 113 > > -- Tim Spindler Manager of Library Applications [email protected] 508-755-3323 x20 C/W MARS, Inc. 67 Millbrook St, Suite 201 Worcester, MA 01606 http://www.cwmars.org *P** Go Green - **Save a tree! Please don't print this e-mail unless it's really necessary.*
