浅述EDI--接收模型(1)

原创 2004年09月15日 14:14:00

声明:尽管我这里的题目叫做 “EDI 技术浅述” ,并不表明EDI的确需要深邃的技术,只是说得好听一些,给人以高深的迷惑感 ^o^

1.EDI (Electronic Data Interchange 电子数据交换, 无纸贸易[金山词霸2003解释])

2.平文件:与计算机操作系统无关的电子数据文件

3.EDI报文

是通过电子媒质进行交换数据的文件,在这个交换数据的过程中,主要由两部分组成,格式和平台。

格式是指,报文的具体数据格式。平台是指报文应用的操作系统平台(但是大多数EDI报文都是以平文件的格式传输的,但是由于WINDOWS的存在,EXCEL等固定平台格式的报文也很常见)

4.EDI定义

EDI报文定义,就是指EDI报文的格式,这个格式是由贸易伙伴双方共同的一个约定。由于计算机的普及,现在联合国和交通部,都有对各种电子报文的格式定义,其中联合国标准我们通常称为EDIFACT。当然方便期间,你可以和你的贸易伙伴约定一个格式定义,但是这样在通用性方面就会大打折扣。所以我们建议使用联合国和交通部相关标准

5.一个通用的EDI接收验证发送模型--程序员最关心的问题

在开发交通运输方面的项目的时候,我们会经常涉及到对EDI报文的接收发送的问题

例如一个集装箱码头的生产管理,会涉及到与其它集装箱码头,集装箱公司,货物代理等之间的大量EDI数据的接收发送验证问题

但是由于EDI格式的不规范,和其它集装箱码头,集装箱公司,货物代理的不规范,及技术的不完善,以及EDI报文生成,及传输过程中造成错误的不可避免,仍然给EDI报文的接收验证发送工作造成了相当大的困难。其次就是对未知报文的接收验证发送,对程序员来说也是一个相当头痛的问题。

那么,怎样能够开发一个相对通用的EDI系统哪?下面给出了一个模型。

请对照(中华人民共和国海关舱单电子数据传输管理办法)

http://customs.huzhou.gov.cn/zcfg/hggz/ysgj/1.htm

?

或自行搜索(中华人民共和国交通部相关标准)

或联合国标准船图(P1)

阅读以下内容

第一部分:数据格式定义

由大约6部分组成:

(1)数据(报文)代码(商检报文,海关报文) 相当于一类图书的名称

(2)数据(报文)标准定义(商检验箱单标准,海关舱单标准) 定义的标准,相当于一个文学书籍中的一类,例如:古汉语文学,现代英语文学。当我们看到这个标准的时候,就知道,她的格式要么是汉字的,要么是英文的

(3)记录(海关舱单标准:提单头记录,提运单记录,提运单-集装箱记录) 通常一个标准中包含多个记录,如果只有一个记录,那么这是一个最简单的报文,也最容易处理,它如下格式

(4)字段 记录里的具体的具体内容,例如一个集装箱箱号MSKU1234567

(5)字段属性 我们用来接收(读取)这个字段内容时候的规则

(6)数据库表定义 我们要将数据读取到数据库中具体的哪一个表的哪一条记录的哪一个字段里?

在这一部分里面,最重要的是(3)和(5)两部分的内容,因为我们将在这两部分中定义读取规则.

记录:我们应该实现

1.按照什么来读一行记录?

A.按照长度(海关标准须如此)

B.按照一个具体的分割符号(联合国标准须如此)

C.按照开始的标志来读取(交通部格式须如此)

D.其他...(xml格式)

2.这种记录是不是循环的?这种记录是不是嵌套循环的?--怎么处理记录的循环?

A.按照一个标志(P1中的EQD就将告诉我们,一个段组循环开始(也就是记录循环.段组:嵌套循环的记录))

B.按照一个指定的数字循环(海关提运单)

其他...

字段:我们应该实现

1.读取到哪儿?

要能够设定读取到表中的哪个字段,这其中可能会出现越界

2.怎样读取?

A.按照长度读取(海关舱单只能这样)

B.按照标识读取

C.按照分割符读取(P1联合国应该如此)

例如:

NAD+CA+CMA:172:ZZZ'

LOC+147+0250702::5'

