[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