lunedì 17 novembre 2008

Using Macros in File Names

Ciao,
stavo cercando le "macro" per ottenere "file names" ,... e cercando qua e la ho trovato il link (finalmente) al MSDN aggiornato a Biztalk 2006 r2:

http://msdn.microsoft.com/en-us/library/aa578022.aspx

di seguito la tabella  (se non si raggiungesse il link)
Macro name Substitute value
%datetime% Coordinated Universal Time (UTC) date time in the format YYYY-MM-DDThhmmss (for example, 1997-07-12T103508).

%datetime_bts2000%

UTC date time in the format YYYYMMDDhhmmsss, where sss means seconds and milliseconds (for example, 199707121035234 means 1997/07/12, 10:35:23 and 400 milliseconds).

%datetime.tz%

Local date time plus time zone from GMT in the format YYYY-MM-DDThhmmssTZD, (for example, 1997-07-12T103508+800).

%DestinationParty%

Name of the destination party. The value comes from the message context property BTS.DestinationParty.

%DestinationPartyQualifier%

Qualifier of the destination party. The value comes from the message context property BTS.DestinationPartyQualifier.

%MessageID%

Globally unique identifier (GUID) of the message in BizTalk Server. The value comes directly from the message context property BTS.MessageID.
%SourceFileName%
Name of the file from which the File adapter read the message. The file name includes the extension and excludes the file path, for example, Sample.xml. When substituting this property, the File adapter extracts the file name from the absolute file path stored in the FILE.ReceivedFileName context property. If the context property does not have a value—for example, if a message was received on an adapter other than the File adapter—the macro will not be substituted and will remain in the file name as is (for example, C:\Drop\%SourceFileName%).
Correct implementation of this macro requires that the output message is the same message as the received message.
%SourceParty%
Name of the source party from which the File adapter received the message.
Correct implementation of this macro requires that the output message is the same message as the received message.
%SourcePartyQualifier%
Qualifier of the source party from which the File adapter received the message.
Correct implementation of this macro requires that the output message is the same message as the received message.

%time%

UTC time in the format hhmmss.

%time.tz%

Local time plus time zone from GMT in the format hhmmssTZD (for example, 124525+530).

lunedì 25 febbraio 2008

Adapter Oracle, concurrent calls

Ciao, eccomi di nuovo!
Scenario del problema:
-2 macchine bilanciate (intel xeon, windows server 2003 sp2)
- web service per la ricezione di files
- biztalk 2006 (english)
- utilizzo dell'adapter oracle per chiamate a stored procedure per lettura e inserimento record ( ma va' ?!? )
Il problema era questo, in inglese suona meglio:
"The Runtimeagent.exe process stops responding when you make concurrent calls by using BizTalk adapter" , premetto che sia bizzy che event viewer , debug viewer , non davano alcun messaggio di errore!!! Lato DBOracle non c'era nulla, il vuoto! Solo dal task manager si vedevano N runtimeagent li appesi... nell'oblio. Solo cercando via google sono giunto a questa pagina http://support.microsoft.com/kb/922810/en-us 

Stamattina, abbiamo ( io  e vanpelt) provato a installare l'hotfix che ho prontamente richiesto il venerdì , e ora tutto funge!!!

Bene bene! Mi resta un dubbio, nel post precedente avevo linkato una pagina con una serie di FIX per l'adapter oracle... speriamo di non averne necessità!!

ciaooo.

venerdì 22 febbraio 2008

Adapter oracle ... 2

Ciao,
stavo facendo un passaggio in produzione di un applicativo ( una serie di orchestrazioni)  che chiaramente sulla macchina di sviluppo va che è un piacere, ... ecco comparire i soliti errori:
- transazioni appese
- Runtimeagent.exe fermi
- Vari errorini strani nell'event viewer...
Succo del post , :-) , ho fatto un po' di ricerche ecco cosa ho trovato, un sito da farti perdere i capelli...
http://seroter.wordpress.com/2007/08/27/important-hotfixes-for-the-biztalk-oracle-adapter/
una serie di Fix per l'adapter oracle!!! E sarà tutto qui ??
No perchè arrivando in fondo alla pagina scopro questo:
http://support.microsoft.com/search/default.aspx?query=Microsoft+BizTalk+Adapter+for+Oracle+Database&catalog=LCID%3D1033&spid=&qryWt=&mode=r&cus=False&x=4&y=12
..un'altra serie di fix!??! Lo sconforto è su di me... forse era meglio se usavo un SQL Server e poi facevo un job per importare i dati in Oracle ?