?NAD,LOC为记录标识,CA,147为字段具体值,用分割符(+)分割

注意CMA:172:ZZZ是NAD下面的一个嵌套,CMA,172,ZZZ是字段,由(:)分割,所以我们应该把NAD叫做一个段组

D.应该能够提供函数功能,

例如,

(A)重复设置函数,我可以重复的把CA插入表中的所有记录的一个字段中

(B)判断函数,当NAD记录的第一个字段中的数据等于CA的时候我就把CA转换成CN

(C)TRIM,LEFT,RIGHT,MID函数,截取字符串

(D)字段提取函数,在本来应该写入CMA的时候,我去提取CA的值,写入(这时候CA必须是已经读取过的,否则就会有问题)

(E)其他函数

通过以上的分析,我们会看到

是可以作到基本上通用的,但是其中的控制相当烦琐,具体细节过于纷繁,没有亲自分析过2,3种标准的更无从体会.

一点经验:

联合国的各种标准,最烦琐,因为要适应全世界吗!如果能够把联合过的标准疏通一遍,其他标准作起来就顺利的多了.

由于XML的发展,XML作为平台文件传输成为一种趋势

编程语言浅述

根据项目特点不同,需考虑多种因素进行编程语言的选择。下面列举了一些更值得注意的地方。     1. 编译型、解释型、运行时编译型     (1) 编译型语言     编译型语言被编译器转换为目标...
  • zoneIT
  • zoneIT
  • 2017年05月23日 11:00
  • 361

自定义控件 浅述

自定义控件 1. 在res->values->attrs.xml中声明你要自定义的属性(如果没有 attrs.xml可以新建一个) 例如这个 其中 代...
  • qq_22994781
  • qq_22994781
  • 2016年05月30日 16:11
  • 107

浅述异常处理

今天上课讲的异常,自己整理一下,留用。。。 异常就是在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序。Java的异常处理是通过5个关键字来实现的:try、catch、 finally、t...
  • listenTOknow
  • listenTOknow
  • 2013年11月01日 21:31
  • 702

Python爬虫浅述

Python作为一种解释型编程语言,在很多场景下都有应用,比如,搜索引擎,网页脚本,爬虫,网络安全等;在部分场景需要算法做支持;然而今天就总结一下简单的脚本爬虫,毕竟是在大二时期接触的Py,将近两年没...
  • qq_34417408
  • qq_34417408
  • 2017年11月20日 19:29
  • 81

android 签名浅述

android 签名简介
  • qq_27061049
  • qq_27061049
  • 2017年11月21日 19:21
  • 69

ISDN网络浅述

前阵子有个公司(本来是我们的EDI潜在客户,但后来被别人夺了过去)打电话给我,问我们有没有经验实施基于ISDN的OFTP通信。我当时就质问他们你们不是已经有了service provider了么,不会...
  • levychiu
  • levychiu
  • 2014年07月09日 09:56
  • 496

第一次书写标书和述标经历

为了保密起见以下出现相关信息均使用字母表示 前段时间曾经合作过的S公司联系我们公司说需要投标G项目,感觉我们的系统平台不错,所以需要我们帮其完成技术方案,我们主管貌似有点忙,so让我帮忙完成。OH,...
  • DADADIE
  • DADADIE
  • 2015年04月08日 20:50
  • 4356

Android Jni调用浅述

声明:欢迎转载,转载时请注明出处! http://blog.csdn.net/flydream0/article/details/7371692 1 简述     JNI是Java N...
  • wujiangguizhen
  • wujiangguizhen
  • 2013年12月12日 14:35
  • 601

Android Jni调用浅述

版权声明:本文为博主原创文章,未经博主允许不得转载。 目录(?)[+] 声明:欢迎转载,转载时请注明出处! http://blog.csdn.net/flydrea...
  • hubinbin595959
  • hubinbin595959
  • 2016年02月26日 10:11
  • 117

Android Jni调用浅述

http://blog.csdn.net/flydream0/article/details/7371692 1 简述     JNI是Java Native Interf...
  • thinkinwm
  • thinkinwm
  • 2013年03月05日 11:45
  • 3137
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:浅述EDI--接收模型(1)
举报原因:
原因补充:

(最多只允许输入30个字)