Convalida del tipo di dati (elemento dati)
La pipeline di ricezione e la pipeline di trasmissione EDI eseguono la convalida EDI sugli elementi dati del set di transazioni. Questa convalida è configurata per tutti i messaggi da o a una specifica parte, tramite le proprietà del contratto di tale parte nella pagina Convalida (nella sezione Impostazioni set di transazioni per i contratti X12 o EDIFACT). Se la proprietà Convalida tipi EDI non è selezionata nella pagina Convalida , le convalida dei dati descritte in questo argomento non verranno eseguite.
La convalida dei tipi EDI è abilitata per i messaggi in ingresso e in uscita selezionando la proprietà Convalida dei tipi EDI nella pagina Convalida delle schede del contratto bidirezionale nella finestra di dialogo Proprietà contratto . Questa proprietà è selezionata per impostazione predefinita per i messaggi in ingresso e in uscita, pertanto la convalida EDI è abilitata per impostazione predefinita.
Controlli di convalida
Quando la pipeline di ricezione o di trasmissione EDI esegue la convalida EDI, viene convalidato quanto segue:
Tipi di dati definiti dalle proprietà EDI dello schema
Restrizioni di lunghezza
Elementi dati vuoti e separatori finali
Nota
Tramite questa convalida non vengono verificati set di codici (enumerazioni) o numero minimo o massimo di occorrenze.
Character Sets
Per eseguire le convalide di elementi dati EDI, le pipeline di ricezione e di trasmissione EDI richiedono che il set di caratteri sia stabilito nel modo seguente:
Per EDIFACT, il set di caratteri viene stabilito nell'elemento dati UNB1 della pagina Charset e Separatori della scheda contratto unidirezionale della finestra di dialogo Proprietà contratto o nella finestra di dialogo Impostazioni di fallback EDIFACT (se non è stato stabilito alcun contratto).
Per KEDIFACT, il carattere viene stabilito nell'elemento dati UNB1 della pagina Charset e Separatori della scheda contratto unidirezionale della finestra di dialogo Proprietà contratto , come per EDIFACT. Il valore per l'elemento UNB1.1 deve essere impostato su
KECA
.Per X12, il set di caratteri viene stabilito per il messaggio nelle proprietà della pipeline.
Nota
Quando nel runtime BizTalk viene eseguita la convalida EDI di un messaggio, viene utilizzato il set di caratteri X12 selezionato nelle proprietà della pipeline. Tuttavia, la convalida delle proprietà immesse nelle pagine della finestra di dialogo Proprietà contratto viene eseguita usando il set di caratteri selezionato nella pagina Charset e Separatori di tale finestra di dialogo. Durante il runtime, la pipeline ignora il valore della pagina Charset e Separatori del set di caratteri X12 della finestra di dialogo Proprietà contratto . Se queste due impostazioni non sono uguali(ad esempio, la proprietà del set di caratteri X12 nella finestra di dialogo Proprietà contratto è impostata su Extended mentre la proprietà caratteri X12 nelle proprietà della pipeline è impostata su Basic), gli errori di convalida dei messaggi potrebbero causare.
Convalida del tipo di dati
Per X12, i tipi di dati EDI seguenti vengono annotati nello schema per la convalida dai componenti Disassembler o Assembler nelle pipeline di ricezione o di trasmissione: Numerico, Decimale, Identificatore, Stringa, Data, Ora, Binario e Composito.
Per EDIFACT, i tipi di dati EDI seguenti vengono annotati nello schema per la convalida dai componenti Disassembler o Assembler nelle pipeline di ricezione o di trasmissione: Alfabetico, Numerico, Identificatore, Stringa e Composito.
Restrizioni di lunghezza
Per X12 ed EDIFACT, è necessario convalidare gli elementi o i sottoelementi per il requisito di lunghezza (minima e massima). La lunghezza è definita come numero di posizioni di caratteri utilizzate. La lunghezza non include segni e notazioni decimali.
Nota
Per un tipo di dati stringa X12_AN, gli spazi iniziali vengono mantenuti e gli spazi finali sono consentiti in qualsiasi segmento per soddisfare il requisito di lunghezza minima.
Per KECA, la lunghezza viene interpretata come numero di byte. Ad esempio, se il valore di lunghezza è pari a tre, l'elemento o il sottoelemento può includere tre caratteri a byte singolo o la combinazione di un carattere a due byte e un carattere a byte singolo.
Convalida di elementi dati vuoti e separatori finali
Per X12, gli elementi dati contrassegnati come obbligatori non possono essere vuoti in un'istanza se il segmento è presente. Se l'elemento dati è composito, è necessario che almeno un elemento dati componente abbia un valore.
Per EDIFACT, è possibile escludere gli elementi dati e i sottocomponenti senza valore e condizionali, tuttavia il separatore viene mantenuto.
I separatori finali non sono obbligatori per X12 o EDIFACT, ma sono consigliati.
Disabilitazione della convalida dei tipi EDI
Se si disattiva la convalida dei tipi EDI, gli elementi dati che contengono errori controllati dalla convalida dei tipi EDI verranno elaborati nella pipeline di ricezione o di trasmissione EDI senza sospendere l'elaborazione del messaggio.
Nota
La convalida strutturale EDI viene eseguita anche se la convalida dei tipi EDI è disabilitata. Se un interscambio non è in grado di eseguire le convalide strutturali di base verrà sospeso, anche se la convalida dei tipi EDI è disabilitata.
Di seguito sono indicati alcuni degli errori che verranno elaborati senza causare la sospensione del messaggio:
Set di transazioni imprevisto o non definito
Dati imprevisti o non definiti a livello di segmento o ciclo e di elemento dati
Facoltatività (numero minimo e massimo occorrenze) a livello di segmento o ciclo e di elemento dati
Violazione della lunghezza (minima o massima) a livello di elemento dati (dati la cui lunghezza supera il livello massimo o è inferiore al livello minimo)
Mancata corrispondenza del tipo di dati a livello di elemento dati (eccetto il tipo di dati ID che dispone di un proprio controllo)
Elenco di enumerazione non valido a livello di elemento dati.
Se la convalida dei tipi EDI è disabilitata sul lato ricezione, ma abilitata sul lato trasmissione, la pipeline di trasmissione EDI non sarà in grado di rielaborare il messaggio XML prodotto dalla pipeline di ricezione in un file EDI valido se il file XML contiene errori. Di conseguenza, verrà generato un errore.
Se la convalida dei tipi EDI è disabilitata, gli errori verranno gestiti dalla pipeline di ricezione o di trasmissione EDI nel modo seguente:
Dati imprevisti | Azione |
---|---|
Set di transazioni imprevisto o non definito | La pipeline di ricezione o trasmissione EDI accetterà un set di transazioni anche se per esso non è stato distribuito uno schema. |
Segmento o record imprevisto | La pipeline di ricezione genererà un tag con il prefisso appropriato: <UnexpectedSegment_%SegmentID%>. La pipeline di trasmissione utilizzerà da uno a tre caratteri iniziali del nome del tag XML come nome del segmento. |
Elemento dati semplice imprevisto | La pipeline di ricezione genererà un tag XML con un prefisso, un identificatore di segmento e un indice che rappresenta la posizione dell'elemento dati nel segmento: <UnexpectedDataElement_%FieldName%. |
Elemento dati composito imprevisto | La pipeline di ricezione genererà tag XML con prefisso, identificatore segmento e indice che rappresenta la posizione dell'elemento dati nel segmento: <UnexpectedCompositeDataElement_%FieldName%. |
Dati obbligatori mancanti | I dati verranno considerati facoltativi. |
Violazione della lunghezza dell'elemento dati | Verrà considerata valida la lunghezza non valida dell'elemento dati (min = 0 e max = unbounded). |
Valore di enumerazione non valido nell'istanza (applicabile al tipo di dati ID) | L'errore verrà ignorato e l'elaborazione verrà proseguita. |
Violazione di ripetizione "max" nell'istanza | Tali dati ripetitivi verranno considerati validi (min occurs = 0 e max occurs = unbounded). |
Segnalazione errori
Quando la convalida dei tipi EDI viene disattivata, BizTalk Server non segnala errori nella Visualizzatore eventi, ma segnala un avviso. Inoltre, il riconoscimento segnala "Accetto" all'entità di origine, impostando AK501 e AK901 come "E" in X12 997 o UCI.4, UCM.3 e UCF.4 come "7" in EDIFACT CONTRL. Di conseguenza, verrà eliminata qualsiasi possibilità di rettifica nelle trasmissioni future. Tuttavia, i ricevitori del messaggio avranno l'opportunità di recuperare il documento manualmente evitando il rifiuto o la sospensione del messaggio. Inoltre, la Edi.ErrorsInTransactionSet
proprietà di contesto verrà promossa se uno di questi errori viene rilevato dalla pipeline di ricezione EDI. Questa proprietà verrà innalzata come "True" se vengono riscontrati errori di convalida estesa o EDI. Se non vengono riscontrati errori, la proprietà verrà innalzata come "False".
Se la pipeline di ricezione o di trasmissione riscontra dati imprevisti, viene segnalato l'errore a livello padre e vengono ignorati gli errori a livello figlio, nel modo seguente:
Dati imprevisti | Azione |
---|---|
Set di transazioni imprevisto | Il riconoscimento segnala questo errore e ignora gli errori successivi a livello di segmento o ciclo e di elemento dati |
Segmento o ciclo imprevisto | Il riconoscimento segnala questo errore e ignora gli errori a livello di elemento dati |
Elemento dati imprevisto | Il riconoscimento segnala questo errore e ignora gli errori composti correlati a proprietà quali ID, lunghezza, occorrenze e cosi via e gli errori correlati a campi di elementi dati compositi, se applicabili. |