No! Combatterò finche il problema non sarà risolto! ( servirebbe una canzoncina di sottofondo...)

domenica 17 febbraio 2008

Adapter Oracle...

Ciao,
stavo lavorando con Bizzy, quando mi si chiede di cambiare un tipo di dato, che è passato da string a decimal. Ok, giochetto da ragazzi!
Aggiorno il la tabella del DB, aggiorno le stored procedures coinvolte, faccio i test e ... le modifiche lato DB sono OK.
Passo Bizzy, aggiorno gli schema coinvolti... e tutto OK...
Ora siccome ho utilizzato add generated  per importare le stored procedure, seguo i passaggi e dò l'OK. ( come al solito).Vado a verificare quello che ha creato, ed ecco nello schema generato il tipo di dato non si è aggiornato!! E' rimasto di tipo string.
Grazie all'event viewer risalgo all'errore... verifico e quindi lo sistemo a mano, cambiando il tipo nello schema generato automaticamente ... GRRR!!!
Lancio , eseguo le orchestrazioni e tutto ok.
PS. quando usate l'adapter oracle e suoi wizard ..verificate quello che crea!

Fidarsi è bene, non fidarsi ( dell'adapter oracle) è meglio.

Ciao!

domenica 18 febbraio 2007

il primo articolo

ciao,
questo è il primo articolo del mio blog.

saluti a tutti.

mercoledì 7 febbraio 2007

Adapter Oracle o misteri di Biztalk ??

Oggi stavo provando un orchestrazione... a un certo punto mi da un errore ORA-06502 !!
Avendo implementato un meccanismo di backup dei file ricevuti in pasto , sono risalito velocemente al file che ha generato l'errore. Per farla breve e semplificando accade questo:
1.  Bizzy riceve un file xml  al cui interno cè un campo DECIMAL
2. Ho una mappa che non fa altro che assegnare il valore di quel campo ad un altro schema
3 Il secondo file xml , istanziato dalla trasformazione serve per passare i dati a una stored procedure che va ad inserire i dati in oracle...

 Semplice no?

Ecco cosa accade... l'orchestrazione si incastra perchè dice che gli arriva un formato errato causato da una conversione sbagliata?!?!!?!? (il famoso errore ORA-06502),
ah.. dimenticavo il dato DECIMAL è scritto cosi 4.6 e non con la virgola!!! (poichè in oracle la , non funziona come separatore decimale) .

Un'altra cosa interessante è che l'adapter oracle è configurato mediante DNS, chè è legato al regional setting della macchina!!!
Ho cercato di capire il motivo e potrebbe essere:
1) Regional setting della macchina di biztalk ha impostato la , come separatore decimale
2) Regional setting della macchina di oracle ha impostato la , come separatore decimale
Non potendo gestire manualmente su queste impostazioni, poichè non sono amministratore della macchiana mi sono trovato in difficoltà!!
 Il perchè della trasformazione del valore 4.5 a 4,5 non lo ho capito bene chi lo fa... ma credo sia durante la chiamata SOAP per richiamare la stored (al SEND del messaggio tanto per capirci)...
 COME FARE????
Per ovviare il problema ho fatto cosi:
1) sapendo a priori dal DB la dimensione dei numeri decimali (sempre fissa)
2) ho usato nella mappa un functoid moltiplicatore e ho moltiplicato il valore per il numero dei decimali ( es. 4 decimali ... x10000)
3) ho ampliato chiaramente la dimensione della colonna nel DB per evitare problemi di dimensioni dato...
4) aggiornata la stored procedure di insert dividendo il valore per il valore del moltiplicatore ( es. /10000)
5) deployato :-)

ecco fatto! ora funziona!!!
Mi rimane cmq il dubbio.... e se qualcuno sa dirmi se ha trovato una VALIDA alternativa ....

Ciao!