[OPEN-ILS-DEV] EDI Problems
Tim Spindler
tspindler at cwmars.org
Thu Dec 1 11:08:27 EST 2011
Thanks Ben, I just ran it on a different server where the only thing I
ever changed was the trigger/notification template. I got the following
error when running edi_pusher.pl
Hook 'acqpo.activated' is used in 1 event definition(s):
23 - 'PO JEDI'
Event definition 23 has 4 (completed) event(s)
Can't call method "data" on an undefined value at ./edi_pusher.pl line 158.
No EDI message was generated
Tim
On Thu, Dec 1, 2011 at 10:09 AM, Ben Shum <bshum at biblio.org> 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
> tspindler at cwmars.org
> 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
tspindler at cwmars.org
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.*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://libmail.georgialibraries.org/pipermail/open-ils-dev/attachments/20111201/20dfb115/attachment-0001.htm>
More information about the Open-ils-dev
mailing list