SI EDI
From UG
Info
Mantis
mantis parent: 0004242
mantis project: D2L
Contacts
Jessie:
- Jessie.Falls@ElizabethArden.com - Transportation Manager
Dawn:
- Dawn.Byrum@data2logistics.com - Global Solutions Analyst
- 12631 Westlinks Dr. Fort Myers, FL 33913-8627
- Phone: 1-706-335-4502
Brandon:
- brandon.heaton@data2logistics.com - EDI Specialist
- 6056 Fashion Square Drive, Suite 300 Salt Lake City, UT 84107
- Phone: 1-801-287-8489
Schedule
Phases
Arden originally agreed to staged approach. We can first convert invoices just for one MOT and or Jag office. And later turn on others. TBC.
Aug 22 update
August:
- M: 19 - Dev phase; tests with vendor
- Tu: 20 - Dev phase; tests with vendor
- W: 21 - Dev phase; tests with vendor
- Th: 22 - Dev phase; tests with vendor
- Fri: 23 - All dev completed; QA/bugfix started; UAT demo;
- M: 26 (Ukr holiday); SIT; UAT(Marc)
- Tu: 27 - QA/changes/bugfix/tests with vendor; SIT;UAT(Marc)
- W: 28 - QA/changes/bugfix/tests with vendor; SIT/User Guide/training
- Th: 29 - QA/changes/bugfix/tests with vendor; SIT/User Guide/training
- F: 30 - staging; User Guide/training
Sept:
- M: 2 (US holiday) - staging
- Tu: 3 - staging; Release at 7pm EST
- W: 4 - in production; ihelp monitoring
- Th: 5 - in production; ihelp monitoring
- F: 6 - in production; ihelp monitoring
Schedule Sept 2 update
Sept:
- M: 2 - Dev/QA
- (US holiday)
- Tu: 3 - Dev/QA;
- demo to Marc
- feedback from Arden on Required Fields List;
- expected approval from d2L reviewers
- W: 4 - QA
- Th: 5 - staging
- F: 6 - staging; Release at 7pm EST
Definitions
- EDI - Electronic Data Interface
- EDI partner - vendor that receives invoices electronically , validates them and then posts them into company's information system
Business Need
1) Immediate business need is to respond to Elizabeth Arden's request to start sending most invoices electronically (through EDI).
This would cover:
- all MOTs and
- all Jaguar offices
Exceptions:
- invoices for Maintenance, Web Portal and Administration fees would still be send through regular mail
Arden has a new EDI partner company to support this: data2logistics.
Arden discontinued similar EDI with previous EDI partner Trendset permanently about 1 month ago.
2) Additional long term business need is to support sending invoices electronically for any Bill To party/Client that requests that. This means ability to integrate with any EDI vendor. Challenge is to support various protocols and data requirements.
Systems Analysis
Parameters in general
Number of parameters needs to be defined for each possible case of EDI integration for the purpose of sending sales invoices electronically.
Each case is defined by the following:
- typical case is when one company that Jaguar is invoicing have contracted only one vendor for these types of transmissions
- more complex case is when several companies are contracted
- each case is also defined by:
- list of Bill To parties (Invoice parameter)
- possibly list of MOTs supported
- possibly other parameters
Other parameters:
- Case id. Values = {1,2,3,....}
- Vendor. Values = {data2logistics, ... }
- Content Protocol. Values = {XML, EDI, ...}
- Transport.
- protocol. Values = {FTP, ...}
- connection credentials for inbound / outbound
Solution
Architecture
Since many Jaguar client companies would start/stop sending invoices through various EDI providers it would be nice to create generic solution to accommodate that.
Per discussion with Kostya, Misha, Alex solution should satisfy principles below.
- create set of java interfaces that will cover different future scenarios:
- different message protocols (XML, EDI, etc)
- different transport protocols (FTP, etc)
- different Bill To Company requirements
- configuration/parameters:
- should not be kept in DB
- should be managed through both
- UI based admin
- XML format or plain text format (Java properties file as an option) stored on the server
DB
Some related parameters are kept in Invoice table
Add another table. Attributes:
- inv id
- EDI Vendor id
- EDI Status
- transmit date
- status date
Table is named as Shipment Invoice Transmission.
EDI Status
This is attribute of the table above.
Takes values:
- New - until successful transmission
- Transmitted - after successful transmission
- Accepted - accepted by EDI Vendor and forwarded to Bill To party
- Rejected - rejected by EDI vendor
Test Messages
- Create and send several test EDI files to data2logistics.
- Write by hand some examples first and email to vendor. Later produce examples as they are generated by CT2 code.
- Send through e-mail first and later again post to FTP defined by vendor.
- Samples should be of recent 2013 invoices.
- Provide one for each mode: air, ocean, trucking.
Parameters
How to store them - see #Architecture.
List of parameters for data2logistics
Admin
Some params are defined through Admin section of CT2.
Admin params
- List of Bill To for EDI (these define what invoices are to be sent to given EDI vendor)
- see also #Bill To values list
- Email notifications list
- Transmission:
- how often
- switch (enable/disable transmission options)
Transmit Older Invoices
Admin should have such panel.
Goal is to be able to transmit invoices issued before release of this module.
To do that in admin add 5-10 pairs of Transmit From Date + associated Bill To (or allow user select ho many pairs he wants). Plus "Schedule" button. On submit system would schedule this job to be run on general schedule OR run it right away.
- Transmit From Date is a date from which to search/transmit invoices. It is based on Created On Invoice date.
Regenerate and Resend Rejected Invoices checkbox
Add "Regenerate&Resend Rejected Invoices next time the process will run" checkbox.
Add note: Will be automatically be unchecked after process is finished.
When it is checked system will:
- re-generate all EDI files for Invoices flagged as Rejected
- will resend them
Security for Admin
Implement any of these two options (whichever is faster):
option 1) Add access option for D2L Admin under Admin > Security > User Roles
option 2) give access only to superusers defined in super.user list on the server
Config file params
- Inbound folder credentials (address, login, pwd)
- Outbound folder credentials (address, login, pwd)
Bill To values list
Per Marc initial list is this:
- EA Domestic Portal – Roanoke
- Elizabeth Arden – Roanoke
- Elizabeth Arden Int'l Sarl C/O 4 Pole SA – Cointrin-Geneva
- EA USA Domestic – Roanoke
Creating Invoice
User experience of creating invoice that is to be transmitted through EDI would be the same with few exceptions, See below.
- After user selects "Bill To Party" system will compare it with a list of Bill To parties registered in the CT2 as Bill To Parties for EDI (it is defined by user in #Admin). If there is a match system will do the following - see 1,2 below.
- 1) Will add a prominent note to the Invoice Form (say in red below Inv Date field). It should say:
Please Note: * This invoice is identified to be transmitted through EDI based on selected Bill To Party. * As a result of this some fields are not editable on this form. To edit them go to appropriate CT Editor Tab (Gen, Imp, Exp or Com)
- 2) Make all fields on Invoice Form read-only except:
- File ref#:
- Invoice Comments:
- Bill To
- fields on Table Of Charges (TOC) section
Above is required to:
- make sure that data on template/sales pdf is identical to data on CT Editor/DB
- to EDI-transmit proper info (can not be transmuted data for some fields such as Airline - it is to be code based not plain text as on template. Same problem with Shipper field, etc)
Translating invoice info into EDI format
Invoice info is to be translated into EDI formats.
data2solutions that will accept all EDI messages for Arden communicated these requirements - see below.
Protocols
- 110 Air Freight Invoice
- 210 Motor Carrier Freight Details and Invoice
- 310 Ocean Freight Invoice
Fields
Credit Notes vs Invoices
Credit Notes will be transmitted with the same set of fields as invoices. To distinguish between Invoice and Credit Note:
- there is indicator in B3 segment
- nothing for Sales Invoice
- CA (Cancelled Bill) for Credit Note
- and also "-" sign before amount
Group Logic
If same vale is used for CT group and Individual CT cases then value is taken from CT from which invoice is issued.
Field mappings and detailed info
See these wikis:
Discovering and sending invoices
- Java process will wake up accordingly to defined in #Parameters schedule and:
- a) discover what invoices are subject to transmission to given EDI vendor
- b) send to required destination using required protocol
- a and b above using #Parameters
Failed invoices can only be re-send manually
FTP
- post files on their ftp site
Address: freight.data2logistics.com Username: JAFR1 Submission Folder: Inbound 997 Folder: Outbound Password: ***
Same site for prod and pre-prod.
Archive for outbound files
We need to keep copy of all outbound files we send.
Ideally separate folders for different EDI Vendors.
To be cleaned up every X months.
Status Updates
- Rejected invoices will be handled automatically via the 997 (or the ‘functional acknowledgment’) that will be placed in the outbound folder of the FTP for Jaguar to retrieve
- System will update status attribute of invoice in DB accordingly
Invoice reporting
Add to Search Invoices Report the below.
Filters:
- EDI Vendor (name of the company that receives given invoice through EDI)
- EDI status (accepted vs rejected)
- date invoice was transmitted
- date EDI status was received
Output fields:
- EDI status (accepted vs rejected)
- date invoice was transmitted
- date EDI status was received
Dashboard
- add option to Search Invoices Report to be a "dashboard report"
- managed through Scheduled Reports Menu
- 1st level - standard counter
- 2nd level - HTML table (use existing table we have for this rep)
- add "why rejected" column
- 3rd level - download to xls
- all existing fields plus "why rejected"
- "why rejected" is a field that keeps reason for rejection that comes from EDI provider (when available)
Logging
Post into Log component.
Add "Sales Inv EDI" category
Post events related to:
For a/ create one entry
- that summarizes under "Description" log field:
- when process run
- how many invoices/cr notes were discovered and sent
- list of inv numbers
- other log fields:
- "User / Office" = Inv EDI process
- "Operation" = sending
For b/ create one entry
- that summarizes under "Description" log field:
- when update was discovered
- how many invoices/cr notes were received with success and how many with failed status
- list of inv numbers with success and list with failed status
- other log fields:
- "User / Office" = Inv EDI process
- "Operation" = updates
Log for Admin
Add standard logging for #Admin params.
Email Notifications
If at least one invoice is rejected then group of users defined in #Parameters should be notified through e-mail.
User Roles and Use Cases
User Roles
- Admin -
- Operator -
- issue Inv or CN
- ! issue credit note only against "Accepted" invoices !
- System process -
- Accountant -
- track invoices that have been created several transmission periods ago but still in "New" or in "Rejected"
. Report these cases to ihelp.
- Ihelp engineer -
Use Cases
Initial Set Up
Changing parameters
Creating Invoice
Sending Invoice
Monitoring
Handling Failed Invoices
Ver 1.0
SOW 1 Create test message
mantis: 4249
spec: #Test Messages
SOW 2 Create Architecture
mantis: 4251
spec: #Architecture
SOW 3 Defining and editing all parameters
mantis: 0004262
spec: see #Parameters
SOW 4 Translating invoice info into EDI format
mantis: 4257
spec: see #Translating invoice info into EDI format
SOW 5 Discovering and sending invoices
mantis: 4258
spec: #Discovering and sending invoices
SOW 6 Receiving Status updates
mantis: 4259
spec: #Status Updates
SOW 7 Invoice reporting through Search Inv Report
mantis: 4260
spec: #Invoice reporting
SOW 8 Logging and Email Notifications
mantis: 4261
spec: #Logging and #Email Notifications
SOWs After UAT and QA started
SOW 9 Admin
mantis: 4742
spec:
1) Add "Sales Invoices EDI" item to "CT2 Main Menu > Acc"
2) Move "CT2 Main Menu > Admin > Acc > Trendset Admin" to "CT2 Main Menu > Acc > Sales Invoices EDI"
3) Add "Data2logistics Admin" to "CT2 Main Menu > Acc > Sales Invoices EDI"
4) Create #Admin page to manage: #Admin params under "Data2logistics Admin" (see above)
5) see #Transmit Older Invoices
SOW 10 Dashboard
mantis: 4273
spec:
- as discussed with Kostya
- see #Dashboard
SOW 11 Changes to Issue New Invoice Form
mantis: 4274
spec: see #Creating Invoice
SOW 12 Add EDI status column to Invoice table on Inv Tab
mantis: 4275
spec:
Add new column:
- column is #EDI Status
- Add to Sales inv / Credit Notes table on Inv Tab
- add on both CT Editor and CT Viewer
- add to the right of column "Currency"
SOW 13 Add validations to Invoice Form
mantis: 0004276
spec:
- MOT Air:
- fields list: Arden_110 (all required CT fields are defined now!)
- add CC valid: 1101 must be present (hold OFF on this one - to be confirmed!!! )
- MOT Ocean
- fields list: Arden 310 (all required CT fields are defined now!)
- add CC valid: 1301 or 1401 must be present (hold OFF on this one - to be confirmed!!! )
- MOT Truck
- fields list: Arden 210 (all required CT fields are defined now except possibly ONE!)
- add CC validation: at least one of these 3 codes must be present: 1501, 1503, 1505 (hold OFF on this one - to be confirmed!!! )
- UI (option 1):
- System would display say red star next to missing fields and NOTE would have additional bullet saying: Fields marked * are required. Please go back to CT Tabs to fill in required fields. Or any alternative design.
- UI (option 2) SIMPLER! WE DO NOT HAVE TIME!:
- just display list of missing required fields in pop-up with [OK] button
SOW 14 Add charge rate
mantis: 4286
spec:
Transmit additional field:
SOW 15
Logic for one vs multiple currency and main currency
mantis:
spec: 0004299
In Admin we need:
- main currency defined
To have a choice:
- a) allow multiple currencies
- b) do not allow multiple currencies
When creating invoice with Bill To linked to Data2Logistics system will:
- default currency in TOC line items and total to "main currency" defined in Admin
- validate that total is always in main currency
- validate that no other currencies are used for CC lines in case option "b" is selected above
SOW 16 Change mapping for Ship and Delivery dates
mantis: 004298
spec:
1) CT mappings for these 2 dates has changed. Instead of Doors we will send Ports. This is because we do not always handle Doors. But from port to port always.
See spec below:
- Arden_110#Delivery_Date and Arden_110#Ship_Date
- Arden_210#Delivery_Date and Arden_210#Ship_Date
- Arden_310#Delivery_Date and Arden_310#Ship_Date
Note that I updated wiki named "CT" so all mappings are correct and detailed (per MOT). Read it!
2) Change Invoice Form validations accordingly!
SOW 17 Fix Weight Qualifier and Weight value
mantis: 4308
spec:
- Set proper Weight Qualifier
- set non zero value for Weight for all 3 modes
see how in specs updated below:
SOW 18 Fix Container info
mantis: 4314
spec below
Requirement:
D2L needs container size/type info be sent using D2L codes - see File:Container Codes.xls (two tabs!)
Solution:
1) Send D2L container code for each container on invoice:
2) Add ability to manage D2L container codes in the system:
- ability to set code for existing and new size/type combinations
Redesign this UI:
- see Admin > Transportation > Container Sizes
- see Admin > Transportation > Container Types
New UI:
- on Add or Edit Cont Size or Type add ability to set codes for corresponding size/type combinations.
- default for code field is empty
Tech Note --------- New DB table will be added with attributes: - Cont size id - Cont type id - D2L container code
3) Add validation:
- for D2L invoices, if invoice is generated for CT that contains container with size/type combination that does not have D2L container code defined then show error to the user:
Error: CT contains container (<cont number>) with size/type combination (<size/type>) that does not have D2L container code defined in the system. Please define it in CT2 Admin or change size or type of container.
SOW 19 Post all L1 elements in one LX segment
mantis: 4330
spec below
Post all L1 elements in one LX segment. Example 1a below is how we do it now. Example 1b is how it should be.
Example 1a. ---------- LX*1 N7*TRLU*6503571********************40GP L5*1*TCIX1305LA25 L0*1***8373.82*N********0 L1*1*0.0**95000****701************USD LX*2 L1*2*0.0**66300****704************USD LX*3 L1*3*0.0**12300****315************USD LX*4 L1*4*0.0**3500****604************USD LX*5 L1*5*0.0**860000****503************USD L3*8373.82*B***1037100*******L
Example 1b. ---------- LX*1 N7*TRLU*6503571********************40GP L5*1*TCIX1305LA25 L0*1***8373.82*N********0 L1*1*0.0**95000****701************USD L1*2*0.0**66300****704************USD L1*3*0.0**12300****315************USD L1*4*0.0**3500****604************USD L1*5*0.0**860000****503************USD L3*8373.82*B***1037100*******L
SOW 20 Security for Admin
mantis: 4341
spec: #Security for Admin