How to handle HTTP Message Format
Hi All,
i have the interface like XML File(Supplier)--XI--HTTP Message Post(SRM Server)
How to handle this case and how to handle the HTTP Message formats, what Adapters and all i need to use here
Regards
Vamsi
check susma's reply
File to HTTP
File to HTTP
/people/kausik.medavarapu/blog/2005/12/29/csv-file-lookup-with-http-request-and-response-in-xi
Similar Messages
-
How to handle http 302 response in OEG
how to handle http 302 response.
The URL has moved <a href="https://............................
I am using "Connect to URL" and "Reflect message" filters and I am getting http 302 response. In the http esponse body/content I have the "The URL has moved <a href="https://............................"
How to connect to this url.
Thank you very much for your help.hi
I took your advise on the second approach and added new filter to catch 302 response and read the new URL from Location. Here is the flow.
Connect to URL --> Is HTTP CODe =302 --> Retrieve Location from Http Header- Rewrite URL - Dynamic Router - Connection
I am getting a new error as below. I verified the certificates using the below open ssl comands and added them to the certificate store in OEG. The error comes from the Redirect URL which is cs12.salesforce.com
C:\Program Files\GnuWin32\bin>openssl s_client -connect test.salesforce.com:443 -showcerts
and
C:\Program Files\GnuWin32\bin>openssl s_client -connect cs12.salesforce.com:443 -showcerts
thank you for your time and help.
ERROR 06/May/2012:00:22:23.125 [14e0] nested fault: SSL protocol error
error:140CF086:SSL routines:SSL_VERIFY_CERT_CHAIN:certificate verify fai
led
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate veri
fy failed:
java.lang.RuntimeException: SSL protocol error
error:140CF086:SSL routines:SSL_VERIFY_CERT_CHAIN:certificate verify fai
led
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate veri
fy failed
at com.vordel.dwe.ConnectionCache.getConnection(Native Method)
at com.vordel.circuit.net.ConnectionProcessor$State.tryTransaction(Conne
ctionProcessor.java:482)
at com.vordel.circuit.net.ConnectionProcessor.invoke(ConnectionProcessor
.java:650)
at com.vordel.circuit.InvocationEngine.invokeFilter(InvocationEngine.jav
a:154)
at com.vordel.circuit.InvocationEngine.invokeCircuit(InvocationEngine.ja
va:43)
at com.vordel.circuit.InvocationEngine.processMessage(InvocationEngine.j
ava:229)
at com.vordel.circuit.SyntheticCircuitChainProcessor.invoke(SyntheticCir
cuitChainProcessor.java:36)
at com.vordel.dwe.http.HTTPPlugin.invokeDispose(HTTPPlugin.java:290)
at com.vordel.dwe.http.HTTPPlugin.invoke(HTTPPlugin.java:131) -
How to handle error message during PAI?
Hi Experts,
Need help here.
In my dialog screen, I have a field which is typed 'QUAN'.
In entering different format , e.g. with non numeric value or a negative value, an error message appear and it does not process the MODULES inside the chain or FIELD MODULE ON REQUEST.
Does anyone knows how to handle this kind of error. I need to display into a separate screen the errors I encountered coz I'm creating a new RF transaction.
Points will be rewarded.
Thanks in advance.Hai
in your case(RF case) it is other way...
yes you can use
field x_currency module check_currency.
in module check_currency.
you have to display errors in another screen say 200.
in that there will be 4 fields, all are display only fields.
X_MESSAGE-MSGV1 of type sy-msgv1
X_MESSAGE-MSGV2 of type sy-msgv2
X_MESSAGE-MSGV3 of type sy-msgv3
X_MESSAGE-MSGV4 of type sy-msgv4
you populate the messages with these fields and then display it in the screen.
method check_currency.
*--do all your checks here....
if error
clear x_message.
x_message-msgv1 = 'Enter Valid Employee Number'(004).
leave to screen 0200.
endif.
endif.
ENDMODULE. " VALIDATE_Currency
in screen 200 PBO you need to format the message
using the below logic.
Method for formatting the message
method message_format.
data : lt_text type table of tline, "text table
lx_text type tline. "work area
refresh lt_text.
clear lx_text.
concatenate x_message-msgv1 x_message-msgv2 into lx_text-tdline
separated by space.
append lx_text to lt_text.
clear lx_text.
concatenate x_message-msgv3 x_message-msgv4 into lx_text-tdline
separated by space.
append lx_text to lt_text.
*- formatting the message
call function 'FORMAT_TEXTLINES'
exporting
formatwidth = 20
tables
lines = lt_text
exceptions
bound_error = 1
others = 2.
clear: x_message.
*- transfer the message data to screen fields
loop at lt_text into lx_text.
if sy-tabix = 1.
x_message-msgv1 = lx_text-tdline.
elseif sy-tabix = 2.
x_message-msgv2 = lx_text-tdline.
elseif sy-tabix = 3.
x_message-msgv3 = lx_text-tdline.
elseif sy-tabix = 4.
x_message-msgv4 = lx_text-tdline.
else.
exit.
endif.
endloop.
endmethod. "message_format
Regards
Vijay -
How to handle xml message in proxy inbound processing?
Hi Experts,
I have a scenario that is SOAP Client====>XI===>ECC.
But i don't need to use the XI mapping,i skip mapping
in XI and use the generated proxy inbound processing.
Here is a message structure as below.
<commodityList>
■<commodity>
■■<detailNo>303303</detailNo>
■■<makerName>sony</makerName>
■■<ChargeInfoList>
■■■<productId>aaaa</productId>
■■■<name>bbb</name>
■■</ChargeInfoList>
■</commodity>
</commodityList>
When i sent the message without field entry of <productId>
and <name> i got the response in soap client as below.
<commodityList>
■<commodity>
■■<detailNo>303303</detailNo>
■■<makerName>sony</makerName>
■</commodity>
</commodityList>
The field tag <ChargeInfoList> doesn't display.
But i want it to display as below.
<commodityList>
■<commodity>
■■<detailNo>303303</detailNo>
■■<makerName>sony</makerName>
■■<ChargeInfoList>
■</commodity>
</commodityList>
In case of field entry is empty,how to let the response
contains tag?
As i know ,there is a CONTROLLER in proxy .
But i don't know if it is relevant to this
case and i don't know how to handle it.
BrandHi Mrudula,
As far as i know there are no content conversion methodology for HTTPS as the recevier adapter.
Also you can read through these links to confirm the same:
http://help.sap.com/saphelp_nw04/helpdata/en/0d/5ab43b274a960de10000000a114084/content.htm
http://publib.boulder.ibm.com/infocenter/wbihelp/v6rxmx/index.jsp?topic=/com.ibm.wbia_adapters.doc/doc/sap_xi/sapximst30.htm
SAP NetWeaver - XML Communication Interface (CA-XML) [original link is broken]
Regards,
abhy
note: reward the helpful. -
How To Handle Error Message In TCD Recording?
Hi All,
I tried recording a transaction (my own transaction) by not enterring value in an obligatory field. the error message came. but when i executed the script, it showed an error. but actualy, the error message was expected right? how to handle this situation? i tried with tcd and sapgui recording. both gave almot the same result.
i am including the script which i have written.
MESSAGE ( MSG_1 ).
*TCD ( ZCUST , ZCUST_1 , ECC ).
SAPGUI ( SAP_1 , ECC ).
ENDMESSAGE ( E_MSG_1 ).
v_mno = &tfill.
v_msg = E_MSG_1[v_mno]-msgtext.
v_mtp = E_MSG_1[v_mno]-msgtyp.
If Msg Type is E *** **** It Has To Be E ****
IF ( v_mtp = 'E' and v_msg = 'Account no AC02 does not exist EXIT = X').
logtext(0,'Passed').
ELSE.
log(v_mtp).
log(v_msg).
logtext(1,'Failed').
ENDIF.
End Of The Condition For Message Type E ******I have recording messages using the TCD command.
My script (very simple):
MESSAGE ( MSG_2 ).
TCD ( ME21 , ME21_1 , R3 ).
ENDMESSAGE ( E_MSG_2 ).
In the MESSAGE command interface, I defined rules to allow several kind of messages.
Execution: 3 mesages found:
* transform PR into PO
MESSAGE MSG_2 [1,009 sec]
RULES MSG_2 = XML-DATA-01
Message MODE EXIT TYPE ID NR
[1] 'A' 'I' 06 456
[2] 'A' 'W' 'ME' 080
[3] 'A' 'E' 'ZE' 029
TCD ME21 [0,545 sec N] Target sys R3 -> ZDA010A219
S06017 Standard PO created under the number 8201075606
Tgt System Z_A219->R3->ZDA010A219 (ZDA 010 ... HP-UX ORACLE)
CALL TRANSACTION ME21 ME21_1 XML-DATA-01
03 MESSAGES FROM ME21 ME21_1 XML-DATA-01
I 06 456 Release effected with release code 00001
W ME 080 Delivery date: next workday is 02.05.2007
S 06 017 Standard PO created under the number 8201075606
ENDMESSAGE E_MSG_2 (&TFILL = 0)
As you can see, 3 messages are found but the &TFILL variable is still 0.
I guess (but cannot test yet) I would manage to record those messages using SAPGUI command.
Is there anything wrong with my script?
My SAP_BASIS component is in version 620. I'm not using the ultimate version of eCATT (no WEBDYNPRO command, etc.). Could it be an explanation?
Thank you in advance,
Olivier -
How to handle parked message in BPM?
Hi,
I have a scenario that buyer as R3 send PO(same PO number) change idoc multiple times into bpm without receiving PO change confirmation(from seller, non R3) yet, I have a loop in bpm to handle this case, the loop checks the condition whether confirmation matches change request, if not, potential loop repeats. However, if I have multiple change request(same PO number) sent from R3 to BPM, my BPM waiting for my order confirmation, then if the first order confirmation comes into BPM matches with the first change request, then I exit the loop, but I still have several change requests parked at processXXXXX yet to be processed, does anybody came into similar situations? Any good suggestions or examples?
Thanks,
MaggieHi there,
I need to correlate ChangeConfirmation to ChangeRequest with PO number, this is for the purpose of ChangeRequest waiting for Confirmation for the same PO number. However, I don't know how to handle multiple changes come into BPM without confirmation yet, my current design is that I immediately enter a loop in BPM, with condition confirmation Info doese not match change info, thus the change request is bundled with bpm process, once the porcess is finished(response match change request), the queue of my other change requests(the parked ones) now got deleted, does anybody have any good suggestions in handling multiple change request(for same PO number) in bpm? Is there a way I can force bpm to handle one request one response, throw some error message if multiple changes comes together without response yet? Anybody had encountered similar issues?
Thanks,
Magge -
How to handle error messages in BDC background mode
Hi experts,
I got one problem in BDC, We are uploading data throgh BDC program,that program is calling Standard Batch Input programs,
Now we got one requirement, i.e., In some special cases we have to send one message as a error message.I handled this in foreground but, how to handle this in background.Hi,
if session is being used
automatically the log will begenereated in the sm35 transaction
but if call transaction is used
put all the error messages in the applicationserver using
open data set
and after the exectionof the program in the background
you have to run another progam which reads the data stroed inthe application server
that also with open data set only...
thanks & regards,
Venkatesh -
How to handle HTTP-POST encrypted data for ECC Using proxy or RFC
I have a scenario HTTP-POST ->PI->ECC.sender is HTTP Post send encrypted data i need to handle the data and stored in to SAP ECC with out decrypt using PI .what should i take for receiver can i use inbound proxy or RFC and how can handle the encrypted data for decrypt.
Regards
Ravi1. my sender is HTTP POST . what should i configure in sender communication channel in SAP PI .like SOAP or HTTP .What are the parameters i need to pass .
>>>
If you are on PI 7.3 and above, configure the HTTP AAE adapter - Configuring the Java HTTP Adapter on the Sender Channel - Advanced Adapter Engine - SAP Library
2.while using inbound proxy for encrypted data i need store the data in to table , the same proxy can i call another outbound service for decrypt same data.
>>>>
Yes you can always a proxy within a proxy. -
How to handle the messages.
Hi,
I am doing interactive report. In that how to handle the error meesages.
Regards
SrinuHI
IF YOU WANT HANDLE THE ERROE MESSAGES
*& Report ZNNR_REPORT
REPORT ZNNR_REPORT NO STANDARD PAGE HEADING <b>MESSAGE-ID ZNNR</b> LINE-SIZE 100 LINE-COUNT 65(4).
******DATA DECLARATIONS**********
DATA : BEGIN OF IT_PLANT OCCURS 0,
MATNR LIKE MARA-MATNR,
WERKS LIKE MARC-WERKS,
PSTAT LIKE MARC-PSTAT,
EKGRP LIKE MARC-EKGRP,
END OF IT_PLANT.
DATA : BEGIN OF IT_PONO OCCURS 0,
EBELN LIKE EKKO-EBELN,
EBELP LIKE EKPO-EBELP,
MATNR LIKE EKPO-MATNR,
WERKS LIKE EKPO-WERKS,
LGORT LIKE EKPO-LGORT,
END OF IT_PONO.
TABLES EKKO.
********END OF DATA DECLARATIONS*********
********SELECTION SCREEN DESIGN ***********
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETER : P_WERKS LIKE MARC-WERKS MODIF ID S1.
SELECT-OPTIONS : S_EBELN FOR EKKO-EBELN NO INTERVALS MODIF ID S2.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-004.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS : R1 RADIOBUTTON GROUP G1 DEFAULT 'X'.
SELECTION-SCREEN COMMENT 5(20) TEXT-002 FOR FIELD R1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS : R2 RADIOBUTTON GROUP G1.
SELECTION-SCREEN COMMENT 5(20) TEXT-003 FOR FIELD R2.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK B2.
******END OF SELECTION SCREEN DESIGN****************
*********INITIALIZATION OF SELECTION SCREEN ELEMENTS.*****
INITIALIZATION.
P_WERKS = '1000'.
S_EBELN-LOW = '4500016926'.
S_EBELN-OPTION = 'EQ'.
S_EBELN-SIGN = 'I'.
APPEND S_EBELN.
CLEAR S_EBELN.
************END OF INITIALIZATION***********************
***********SCREEN MODIFICATIONS*******************
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF R1 EQ 'X' AND SCREEN-GROUP1 EQ 'S2'.
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDIF.
IF R2 EQ 'X' AND SCREEN-GROUP1 EQ 'S1'.
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
********END OF SCREEN MODIFICATIONS*****************
***************SCREEN VALIDATIONS *****************
at selection-screen.
SELECT SINGLE *
FROM EKKO
INTO EKKO
WHERE EBELN IN S_EBELN.
IF SY-SUBRC <> 0.
SET CURSOR FIELD 'S_EBELN-LOW'.
<b>MESSAGE E999 WITH TEXT-005</b>.
ENDIF.
********end of screen validation*****************
START-OF-SELECTION.
*set pf-status '100'.
IF R1 EQ 'X'.
SELECT MATNR
WERKS
PSTAT
EKGRP
FROM MARC
INTO TABLE IT_PLANT
WHERE WERKS = P_WERKS.
LOOP AT IT_PLANT.
WRITE : SY-VLINE , 2 IT_PLANT-MATNR COLOR COL_KEY,
21 SY-VLINE , 22 IT_PLANT-WERKS COLOR COL_KEY,
27 SY-VLINE ,28 IT_PLANT-PSTAT COLOR COL_NORMAL,
43 SY-VLINE ,44 IT_PLANT-EKGRP COLOR COL_NORMAL.
ENDLOOP.
ENDIF.
IF R2 EQ 'X'.
SELECT EBELN EBELP MATNR WERKS LGORT
FROM EKPO
INTO TABLE IT_PONO
WHERE EBELN IN S_EBELN.
LOOP AT IT_PONO.
WRITE : SY-VLINE , 2 IT_PONO-EBELN COLOR COL_KEY,
12 SY-VLINE , 13 IT_PONO-EBELP COLOR COL_KEY,
18 SY-VLINE , 19 IT_PONO-MATNR COLOR COL_NORMAL,
37 SY-VLINE , 38 IT_PONO-WERKS COLOR COL_NORMAL,
44 SY-VLINE , 45 IT_PONO-LGORT COLOR COL_NORMAL, 49 SY-VLINE..
ENDLOOP.
ENDIF.
TOP-OF-PAGE.
IF R1 EQ 'X'.
*ULINE AT /1(48).
WRITE : SY-VLINE ,2 'MATERIAL NUMBER',
21 SY-VLINE , 22 'PLANT',
27 SY-VLINE , 28 'STATUS',
43 SY-VLINE , 44 'GRUP', 48 SY-VLINE.
ULINE AT /1(48).
ENDIF.
IF R2 EQ 'X'.
WRITE : SY-VLINE , 2 'PO NUMBER',
12 SY-VLINE, 13 'ITEM',
18 SY-VLINE,19 'MATERIAL NUMBER',
37 SY-VLINE, 38 'PLANT',
44 SY-VLINE, 45 'GRUP',
49 SY-VLINE.
ULINE AT /1(50).
ENDIF.
END-OF-PAGE.
ULINE AT /1(50).
WRITE :/10 'PAGE NUMBER', SY-PAGNO.
WRITE THE CONDITION WHAT EVER YOU WANT TO CHECK AND IF THAT IS TRUE SY-SUBRC = 0 THEN NO MESS IF NE 0 THEN RAISE A ERROR MESSAGE LIKE ABOVE
REWARD IF USEFULL -
How to handle Multiple date formats for the same date field in SQL*Loader
Dear All,
I got a requirement where I need to get data from a text file and insert the same into oracle table.
I am using SQL*Loader to populate the data from the text file into my table.
The file has one field where I am expecting date date data in multiple formats, like dd/mon/yyyy, yyyy/dd/mon, yyyy/mon/dd, ,mm/dd/yyyy, mon/dd/yyyy.
While using SQL*Loader, I can see Loading is failing for records where we have formats like yyyy/dd/mon, yyyy/mon/dd, mon/dd/yyyy.
Is there any way in SQL*Loader where we can mention all these date formats so that this date data should go smoothly into the underlying date column in the table.
Appreciate your response on this.
Thanks,
Madhu K.The point being made was, are you sure that you can uniquely identify a date format from the value you receieve? Are you sure that the data stored is only of a particular limited set of formats?
e.g. if you had a value of '07/08/03' how do you know what format that is?
It could be...
7th August 2003 (thus assuming it's DD/MM/RR format)
or
8th July 2003 (thus assuming it's MM/DD/RR format)
or
3rd August 2007 (thus assuming it's RR/MM/DD format)
or
8th March 2007 (thus assuming it's RR/DD/MM format)
or even more obscurely...
3rd July 2008 (MM/RR/DD)
or
7th March 2008 (DD/RR/MM)
Do you have any information to tell you what formats are valid that would allow you to be specific and know what date format is meant?
This is a classic example of why dates should be stored on the database using DATE datatype and not VARCHAR2. It can lead to corruption of data, especially if the date can be entered in any format a user wishes. -
How to handle different message types of EDIFACT in single input file.
Hi All,
Currently we have a requirement like we will be receiving the input with different messages in the same input file (eg: ORDERS and ORDRSP in the same file).
We have configured both the message types in the document definitions. One more thing is the versions of the messages are different.
When we pass the input we are getting the error.
The input looks like below,
UNB
UNG
UNH*ORDERS
UNT
UNE
UNG
UNH*ORDRSP
UNT
UNE
UNZ
Please assist us to overcome the error.
Thanks,
Ravindra.Hi Prasanna,
Thanks for your reply.
I have created the agreements for both the messages still i'm getting the below error,
B2B-50037
B2B inbound message processing error
If i give the input as separate messages (i mean 2 input files). Its working fine.
Also let me know is there any configuration settings to handle multiple messages in a single input file.
Thanks,
Ravindra. -
How to handle different date formats ?
I'm currently writing an application that has to be compatible with different database backends.
But I have some problems with the date/time fields when using Oracle as a db backend:
After searching the forums, I found a solution for my "inserts" problem:
// This is needed because otherwise the db session will be reset with each jdbc call,
// ending the session and nullifying the ALTER SESSION command
con.setAutoCommit( false );
// set the date/time format to what we want it to be
result = stmt.executeQuery("ALTER SESSION SET NLS_DATE_FORMAT = 'dd/mm/yyyy hh24:mi:ss'");
res = stmt.executeUpdate(query);
Where query is something like "INSERT INTO DATE_TEST VALUES ('val1',"val2','val3','25/03/2004 15:59:44');
But when I want to retrieve this data, the timestamp is returned in another format:
result = stmt.executeQuery("SELECT * FROM DATE_TEST");
This gives me "2004-03-25 15:59:44.0" for the timestamp !
when I run exactly the same query in the Oracle SQL*Plus console, I get the correct format:
SQL> SELECT * FROM DATE_TEST;
VAL1 VAL2 VAL3 TIME
val1 val2 val3 25/03/2004 15:59:44
SQL>
I already tried the trick with the NLS_DATE_FORMAT before retrieving the data, but that doesn't seem to do anything.
Any ideas how I can manipulate the format of a DATE field for retrieval ?
Note:
This is what I use:
- Oracle 9i, Release 2 (9.2.0.1.0) for Windows (on windows 2000 Server)
- ojdbc14.jar (Oracle thin jdbc driver)
- j2sdk 1.4.2-04 for my application (currently running on windows server 2003 Enterprise, but is also tested on windows 2000, xp, linux, solaris)well, in fact I wrote a "dbAdapter" which I use to let my application communicate with a database.
the method I use to retrieve data from the db just reads the resultset row by row, adding each row to a
vector.
each row is represented by a hashtable (colname - colvalue pairs).
Vector result = dbadapter.queryDB("SELECT * FROM DATE_TEST");
the method "query" looks like this:
public Vector queryDB(String query) {
Connection con = null;
ResultSet result = null;
ResultSetMetaData metadata = null;
Vector tableData = new Vector();
Statement stmt = null;
try { // Attempt to load the JDBC driver with newInstance
Class.forName(sDriver).newInstance();
catch (Exception e) { // error
logger.error(logPrefix + "Failed to load current driver.");
if (psStackTrace != null)
e.printStackTrace(psStackTrace);
return tableData;
} // end catch
try {
con = DriverManager.getConnection(sURL, sUsername, sPassword);
// stmt = con.createStatement(); // MySQL
stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); // TODO-ORACLE
catch (Exception e) {
logger.error(logPrefix + "problems connecting to " + sURL + ":" + e.getMessage());
if (psStackTrace != null)
e.printStackTrace(psStackTrace);
if (con != null) {
try {
con.close();
catch (Exception e2) {
return tableData;
} // end catch
// execute SQL commands
try {
result = stmt.executeQuery(query);
// first display some metadata
metadata = result.getMetaData();
int numcols = metadata.getColumnCount(); // How many columns?
result.last(); // Move to last row
int numrows = result.getRow();
Hashtable rowData = new Hashtable();
String colValue = "", colName = "";
Object o = null;
for (int a = 0; a < numrows; a++) {
result.absolute(a + 1); // go to row a in resultset
for (byte b = 0; b < numcols; b++) {
o = result.getObject(b + 1);
colName = metadata.getColumnName(b + 1);
if (o == null) {
colValue = "";
else {
colValue = o.toString();
rowData.put(colName, colValue);
tableData.add(rowData.clone());
rowData.clear();
// return result
return tableData;
catch (Exception e) {
logger.error(logPrefix + "problem with SQL sent to " + sURL + ":" + e.getMessage());
logger.debug(logPrefix + "sql: " + query);
if (psStackTrace != null)
e.printStackTrace(psStackTrace);
finally {
try {
stmt.close();
catch (Exception e) {
try {
con.close();
catch (Exception e) {
} // end finally clause
return tableData;
then I display the data using this code (output goes to a logfile):
for (int i = 0; i < result.size(); i++) {
Hashtable tmpResultTable = (Hashtable) result.elementAt(i);
Enumeration enum = tmpResultTable.keys();
while(enum.hasMoreElements()) {
String tmpKey = (String) enum.nextElement();
String tmpValue = (String) tmpResultTable.get(tmpKey);
logger.debug(logPrefix + "\t- " + tmpKey + "=" + tmpValue);
It is correct indeed that I want to keep it as vendor neutral as possible, because other databases will
be added in the (near) future (such as IBM's DB2)
I already thought about formatting it using the SimpleDateFormat class, but then I have to rewrite most
of the code in my dbAdapter, because it doesn't know anything about the field types.
It just launches standard SQL queries and returns the result back to the requesting object -
How to handle duplicate messages in J2SE File scenario
Hi,
Is there any way to handle processing of duplicate messages in J2SE File adapter scenario?
Here is the scenario ,
Steps :
1. Engine picks up a message and checks the size of it.
2. Before reaching the checking interval , the adapter(file) was terminated unfortunately.
3. J2SE engine was restarted.
4. Previous file was again picked up and sent as the first time with one msgID.
5. After sometime, same file was picked up with a new msgID
6. System gets only ONE configrmation that file has been successfully transfered.
So we find two messages containing the same file.
I have checked in J2SE doc, there is a parameter called "db.exactlyOnceErrorInPendingState" which is related to DB.
Is there any similar parameter to handle the duplicate messages in FIle Adapter scenarios of J2SE Engine.
Please help me in this regard as it seems to be a new thing in J2SE AE.
Regards,
Soorya.Hi swarup,
But using OS command how can we rename /archive that file?
Module means any Custom Module or wat?
Following are the channel configurations used in File To File scenario.
File Sender :
version=30
mode=XMB2FILE
XI.httpPort=58201
XI.httpService=/test
XI.ReceiverAdapterForService=test_rcv
file.numberOfMessageTypes=1
XI.Interface=MI_test_out
XI.InterfaceNamespace=http://nestle.com/test
file.type=BIN
file.targetDir=/test_inb
file.targetFilename=unusedbutreq
file.writeMode=fromHeader.ext
file.createDir=0
file.nestleName=initial
file.writeMode=fromHeader.ext
file.nestleEXT=test
file.nestleFileOverwrite=False
File Receiver :
version=30
mode=FILE2XMB
XI.TargetURL=http://localhost:58201/test
XI.NestleTargetURL=http://localhost:58201/test
file.type=BIN
file.checkFileModificationInterval=300000
file.pollInterval=300
file.processingMode=archiveWithTimestamp
file.archiveDir=/test_out/arc
XI.QualityOfService=EO
file.numberOfMessageTypes=1
file.messageAttributes=name
XI.SenderService=test_snd
XI.Interface=MI_test_out
XI.InterfaceNamespace=http://nestle.com/test
XI.ReceiverService=test_rcv
file.nestleBadMsgDir=/test_out/bad
file.sourceDir=/test_out
file.sourceFilename=.
Do the needful help asap.
Regards,
Prakash. -
How to handle EndDialog message when using Asynchronous Trigger Pattern?
I have Service A which sends a message to Service B when a update/delete/insert trigger fires. Service B dequeing logic looks like:
declare @messagebody xml
declare @messagetype nvarchar(256)
declare @cg uniqueidentifier
declare @ch uniqueidentifier
DECLARE @messages TABLE(messagetype nvarchar(256),messagebody xml)
begin try
begin transaction;
waitfor
receive top (1)
@cg = conversation_group_id,
@ch = conversation_handle,
@messagetype = message_type_name,
@messagebody = cast(message_body as xml)
from MyPolicyQueue
),TIMEOUT @receiveTimeoutMs
if @messagebody is not null
begin
insert into @messages values (@messagetype, @messagebody)
end
select * from @messages
end conversation @ch
commit
end try
ServiceB will end the conversation but afterwards, the queue now has an EndDialog message that never gets processed.
The intent is asynchronous handling of update messages with the trigger used as the event source. Service B closes the conversation but trigger does not (It would probably be a very bad thing if trigger blocked waiting for EndDialog message response).
How do you handle the EndDialog message in this scenario?
The code is based on this example.
scottA common practice is to create an activated proc on the initiator queue to close the conversation loop after the target service does it's job. This activated proc simply ends the conversation upon receipt of an EndDialog message type. If
an unexpected message type is received (including Error), the proc can end the conversation with error and perhaps log the details to a table that can be monitored for exceptions.
See Rusanu's artice for a description of this pattern:
http://rusanu.com/2006/04/06/fire-and-forget-good-for-the-military-but-not-for-service-broker-conversations/
Dan Guzman, SQL Server MVP, http://www.dbdelta.com -
How to handle warning message for the fields in tab merging , PERSONAS 2.0
Hi all,
Please advice me on the below issue.
In a transaction VA32 , I have merged the fields from one tab to another tab using tab caching.
when i try to change the value of a merged fields , it throws the warnings message. So it is continuously looping from one tab to another tab.
So i tried to use the additional editor concepts in tab caching as below.
Looping is stopped and throws warning message in the same tab.
All the changes are saved successfully only when the enter button is clicked once in the main screen, else the changes are not saved and my previous value remains.
Anybody have an idea on how we can use Additional actions in Tab caching concepts.
Thank you,
ArunHi Kranthi,
When i try to save the fields which i merged from different tab is not saving.
Please find the below details.
Green highlighted fields are custom fields which is merged from different screen like header or item overview screen. This is handled in script button.
Red highlighted fields are merged from different tab like shipping or sales using tab caching concept.
While changing the value of the fields which is merged from different tab , and press ENTER then it throws the Warning message if occurs.
After warning message, if i try to save using the script button for copying all the custom fields which is merged from different screen , pasted it to their respective screens and also saved.
Its working fine.
When i try to save it before pressing ENTER button then the respective changes had made in the merged fields from different tab are not reflected.
How we can handle this issue?
Thank you,
Arun
Maybe you are looking for
-
How to get rid of the loading status at the bottom
The loading status is like how it is in chrome now. I absolutely hate that. I use the addon bar, so why can't i put it back into the addon bar. Its just additional stuff i dont need. I would also like it to be where if you hover over a link you can s
-
Start Routine: Syntax error in routine 2LIS_03_BF Transformations
Hi experts, I enhanced the 2lis_03_bf data source, and replicated the data source in bw system, i have mapped the transformations and when i try to activate the transformations it is giving the below error. Start Routine: Syntax error in routine when
-
I'm looking for a good HDMI to component converter,
I decided to get a 2nd Apple TV for our basement room where we have an older TV with no HDMI input. I bought a cheaper HDMI to component converter but whenI hooked it up to the TV, I just got some weird green images and after triple checking all the
-
Drill down on posting date and Document number
Hello Gurus, In a Bex report, I am looking at account balance on a keydate for a G/L Account. When I drill down based on posting date I do not see any values for the keyfigure 'Account balance as on key-date'....But after I drill down on posting date
-
Image Placed into InDesign CS6 appears reversed/missing
I am using InDesign CS6 on Windows 7, 64-bit. I have worked in InDesign off and on for the past three years and have never experienced this problem before. I have always placed images into InDesign with no problem and now I have this *one* image that