[OPEN-ILS-DOCUMENTATION] EDI Setup

Tim Spindler tspindler at cwmars.org
Thu Mar 15 08:42:37 EDT 2012


I have taken the page that Mike Peters and Ben Shum set up (
http://evergreen-ils.org/dokuwiki/doku.php?id=acq:edi_configuration ) and I
think I correctly converted to ASCII Docs for inclusion into the
Documenation.  The file is attached.

It should be place in the following locations

2.1 Documentation

After Chapter 10 Installing Evergreen add another chapter like Installing
and Setting up EDI

2.2 Documentation

Install EDI


-- 

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://list.georgialibraries.org/pipermail/open-ils-documentation/attachments/20120315/7b334647/attachment.htm>
-------------- next part --------------
Setting Up EDI
--------------

Install EDI Translator
~~~~~~~~~~~~~~~~~~~~~~

For Indiana and Bibliomation, we've chosen to run this on our ?utility? server as that server is where we also run processes like action/triggers (A/T), notices, etc.

One may start with a fresh checkout of ?rel_2_0? branch from the community Git (http://git.evergreen-ils.org/?p=Evergreen.git;a=tree;h=refs/heads/rel_2_0;hb=rel_2_0) as that's the version we're currently running. If you need help with checking out the latest version of the code, please see http://evergreen-ils.org/dokuwiki/doku.php?id=dev:git. Alternatively, the necessary files can be found in the latest tar.gz file of Evergreen releases.
.Steps for Installing
. As the opensrf user, copy the EDI Translator code found in Open-ILS/src/edi_translator to somewhere accessible (for example, /openils/var/edi):
---
cp -r Open-ILS/src/edi_translator /openils/var/edi
---
. Navigate to where you have saved the code to begin next step.
---
cd /openils/var/edi
---
. Next, as the root user (or a user with sudo rights) we need to install the dependencies, via ?install.sh?. This will perform some apt-get routines to install the code needed for the EDI translator to function. Note: subversion must be installed first. (Suggestion ? install.sh should probably be doing an apt-get update first too?):
---
/install.sh
---
. Now, we're ready to start ?edi_webrick.bash? which is the script that calls the ?Ruby? code to translate EDI. Note: This script needs to be started in order for EDI to function so please take appropriate measures to ensure this starts following reboots/upgrades/etc.
---
/edi_webrick.bash
---

Using the command ?ps aux | grep edi? should show you something similar if the script is running properly:
---
root 	30349  0.8  0.1  52620 10824 pts/0	S	13:04   0:00 ruby ./edi_webrick.rb
---
To shutdown EDI Translator you can use something like pkill (assuming no other ruby processes are running):

---
kill -INT $(pgrep ruby)
---

The EDI Translator runs on localhost and listens on port 9191 by default. This is controlled via the edi_webrick.cnf file located in the edi_translator directory. It should not be necessary to change this so long as the EDI Translator is running on the same machine as where A/Ts are generated.


EDI Scripts
~~~~~~~~~~~

edi_pusher.pl
^^^^^^^^^^^^^

As opensrf, copy edi_fetcher.pl and edi_pusher.pl from Open-ILS/src/support-scripts into /openils/bin

edi_pusher.pl is the script that will actually send and receive information between Evergreen and the ? client? ordering agency?

Run edi_pusher.pl script regularly to push EDI messages out. This is best configured as a cronjob? for example, this command will run edi_pusher.pl 10 minutes past the hour, every hour:

---
10 * * * * cd /openils/bin && /usr/bin/perl ./edi_pusher.pl > /dev/null
---

edi_fetcher.pl
^^^^^^^^^^^^^^

Also run, the edi_fetcher.pl script to pull in new incoming files for EDI accounts:

---
0 1 * * * cd /openils/bin && /usr/bin/perl ./edi_fetcher.pl > /dev/null
---

We?re only running it once every night at 1 am while we test the edi_fetcher components. Perhaps this needs to run more regularly depending on the response time of the vendors.


Configuring Providers and EDI Accounts
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Providers
^^^^^^^^^

Look in Admin > Server Administration > Acquisitions > Providers

[options="header"]
|======================================================================================
|Column              |Description/Notes
|Provider Name       |A unique name to identify the provider
|Code	             |A unique code to identify the provider
|Owner	             |The org unit who will ?own? the provider.
|Currency	         |The currency format the provider accepts
|Active	             |Whether or not the Provider is ?active? for use
|Default Claim Policy|??
|EDI Default	     |The default ?EDI Account? to use (see EDI Accounts Configuration)
|Email	             |The email address for the provider
|Fax Phone	         |A fax number for the provider
|Holdings Tag	     |The holdings tag to be utilized (usually 852, for Evergreen)
|Phone	             |A phone number for the provider
|Prepayment Required |Whether or not prepayment is required
|SAN	             |The vendor provided, org unit specific SAN code
|URL	             |The vendor website
|======================================================================================

EDI Accounts

Look in Admin > Server Administration > Acquisitions > EDI Accounts

[options="header"]
|===============================================================================================================
|Column	              |Description/Notes
|Label	              |A unique name to identify the provider
|Host	              |FTP/SFTP/SSH hostname ? vendor assigned
|Username	          |FTP/SFTP/SSH username ? vendor assigned
|Password	          |FTP/SFTP/SSH password ? vendor assigned
|Account	          |Vendor assigned account number associated with your organization
|Owner	              |The organizational unit who owns the EDI account
|Last Activity	      |The date of last activity for the account
|Provider	          |This is a link to one of the ?codes? in the ?Providers? interface
|Path	              |The path on the vendor?s server where Evergreen will send it?s outgoing .epo files
|Incoming Directory	  |The path on the vendor?s server where ?incoming? .epo files are stored
|Vendor Account Number|Vendor assigned account number.
|Vendor Assigned Code |Usually a sub-account designation. Can be used with or without the Vendor Account Number.
|===============================================================================================================

Configuring Organizational Unit SAN code
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The admin > Server Settings > Organizational Units interface allows a library to configure their SAN, along side their address, phone, etc.


Troubleshooting
~~~~~~~~~~~~~~~

PO JEDI Template Issues
^^^^^^^^^^^^^^^^^^^^^^^

Some libraries may run into issues with the action/trigger (PO JEDI). The template has to be modified to handle different vendor codes that may be used. For instance, if you use ?ingra? instead of INGRAM this may cause a problem because they are hardcoded in the template. The following is an example of one modification that seems to work.

Original template has:

---
        "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' -%]
                {"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 -%]
        ],
---

modified has the following where it matches on provider SAN instead of code. 

---
        "buyer":[
            [%   IF   target.provider.edi_default.vendcode && (target.provider.san == '1556150')  -%]
                {"id-qualifier": 91, "id":"[% target.ordering_agency.mailing_address.san _ ' ' _ target.provider.edi_default.vendcode %]"}
                {"id-qualifier": 91, "id":"[% target.ordering_agency.mailing_address.san _ ' ' _ target.provider.edi_default.vendcode %]"}
	     [%- ELSIF target.provider.edi_default.vendcode && (target.provider.san == '1697978')  -%]
                {"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 -%]
        ],
---


More information about the OPEN-ILS-DOCUMENTATION mailing list