在知行EDI系統中實施SNIP驗證

2022-06-06 19:21:10 字數 3430 閱讀 4393

此前的文章介紹了snip驗證edi檔案,本文主要介紹如何在知行edi系統中實施snip驗證。知行edi系統的edi處理功能包括對較低snip驗證級別的內建支援。更高的snip驗證級別可能需要配置驗證埠作為資料處理的附加步驟,而最高端別的snip驗證可能需要編寫指令碼來實現驗證邏輯。

在文章snip驗證edi檔案中介紹了snip的7種型別,本節將描述如何在知行edi系統中實現每個級別的snip驗證。但是,在描述所有這些級別之前,對於知行edi系統的新手來說,描述應用程式如何處理edi處理可能會有很大幫助。

知行edi系統的edi埠

知行edi系統包含許多edi埠,這些埠可將各種edi格式轉換為xml或從xml生成edi文件。將edi資料轉換為xml的過程,遵循知行edi系統在整合流程中使用xml作為中間資料格式的一般方法。使用xml作為通用資料格式,不僅可以簡化通過xml map connector進行的資料轉換,還可以確保知行edi系統可以整合來自不同資料來源和格式的資料。因此,資料通常在流程的早期轉換為xml,在流程的中間傳輸,然後在流程結束時從xml轉換為某種目標格式。

當edi埠將edi資料轉換為xml時,知行edi系統還將根據適當的edi文件架構對edi結構進行驗證。預設情況下,此驗證僅包括確保edi可以正確轉換為xml所必需的內容:段順序,段的開啟和關閉等。edi埠還在「高階設定」選項卡中有乙個名為snip validation的設定,啟用後會加強對edi資料的驗證要求。知行edi系統中,啟用snip validation的頁面如下圖所示:

在知行edi系統中的flows頁面下,任選乙個edi埠。以edifact埠為例,點選名為edifact1的埠,在advanced頁面下勾選enable snip validation即可。

如以下小節所述,要確保snip驗證的前三個級別,只需在edi埠中啟用snip validation設定即可。

要實現更高階別的snip驗證,可能需要額外的驗證埠或自定義script。這些埠將在edi埠之後新增到flow中,因此要驗證的資料將是xml(edi埠已經將edi轉換為xml)。下面提供了此附加驗證的詳細資訊。

實施snip型別1

知行edi系統通過其內建的edi處理自動實現snip型別1。無需啟用任何設定,也無需採取任何其他步驟。

實施snip型別2和3

為了確保snip型別2或3驗證,應在負責將edi轉換為xml的edi埠的「高階」選項卡中啟用snip驗證設定。無需其他步驟。

實施snip型別4

snip型別4驗證要求將「驗證埠」新增到處理輸入edi資料的流中。為實現型別4邏輯,可以驗證埠配置:元素a 包含值「x」,然後,元素b必須是一組值之一,例如「y」或「z」。請注意,驗證埠需要xml輸入,因此應將輸入edi檔案轉換為xml的edi埠之後新增。

在驗證埠中正確實現此邏輯需要對所涉及的edi資料有一定的了解。使用者必須熟悉具有這種「if a,then b」關係的特定edi元素,並能夠在轉換的xml中追蹤到這些元素的xpath。

一旦知道了edi元素之間的xpath和關係,就可以使用在知行edi系統工作流中實現這些要求的規則來配置驗證埠。這些規則檢查兩個xpath的值是否都在期望的集合內,並使用運算子「不等於」,「正規表示式匹配」和布林值「or」來完成「if-then」邏輯。下面提供了實現此邏輯的示例。

以乙個簡單的type 4要求為例:如果elementa的值為「il」,則elementb必須為「40」,「41」或「42」。

在驗證埠中實現此步驟時,需要考慮兩個步驟:

這些將在「驗證埠」規則的「xpath」欄位中使用。

