INTERNET-DRAFT EXPIRES: AUGUST 1997 INTERNET-DRAFT Network Working Group S. Sheppard Internet-Draft S. Peoples Category: Standards Track Media Solutions International, Inc. January 1997 Electronic Part Catalog to Business System Interface Status of this Memo This document is an Internet-Draft. Internet-Drafts are working documents of the Internet Engineering task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress". To learn the current status of any Internet-Draft, please check the "1id-abstract.txt" listing contained in the Internet-Drafts Shadow Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe), munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or ftp.isi.edu (US West Coast). Abstract This Internet-Draft specifies a standard method of transferring part and pick list information between dealer business systems (DBS) and electronics parts catalog (EPC) systems. Table of Contents 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 Key Features . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3 Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4.1 Part Queries . . . . . . . . . . . . . . . . . . . . . . . . . 4 4.2 Pick Lists . . . . . . . . . . . . . . . . . . . . . . . . . . 6 5 Mass Updates . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6 Security Considerations of this Memo . . . . . . . . . . . . . . 6 7 Summary of tables and fields . . . . . . . . . . . . . . . . . . 7 7.1 Any These fields may appear in any of the files . . . . . . 7 7.2 C Comments . . . . . . . . . . . . . . . . . . . . . . . . 8 7.3 D Pick List Details . . . . . . . . . . . . . . . . . . . 8 7.4 H Pick List Header . . . . . . . . . . . . . . . . . . . . 8 7.5 P Parts . . . . . . . . . . . . . . . . . . . . . . . . . 9 7.6 S Stocked Part . . . . . . . . . . . . . . . . . . . . . 10 7.7 T Price Tape . . . . . . . . . . . . . . . . . . . . . . 11 8 References . . . . . . . . . . . . . . . . . . . . . . . . . . 11 9 Author's Addresses . . . . . . . . . . . . . . . . . . . . . . 11 Appendix - Country Codes from ISO 3166 . . . . . . . . . . . . . . . 12 Sheppard [Page 1] Internet-Draft EPC to DBS Interface January 1997 1 Introduction An EPC is used to electronically retrieve the information contained within the printed parts books. This is usually accomplished with a highly graphical interface. In addition, most EPCs run on Windows-based PC's. The EPC is only a lookup/ reference tool, but it does allow for the creation of "pick lists". A pick list places a number of part numbers along with the corresponding quantities requested into a list. A DBS is used to catalog the Part Numbers available at an Equipment Dealer/ Distributor's location. Typical systems allow for the entry of Part Numbers, Quantity on Hand, Quantity on Order, Bin Location, Retail Price, Customer Price, Suggested Retail Price, etc... These systems typically run on Unix based mainframes. With the rising use of EPCs in the outdoor power, agricultural, and construction equipment industries the need to share data in real-time with the legacy DBSs has become a key issue to successfully installing these systems. A number of proprietary, operating system specific, and inflexible protocols have been proposed to handle these interactions. It is the intent of this Internet-Draft to describe an interface which has been successfully implemented that overcomes the limitations of previous interfaces. 2 Key Features The key features of this interface are as follows: - expand-ability The framework is expansion-friendly - network independent Although tcp/ip is the only protocol currently used to implement this interface there other protocols that share TCP's key features such as ISO 8072 could be used instead. - client-server - decoupling The DBS and the EPC can each be upgraded without requiring a simultaneous upgrade in the other. This is particularly important in environments with EPC's from several vendors being used simultaneously. - operating system independent - real-time The user always sees the most current information. Sheppard [Page 2] Internet-Draft EPC to DBS Interface January 1997 3 Protocol The protocol is very simple. Data is transferred in both directions using the same format. Each line in the transfer is split up into four pieces. The first character is the `table'. Some might feel more comfortable referring to this as the `file' or `database', but since table is a less ambiguous term that is what this I-D will use. Examples of tables would be the part, stock part, pick list header, and pick list detail. Each of these has a unique character. The capitalization of this character is also significant. It is used to indicate the beginning of records. If the table character is a capital, that indicates the beginning of a record. If it is lower case, then it is a continuation of the current record. If the table is `#' then the rest of the line is ignored and is a comment. These comments are not intended to be displayed to the user. They are there merely to facilitate the debugging process. The second character is the `field'. Within each table characters are defined for individual fields such as `manufacturer', `part number', and `description'. Again, the capitalization of the characters is relevant. If a field is a capital letter it indicates information that is known. If it is lower case it indicates information that is being requested. The `*' character can be used to request all available information. Although no one has currently implemented it, it is possible for this character to be used to delete or count matching records. The third piece is simply a space (ASCII 32). The fourth piece consumes the rest of the line. It is the `value'. Monetary values are expressed in pennies. $123.45 would be passed as `12345'. The line should be terminated with a UNIX (LF) or DOS (CR/LF) line terminator. There should be no white space between the end of the value and the line terminator. If there is, it should be ignored. White space includes space, tab and other control characters. For purposes of this I-D ASCII 1-32 except LF should be considered white space. One particularly important point of this interface is the decoupling of the EPC and DBS. To achieve this version numbers are used. As long as the major number hasn't changed, both ends should cope gracefully with new tables and fields. The EPC or the DBS may have fields which the other does not. That these fields might be sent should not crash the interface, or cause the user to see an error message. The current version number is 2.1. Sheppard [Page 3] Internet-Draft EPC to DBS Interface January 1997 In the tcp/ip realm it has become common practice for the DBS to accept connections on port 2345. Many clients also rely on resolving `bsihost' to the IP address of the server. Also the system information passed in the `$' table should be the first thing sent. The client should send in the order `H' then `V' then the other optional `$' fields. The server should start with a `V' that is the same major number as the client. The other `$' fields should not be passed since they would be superfluous. The client and server should both finish by sending a final line of `QUIT' or `DONE'. While `DONE' may still be in use, `QUIT' is preferred since it is more consistent with other tcp/ip protocols. Version 2 clients and servers should support both, but Version 3 and greater clients and servers should support and send only `QUIT'. Appendix A lists the currently defined tables and fields. 4 Examples These examples are provided to help make the protocol easier to understand. 4.1 Part Queries The EPC might send the following to the DBS: $H N-Compass $V 2.1 $U tom SE XYZ sI 12345 s* QUIT In this case 'tom' is on 'N-Compass' running a version 2.1 EPC and is requesting information on part 12345 from manufacturer XYZ. The DBS might respond with $V 2.1 QUIT This would indicate that no information is available. Its likely that the DBS does not have that part on file. The DBS could have responded with: Sheppard [Page 4] Internet-Draft EPC to DBS Interface January 1997 $V 2.1 SE XYZ sI 12345 sB top shelf sC 123 sO 2 sQ 550 sD what-cha-ma-jig QUIT This indicates that the EPC should display the information to the user. The DBS also might have responded with $V 2.1 SE XYZ sI 12345 sB top shelf sC 123 sO 2 sQ 550 sD what-cha-ma-jig sA don't sell this without grease and instructions sA Bob knows how to install this QUIT In this case, the dealer or the manufacturer have added comments for this part. If possible this information should be displayed to the user in the EPC. Another example of a query from the EPC is $H N-Compass $V 2.1 $U tom TE XYZ tI 12345 tD What-Cha-Ma-Jiggy tZ US tC 123 tS 456 t* SE XYZ sI 12345 s* QUIT In this case the EPC knows information about the part that is relevant in the US. The DBS should store this information and use it to compute markups (actual customer prices are calculated). Sheppard [Page 5] Internet-Draft EPC to DBS Interface January 1997 4.2 Pick Lists An example of a simple pick list sent from the EPC would be: $H N-Compass $V 2.1 $U tom HI 1 hN sale for maury hS S DH 1 dI 1 dQ 2 dM XYZ dP 12345 DH 1 dI 2 dQ 4 dM XYZ dP 67890 QUIT In this case two parts are to be invoiced. The first part is quantity 2 of manufacturer `XYZ' part `12345'. The second part is quantity 4 of manufacturer `XYZ' part `67890'. 5 Mass Updates Support for this feature is not necessarily available on all current implementations. If the user would like to have the DBS updated with information from the EPC, they should be able to start a mass update. The mass update would include the normal $H and $V information. Then T records would be passed. 6 Security Considerations of this Memo Most vendors involved have not been concerned about security and all current implementations make few if any security checks. The host and user information included in the information from the client is assumed by most servers to be correct. While on a small private network this may or may not be acceptable, something such as SSL or PGP should be used in Internet environments. Sheppard [Page 6] Internet-Draft EPC to DBS Interface January 1997 7 Summary of tables and fields Table Field Description # Comments This line should be ignored. Use of comments for debugging purposes is recommended. $ B Branch. A query option. This is not required $ C Customer Number. A query option. This is not required $ H Hostname. The $H line must be the first line the EPC sends to the DBS. The hostname need not be sent by the DBS to the EPC. $ O Order Type. A query option. This is not required. $ S Source Type. A query option. This will either be C for Counter, M for Machine or W for Work Order. This is not required. $ U Username. A query option. This is not required. $ V Version. This is a floating point number. There will never be a "version 4.5.3" or "version 2.1.2.12.9.5". For this release the version "2.1". Sending it is required and it must be the second record sent by the EPC and the first record sent by the DBS. 7.1 Any These fields may appear in any of the files Any - Record is to be deleted. This is not currently supported by most implementations Any * Query for all fields Any # Query for count. This is not currently supported by most implementations Sheppard [Page 7] Internet-Draft EPC to DBS Interface January 1997 7.2 C Comments C A Comment C E Equipment Manufacturer. (OEM) C I Part Number, Primary. The E and I fields make up the compound primary key for a Part. 7.3 D Pick List Details D C Cost. D H Header Identifier. This value must match an "HI" value transferred as part of a previous "Pick List Header". D I Identifier. The H and I fields make up the compound primary key for a Pick List Detail. D M Manufacturer Code. D P Part Number. D Q Quantity. D S Status. R for Receiving or Returning. 7.4 H Pick List Header H I Identifier. This is the unique key for Pick List Headers. It should be unique across transactions H N Name. A descriptive name for the entire pick list H S Status. S for Sale, P for Purchase, M for Miscellaneous. Sheppard [Page 8] Internet-Draft EPC to DBS Interface January 1997 7.5 P Parts P C Cost. (in cents) P D Description. P E Equipment Manufacturer. (OEM) P F Reserved. This varies depending on the manufacturer. P G Reserved. This varies depending on the manufacturer. P I Part Number, Primary. E and I form the compound primary key for a Part. P J Part Number, Secondary. P L Local Purchase. Y or N. If N, the part is not available from the manufacturer. P R Remarks. Part Notes P S Suggested Retail Price. (in cents) P U Unit. The units by which something is sold. E.g., "Carton", "Set", etc. P W W Weight. In hundredths of a pound. P Y New Part Numbers / Superseded By / Superseder (repeatable) P Z Old Part Numbers / Supersedes / Supercedee (repeatable) Sheppard [Page 9] Internet-Draft EPC to DBS Interface January 1997 7.6 S Stocked Part S A Comment. Other information added my the manufacturer or user. The DBS may also manufacture other textual information and place it in a comment. S B Bin. The location of the item at the dealership. S C Dealer Cost. Money is in cents. S D Description. S E Equipment Manufacturer. (OEM) S F Reserved. This varies depending on the manufacturer. S G Reserved. This varies depending on the manufacturer. S I Identifier. E and I form the compound primary key for a Stock Part. S M Minimum. S O On Hand. S P Customer Price. (in cents) S Q Customer Price, Secondary. (in cents) S R Reserved Quantity. S S Suggested Retail Price. (in cents) S U Supersession. S Y Quantity Sold in Year To Date. S Z Quantity On Order. Sheppard [Page 10] Internet-Draft EPC to DBS Interface January 1997 7.7 T Price Tape T C Dealer Cost. (in cents) T D Description. T E Equipment Manufacturer. (OEM) T F Reserved. This varies depending on the manufacturer. T G Reserved. This varies depending on the manufacturer. T I Identifier. E and I form the compound primary key for a Stock Part. T S Suggested Retail Price. (in cents) T Z ISO 3166 Country Code for this combination. The country code means that cost and SRP are in the currency of that country (US dollars, CN dollars, etc.). The description may also be in the primary language of that country. See appendix for a list of these country codes. 8 References [1] Postel. J., "Transmission Control Protocol.", STD 7, RFC 793, USC/Information Sciences Institute, September 1981. [2] P. Mockapetris, "Domain Names - Concepts and Facilities", USC/Information Sciences Institute, November 1987 9 Author's Addresses Scott Sheppard Media Solutions International, Inc. 430 Tenth Street NW Suite N-210 Atlanta, Georgia 30318 Phone: (404)892-1268 Ext. 314 Fax: (404)892-1928 E-Mail: pinky@mindspring.com Sean Peoples Media Solutions International, Inc. 430 Tenth Street NW Suite N-210 Atlanta, Georgia 30318 Phone: (404)892-1268 Ext. 302 Fax: (404)892-1928 E-Mail: seanp@mindspring.com Sheppard [Page 11] Internet-Draft EPC to DBS Interface January 1997 Appendix - Country Codes from ISO 3166 Updated by the RIPE Network Coordination Centre. Source: ISO 3166 Maintenance Agency Latest change: Tue Jan 7 15:57:16 MET 1997 Country A 2 A 3 Number ------------------------------------------------------------------- AFGHANISTAN AF AFG 004 ALBANIA AL ALB 008 ALGERIA DZ DZA 012 AMERICAN SAMOA AS ASM 016 ANDORRA AD AND 020 ANGOLA AO AGO 024 ANGUILLA AI AIA 660 ANTARCTICA AQ ATA 010 ANTIGUA AND BARBUDA AG ATG 028 ARGENTINA AR ARG 032 ARMENIA AM ARM 051 ARUBA AW ABW 533 AUSTRALIA AU AUS 036 AUSTRIA AT AUT 040 AZERBAIJAN AZ AZE 031 BAHAMAS BS BHS 044 BAHRAIN BH BHR 048 BANGLADESH BD BGD 050 BARBADOS BB BRB 052 BELARUS BY BLR 112 BELGIUM BE BEL 056 BELIZE BZ BLZ 084 BENIN BJ BEN 204 BERMUDA BM BMU 060 BHUTAN BT BTN 064 BOLIVIA BO BOL 068 BOSNIA AND HERZEGOWINA BA BIH 070 BOTSWANA BW BWA 072 BOUVET ISLAND BV BVT 074 BRAZIL BR BRA 076 BRITISH INDIAN OCEAN TERRITORY IO IOT 086 BRUNEI DARUSSALAM BN BRN 096 BULGARIA BG BGR 100 BURKINA FASO BF BFA 854 BURUNDI BI BDI 108 CAMBODIA KH KHM 116 CAMEROON CM CMR 120 CANADA CA CAN 124 CAPE VERDE CV CPV 132 CAYMAN ISLANDS KY CYM 136 CENTRAL AFRICAN REPUBLIC CF CAF 140 CHAD TD TCD 148 CHILE CL CHL 152 CHINA CN CHN 156 CHRISTMAS ISLAND CX CXR 162 COCOS (KEELING) ISLANDS CC CCK 166 Sheppard [Page 12] Internet-Draft EPC to DBS Interface January 1997 Country A 2 A 3 Number ------------------------------------------------------------------- COLOMBIA CO COL 170 COMOROS KM COM 174 CONGO CG COG 178 COOK ISLANDS CK COK 184 COSTA RICA CR CRI 188 COTE D'IVOIRE CI CIV 384 CROATIA (local name: Hrvatska) HR HRV 191 CUBA CU CUB 192 CYPRUS CY CYP 196 CZECH REPUBLIC CZ CZE 203 DENMARK DK DNK 208 DJIBOUTI DJ DJI 262 DOMINICA DM DMA 212 DOMINICAN REPUBLIC DO DOM 214 EAST TIMOR TP TMP 626 ECUADOR EC ECU 218 EGYPT EG EGY 818 EL SALVADOR SV SLV 222 EQUATORIAL GUINEA GQ GNQ 226 ERITREA ER ERI 232 ESTONIA EE EST 233 ETHIOPIA ET ETH 231 FALKLAND ISLANDS (MALVINAS) FK FLK 238 FAROE ISLANDS FO FRO 234 FIJI FJ FJI 242 FINLAND FI FIN 246 FRANCE FR FRA 250 FRANCE, METROPOLITAN FX FXX 249 FRENCH GUIANA GF GUF 254 FRENCH POLYNESIA PF PYF 258 FRENCH SOUTHERN TERRITORIES TF ATF 260 GABON GA GAB 266 GAMBIA GM GMB 270 GEORGIA GE GEO 268 GERMANY DE DEU 276 GHANA GH GHA 288 GIBRALTAR GI GIB 292 GREECE GR GRC 300 GREENLAND GL GRL 304 GRENADA GD GRD 308 GUADELOUPE GP GLP 312 GUAM GU GUM 316 GUATEMALA GT GTM 320 GUINEA GN GIN 324 GUINEA-BISSAU GW GNB 624 GUYANA GY GUY 328 HAITI HT HTI 332 HEARD AND MC DONALD ISLANDS HM HMD 334 HOLY SEE (VATICAN CITY STATE) VA VAT 336 HONDURAS HN HND 340 Sheppard [Page 13] Internet-Draft EPC to DBS Interface January 1997 Country A 2 A 3 Number ------------------------------------------------------------------- HONG KONG HK HKG 344 HUNGARY HU HUN 348 ICELAND IS ISL 352 INDIA IN IND 356 INDONESIA ID IDN 360 IRAN (ISLAMIC REPUBLIC OF) IR IRN 364 IRAQ IQ IRQ 368 IRELAND IE IRL 372 ISRAEL IL ISR 376 ITALY IT ITA 380 JAMAICA JM JAM 388 JAPAN JP JPN 392 JORDAN JO JOR 400 KAZAKHSTAN KZ KAZ 398 KENYA KE KEN 404 KIRIBATI KI KIR 296 KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF KP PRK 408 KOREA, REPUBLIC OF KR KOR 410 KUWAIT KW KWT 414 KYRGYZSTAN KG KGZ 417 LAO PEOPLE'S DEMOCRATIC REPUBLIC LA LAO 418 LATVIA LV LVA 428 LEBANON LB LBN 422 LESOTHO LS LSO 426 LIBERIA LR LBR 430 LIBYAN ARAB JAMAHIRIYA LY LBY 434 LIECHTENSTEIN LI LIE 438 LITHUANIA LT LTU 440 LUXEMBOURG LU LUX 442 MACAU MO MAC 446 MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF MK MKD 807 MADAGASCAR MG MDG 450 MALAWI MW MWI 454 MALAYSIA MY MYS 458 MALDIVES MV MDV 462 MALI ML MLI 466 MALTA MT MLT 470 MARSHALL ISLANDS MH MHL 584 MARTINIQUE MQ MTQ 474 MAURITANIA MR MRT 478 MAURITIUS MU MUS 480 MAYOTTE YT MYT 175 MEXICO MX MEX 484 MICRONESIA, FEDERATED STATES OF FM FSM 583 MOLDOVA, REPUBLIC OF MD MDA 498 MONACO MC MCO 492 MONGOLIA MN MNG 496 MONTSERRAT MS MSR 500 MOROCCO MA MAR 504 MOZAMBIQUE MZ MOZ 508 Sheppard [Page 14] Internet-Draft EPC to DBS Interface January 1997 Country A 2 A 3 Number ------------------------------------------------------------------- MYANMAR MM MMR 104 NAMIBIA NA NAM 516 NAURU NR NRU 520 NEPAL NP NPL 524 NETHERLANDS NL NLD 528 NETHERLANDS ANTILLES AN ANT 530 NEW CALEDONIA NC NCL 540 NEW ZEALAND NZ NZL 554 NICARAGUA NI NIC 558 NIGER NE NER 562 NIGERIA NG NGA 566 NIUE NU NIU 570 NORFOLK ISLAND NF NFK 574 NORTHERN MARIANA ISLANDS MP MNP 580 NORWAY NO NOR 578 OMAN OM OMN 512 PAKISTAN PK PAK 586 PALAU PW PLW 585 PANAMA PA PAN 591 PAPUA NEW GUINEA PG PNG 598 PARAGUAY PY PRY 600 PERU PE PER 604 PHILIPPINES PH PHL 608 PITCAIRN PN PCN 612 POLAND PL POL 616 PORTUGAL PT PRT 620 PUERTO RICO PR PRI 630 QATAR QA QAT 634 REUNION RE REU 638 ROMANIA RO ROM 642 RUSSIAN FEDERATION RU RUS 643 RWANDA RW RWA 646 SAINT KITTS AND NEVIS KN KNA 659 SAINT LUCIA LC LCA 662 SAINT VINCENT AND THE GRENADINES VC VCT 670 SAMOA WS WSM 882 SAN MARINO SM SMR 674 SAO TOME AND PRINCIPE ST STP 678 SAUDI ARABIA SA SAU 682 SENEGAL SN SEN 686 SEYCHELLES SC SYC 690 SIERRA LEONE SL SLE 694 SINGAPORE SG SGP 702 SLOVAKIA (Slovak Republic) SK SVK 703 SLOVENIA SI SVN 705 SOLOMON ISLANDS SB SLB 090 SOMALIA SO SOM 706 SOUTH AFRICA ZA ZAF 710 SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS GS SGS 239 SPAIN ES ESP 724 Sheppard [Page 15] Internet-Draft EPC to DBS Interface January 1997 Country A 2 A 3 Number ------------------------------------------------------------------- SRI LANKA LK LKA 144 ST. HELENA SH SHN 654 ST. PIERRE AND MIQUELON PM SPM 666 SUDAN SD SDN 736 SURINAME SR SUR 740 SVALBARD AND JAN MAYEN ISLANDS SJ SJM 744 SWAZILAND SZ SWZ 748 SWEDEN SE SWE 752 SWITZERLAND CH CHE 756 SYRIAN ARAB REPUBLIC SY SYR 760 TAIWAN, PROVINCE OF CHINA TW TWN 158 TAJIKISTAN TJ TJK 762 TANZANIA, UNITED REPUBLIC OF TZ TZA 834 THAILAND TH THA 764 TOGO TG TGO 768 TOKELAU TK TKL 772 TONGA TO TON 776 TRINIDAD AND TOBAGO TT TTO 780 TUNISIA TN TUN 788 TURKEY TR TUR 792 TURKMENISTAN TM TKM 795 TURKS AND CAICOS ISLANDS TC TCA 796 TUVALU TV TUV 798 UGANDA UG UGA 800 UKRAINE UA UKR 804 UNITED ARAB EMIRATES AE ARE 784 UNITED KINGDOM GB GBR 826 UNITED STATES US USA 840 UNITED STATES MINOR OUTLYING ISLANDS UM UMI 581 URUGUAY UY URY 858 UZBEKISTAN UZ UZB 860 VANUATU VU VUT 548 VENEZUELA VE VEN 862 VIET NAM VN VNM 704 VIRGIN ISLANDS (BRITISH) VG VGB 092 VIRGIN ISLANDS (U.S.) VI VIR 850 WALLIS AND FUTUNA ISLANDS WF WLF 876 WESTERN SAHARA EH ESH 732 YEMEN YE YEM 887 YUGOSLAVIA YU YUG 891 ZAIRE ZR ZAR 180 ZAMBIA ZM ZMB 894 ZIMBABWE ZW ZWE 716 Sheppard [Page 16] INTERNET-DRAFT EXPIRES: AUGUST 1997 INTERNET-DRAFT