Conservazione dei delimitatori nel componente della pipeline dell'assembler file flat
Se vi sono record mancanti nel messaggio che attraversa una pipeline personalizzata la quale utilizza l'assembler del file flat, nell'output del file flat il delimitatore di questi record può essere o non essere presente, a seconda della posizione da cui mancano i record nel file di input.
Per garantire che il file flat mantenga determinati delimitatori è possibile utilizzare una mappa e uno script personalizzato per creare un record "vuoto" quando nel messaggio non esiste un record di input specifico. Perché questo approccio funzioni, è necessario accertare che le proprietà dei nodi potenzialmente vuoti nello schema del documento per l'assembler del file flat siano impostate come illustrato:
Proprietà | Impostazione |
---|---|
Mantieni delimitatore per i dati vuoti | Sì |
Elimina delimitatori finali | No |
Genera nodi vuoti (da impostare sul nodo radice) | Vero |
Per creare una mappa che crea un record "vuoto"
Aggiungere una nuova mappa al progetto BizTalk.
Specificare lo schema del documento utilizzato dall'assembler del file flat sia come schema di origine della mappa sia come schema di destinazione.
Eseguire il mapping dei campi di origine che non resteranno vuoti ai campi di destinazione corrispondenti.
Per i campi che possono rimanere vuoti, utilizzare uno script personalizzato per controllare se il campo di origine è vuoto e restituire una stringa vuota (anziché Nil). Utilizzare uno script simile al seguente:
public string ValOrEmpty(string val) { return (val.Length > 0) ? val : ""; }
Nota
È necessario creare uno script con un nome di funzione univoco per ogni campo potenzialmente vuoto mappato. Ad esempio, se sono presenti tre campi che possono essere vuoti, è possibile che siano presenti funzioni denominate
ValOrEmpty1
, ,ValOrEmpty2
ValOrEmpty3
.Utilizzando la console di amministrazione BizTalk Server, configurare la porta di trasmissione con la pipeline personalizzata e il componente dell'assembler del file flat in modo che utilizzi la mappa in uscita.
Vedere anche
Come configurare le mappe in uscita per una porta di trasmissione
Componente della pipeline dell'assembler del file flat