接下來,考慮這些元素之間的邏輯關係:如果elementa具有特定值(「il」),則elementb必須具有特定值(範圍為40-42的數字)。表達這種關係的另一種方法是下面的:要麼elementa是不特定的值(「il」),或elementb 必須具有特定值(40-42)。關係的這種表述可以在驗證埠中通過「or」連線的兩個規則來表示:

elementa notequals 'il'

orelementb regex matches (40|41|42)

可以為需要具有「型別4」驗證關係的每對元素實施這種驗證規則方法。

實施snip型別5-7

更高階別的snip驗證要求編寫自定義script來實現要求。本節將概述開始為每個驗證級別編寫指令碼所必需的概念。

與驗證相關的通用指令碼概念

將edi檔案轉換為xml後,最好應用script。它包括xmldomsearch之類的操作,用於在指定的xpath上迴圈xml資料。因此,建議的工作流設計是將指令碼埠直接放置在edi埠之後,以負責將edi文件轉換為xml,並使用適當的驗證指令碼配置該指令碼埠。

在xmldomsearch中,xpath格式化程式可以檢索指定xpath處的值(相對於xmldomsearch呼叫中提供的xpath )。本小節的底部提供了使用此格式化程式的示例。

arc:set關鍵字用於在乙個屬性(即變數)中儲存乙個值。arc:if關鍵字可以用來實現條件邏輯。arc:select關鍵字可以用來檢查乙個值是否在指定的情況集內。

當驗證指令碼遇到驗證失敗的edi資料時,它需要引發錯誤。script中的錯誤使用arc:throw關鍵字引發。

以下是示例script的摘要,表示指令碼驗證規則所需的邏輯種類:

snip型別5snip型別5需要讀取外部資源以檢查可能的值範圍。使用者負責獲取這些外部資源的過程。

一旦獲得,就可以使用一系列script功能從這些資源中讀取值,具體取決於資源的特定型別:

讀取到來自外部授權的值後,實現這些限制的過程將遵循與上一小節中提供的**段相似的語法。

snip型別6

snip型別6需要根據edi檔案中列出的服務來驗證特定的值關係。用於此驗證的指令碼方法遵循與其他資料驗證指令碼相同的原則,另外還有乙個步驟,即首先在驗證每個單獨的資料元素時檢索要使用的醫療服務價值。

這些指令碼應遵循上述相同的「arc:select」和「arc:if」方法,儘管實際的邏輯中可能包含更多級別和元素。

snip型別7

snip型別7需要來自外部edi交易夥伴的直接輸入。因此,實施這些規則的細節取決於合作夥伴,但是應使用相同的條件邏輯工具(「arc:select」,「arc:if」)來實施這些檢查。

知行edi系統包括對snip驗證的基線級別的簡單一鍵式支援,並提供了埠和script驗證以實施更具體的驗證規則。

怎麼理解知行之橋EDI系統的埠?

什麼是埠?通常情況下埠是計算機內部用來識別不同應用程式的位址,如常見的80埠 21埠等。而從計算機硬體的角度來看,埠是計算機背板的rj45網口或者是 使用的rj11插口。這兩種說法都沒有錯誤,它們分別是埠這個大類中的虛擬埠和物理埠。埠 是英文port的意譯,廣義上來講,可以認為是裝置與外界通訊交流的...

在Sublime Text 3中新增snippet

1,點選tools new snippet,你會得到如下 cdata hello,is a 引數講解 cdata 這裡是你要現實的內容 你所需要顯示的內容都要寫在cdata中 這裡的數字1,代表游標第一顯示的位置,必選,你還可以設定更多,游標第二顯示的位置,按tab鍵由1位置到2位置,游標第100顯...

沒有企業管理系統,影響企業實施EDI專案嗎?

常有客戶會有這樣的疑問,沒有企業管理系統,影響企業實施edi專案嗎?當然不影響。本文首先介紹企業管理系統與 edi系統的區別,其次介紹現階段企業實施 edi專案的現狀,最後針對沒有企業管理系統的情況提出相應的解決方案。首先解決企業管理系統是什麼的疑問。對不同的企業而言,對企業管理系統的定義各有不同。...