Wrong value in message header on target system | "test" -- "production"
Hi all,
need some help with this.
When sending a message with RNIF Adapter to target system there's something wrong with the Message Header.
GlobalUsageCode has the value "test" but should say "production".
Any ideas where i can change that value on PI side ?
Cheers
Lars
may be u can change it in the mapping . it should be definitely possible using abap mapping
Similar Messages
-
BPM sending messages to wrong inbound interfaces in PI and target system
Hi All,
i am doing File to proxy scenarion using bpm.i am receiving three files,two files splitting on based condition(location code) in receiver determination and sending to bpm(here one bpm receiving 3 files then it merges 3 files into one proact and some promo messages based promos in source file ,same in the second bpm with 2 files with different mapping,here target system is SAP APO SNC).i am doing testing now mapping and every thing is working fine.but first bpm sending messages(proact and promo messages) target sytem side (proact_in and promo_in)inbound inrefaces.if i am executing scenario both bpm sending (proact and promo) messaegs in target system its showing wrong bpm name.in target system also we can check messgaes sxmb_moni.
ex:if first bpm A sending 1 proact and 2 promos,and second bpm B sending 1 proact and 2 promos to target system,but in target syetm its showing sender component as 1st bpm A for 3 promo messages(here B bpm messages sending with A bpm viceversa i did the configuration correctly) and for 1 its showing second bpm. please give me suggetions how to resolve this issue.
Thanks,
seshagiri.Is the connection to SNC via idocs or proxies. If it's via idocs can you check the control record and see if the issue is not there ?
-
Relay message when the target system is down.
Dear all,
I've got a question relating to the MII.
I have the following scenario where the system A sends data to the system B, using SAP MII.
My question is If the MII sends the message to system B, the target system, and the same is down, the MII can hold the message in a queue for later transmission itself or not.
Regards,
Sérgio SalomãSergio,
in 12.0 there are no out of the box buffering capabilities for Web Services. You may use the MII Queueing actions to queue the xml contents you want to sent. Schedule a job to read the queue entries and send them to the web service. If the call was successful, delete the queue entry, else leave it.
[MII Queue actions|http://help.sap.com/saphelp_xmii120/helpdata/en/46/726e818cf40ed5e10000000a155369/frameset.htm]
For SAP calls using JRA, you can switch on the buffering, as well as for MII queries. If a call fails, MII will buffer it. You can check the entries in MII Data Services > Data buffer entries. Scheduled jobs can resend the entries.
[MII Data buffering|http://help.sap.com/saphelp_xmii120/helpdata/en/45/515db282a33a16e10000000a1553f6/frameset.htm]
Hope this helps.
Michael -
Limiting weight values to be transferred to target system
Hi All,
I have a requirement according to which I need to reduce the number of digits being passed to IDOC segmnet fields Z1BP_J_1BNFDOC-BRGEW and Z1BP_J_1BNFDOC-NTGEW. This IDOC will transfer data to a non-SAP target system. In the target system, the gross weight & net weight (BRGEW & NTGEW respectively having total length 13 with 3 decimal places in SAP) have mask: 9999999.99999 (7 digits before decimal and 5 digits after decimal). So the total digits that should be transferred to the target system should not be more than 12.
The method to achieve this, as suggested by functional, was to divide the weight values by 1000 instead of directly truncating the values so that there is no loss of data. For example, if the value in weight field is 123,234,432.000 KG, then on dividing it by 1000, it will result in 123,234.432 KG, which is correct. But using this method, if the number of digits in the weight field is less than 4 digits, for example, 123.000 KG, then on dividing this value by 1000, it will result in 0.123 KG, which is incorrect. And to avoid such a situation, if I apply a condition that the weight values should be divided by 1000 only when the number of digits before the decimal is more than 3, then I am facing the following issue:
Say, there is one value 123,4.000 KG, then in this case since the number of digits is more than 3 before the decimal, it will be divided by 1000, so we get: 1.234 KG. Now, there is another value say, 123.000 KG, then since in this case the number of digits before the decimal is 3, it will not be divided by 1000, so it will remain the same, that is, 123.000 KG. But comparing the two values, initially: 123,4.000 KG > 123.000 KG; and after applying the above logic: 1.234 KG < 123.000 KG, which is again incorrect.
Please suggest an appropriate solution.
Thanks & Regards,
AnkitReverse logic can figured out if boundary conditions are taken care of.
For input conversion, you are doing something like:
if input > 1000.
output = input / 1000.
endif.
Reverse case can be:
if frac( output ) > 0.
input = output * 1000.
endif.
FRAC function strips the integer part and gives only the fraction part.
Both logic would fail for specific cases.
Imagine 123KG becoming 123.000 KG as it is less than 1000.
On the other hand, 123,000 KG would also become 123.000 KG because input is greater than 1000.
When last 3 digits are anything other than 000, both input and output logic would work fine.
Tell your functional about above scenario.
Your requirement sounds really weird.
For exception cases, think about this.
Technically variable can store negative, but logically negative input weight may never come.
Whenever input ends with 000, can you apply negative sign and change 000 to 001, so that both logic work. -
Sending additional values in message header
I need help regarding sending of messages. We wish to send following additional values in the message header :-
1) ApplIdentityData (Combination of user id and password)
2) ReplyToQ (Queue name on which receiver will send reply)
3) ReplyToQM (Queue manager name for the above queue)
I am trying to find the way of sending this additional values in the message header, but I am not able to find the correct methods in the JMS API (we are using JMS 1.1) for sending this additional values.
Thanks a lot in advance."Queue manager" isn't a standard JMS concept (it's a concept specific to the particular JMS provider you are using). So you will need to pass information like this in user--defined properties rather than in standard header properties.
Is there a way to set the Queue Manager name while sending the message or while creating the queue for sending message?You will need to consult the documentation for your particular JMS provider to find out how to do this.
Nigel -
Hi friends,
I make one header alv ok I want and take one variable count in my program so I want to display its value in ALV HEADER
Total Target Qty:
Total EMP. Efficiency
Total Machine Effi.
I take may header like this and pass thre text here.ok Now I want to display value of this three.
Total Trget Qty: 2.23 like that.
CLEAR st_line.
st_line-typ = 'S'.
CONCATENATE 'Total Target Qty: ' count ' ' INTO st_line-info.
APPEND st_line TO t_list_top_of_page.
So I took like this in header count is my variable in which I take value.
So how can we pass the value in ALV Header please tell me.
its urgent so.
Thnaks in Advance.
Prashant.HI DHWANI,
*& Report ZPP_RE_EMP_DETAILS
*& This Report is used to check the Employee Performance And Used Machine Quantity
*& Rqueirement By Santhosh
*& Developed By Prashant On Date 01.02.2008
*& Created By: Prashant Brahmbhatt
*& Creation Date: 20080201
*& Module: PP (Production & Plannig)
*& Changed By Changed Date Reason
REPORT zpp_re_emp_details.
TABLES:zpplan.
TYPE-POOLS:slis.
DATA:BEGIN OF itab OCCURS 0,
zdate LIKE zpplan-zdate,
werks LIKE zpplan-werks,
mname LIKE zpplan-mname,
shftin LIKE zpplan-shftin,
iserh LIKE zpplan-iserh,
quaty LIKE zpplan-quaty,
plan_qty LIKE zpplan-plan_qty,
act_prod LIKE zpplan-act_prod,
temp TYPE c,
tar_qty(10) TYPE c,
ach_qty(10) TYPE c,
mch_eff(10) TYPE c,
a(10) TYPE c,
END OF itab.
DATA:BEGIN OF temp OCCURS 0,
zdate LIKE zpplan-zdate,
werks LIKE zpplan-werks,
mname LIKE zpplan-mname,
shftin LIKE zpplan-shftin,
iserh LIKE zpplan-iserh,
quaty LIKE zpplan-quaty,
plan_qty LIKE zpplan-plan_qty,
act_prod LIKE zpplan-act_prod,
temp TYPE c,
tar_qty(10) TYPE c,
ach_qty(10) TYPE c,
mch_eff(10) TYPE c,
a(10) TYPE c,
END OF temp.
DATA:BEGIN OF itab_t OCCURS 0,
zdate LIKE zpplan-zdate,
werks LIKE zpplan-werks,
mname LIKE zpplan-mname,
shftin LIKE zpplan-shftin,
iserh LIKE zpplan-iserh,
quaty LIKE zpplan-quaty,
plan_qty LIKE zpplan-plan_qty,
act_prod LIKE zpplan-act_prod,
temp TYPE c,
tar_qty(10) TYPE c,
ach_qty(10) TYPE c,
mch_eff(10) TYPE c,
a(10) TYPE c,
END OF itab_t.
DATA:BEGIN OF itab1 OCCURS 0,
zdate LIKE zpplan-zdate,
werks LIKE zpplan-werks,
mname LIKE zpplan-mname,
shftin LIKE zpplan-shftin,
act_prod LIKE zpplan-act_prod,
quaty LIKE zpplan-quaty,
planned LIKE zpplan-planned,
iserh LIKE zpplan-iserh,
temp TYPE c,
tar_qty TYPE p DECIMALS 2,
ach_qty TYPE p DECIMALS 2,
mch_eff TYPE p DECIMALS 2,
END OF itab1.
DATA: wa LIKE itab1.
DATA:BEGIN OF itab2 OCCURS 0,
zdate LIKE zpplan-zdate,
werks LIKE zpplan-werks,
mname LIKE zpplan-mname,
shftin LIKE zpplan-shftin,
act_prod LIKE zpplan-act_prod,
quaty LIKE zpplan-quaty,
planned LIKE zpplan-planned,
iserh LIKE zpplan-iserh,
temp TYPE c,
tar_qty(10) TYPE p DECIMALS 2,
ach_qty(10) TYPE p DECIMALS 2,
mch_eff(10) TYPE p DECIMALS 2,
count(10) TYPE c,
END OF itab2.
DATA: a(10) TYPE c,
b(10) TYPE c,
count(10) TYPE c,
count1(10) TYPE c.
c(2) TYPE p DECIMALS 2.
DATA:t_fcat TYPE slis_t_fieldcat_alv,
t_events TYPE slis_t_event,
t_list_top_of_page TYPE slis_t_listheader,
t_list_end_of_page TYPE slis_t_listheader.
CONSTANTS:c_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.
CONSTANTS:c_formname_end_of_page TYPE slis_formname VALUE 'END_OF_PAGE'.
DATA: st_line TYPE slis_listheader.
SELECTION-SCREEN
SELECTION-SCREEN:BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
*PARAMETERS:shftin LIKE zpplan-shftin.
SELECT-OPTIONS:date FOR zpplan-zdate,
shftin FOR zpplan-shftin,
werks FOR zpplan-werks.
SELECTION-SCREEN:END OF BLOCK blk1.
ALV CALL
INITIALIZATION.
PERFORM build_fieldcatalog USING t_fcat .
PERFORM event_call.
PERFORM head_built USING t_events.
START-OF-SELECTION.
PERFORM data_retrieval.
PERFORM display_alv.
*& Form build_fieldcatalog
text
-->P_T_FCAT text
FORM build_fieldcatalog USING temp_fcat TYPE slis_t_fieldcat_alv.
DATA:w_fcat TYPE slis_fieldcat_alv.
w_fcat-tabname = 'ITAB2'.
w_fcat-fieldname = 'MNAME'.
w_fcat-seltext_m = 'Machine Name'.
APPEND w_fcat TO temp_fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB2'.
w_fcat-fieldname = 'SHFTIN'.
w_fcat-seltext_m = 'Emp No'.
APPEND w_fcat TO temp_fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB2'.
w_fcat-fieldname = 'ZDATE'.
w_fcat-seltext_m = 'Pos Date'.
APPEND w_fcat TO temp_fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB2'.
w_fcat-fieldname = 'QUATY'.
w_fcat-seltext_m = 'Quantity'.
APPEND w_fcat TO temp_fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB2'.
w_fcat-fieldname = 'ACT_PROD'.
w_fcat-seltext_m = 'Actual Quantity'.
APPEND w_fcat TO temp_fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB2'.
w_fcat-fieldname = 'ISERH'.
w_fcat-seltext_m = 'Down Time'.
APPEND w_fcat TO temp_fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB2'.
w_fcat-fieldname = 'TAR_QTY'.
w_fcat-seltext_m = 'Target Qty.'.
APPEND w_fcat TO temp_fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB2'.
w_fcat-fieldname = 'ACH_QTY'.
w_fcat-seltext_m = 'EMP Effec.'.
APPEND w_fcat TO temp_fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB2'.
w_fcat-fieldname = 'MCH_EFF'.
w_fcat-seltext_m = 'Machine Effec.'.
APPEND w_fcat TO temp_fcat.
CLEAR w_fcat.
w_fcat-tabname = 'ITAB2'.
w_fcat-fieldname = 'COUNT'.
w_fcat-seltext_m = 'Machine Effec.'.
APPEND w_fcat TO temp_fcat.
CLEAR w_fcat.
ENDFORM. " build_fieldcatalog
*& Form event_call
text
--> p1 text
<-- p2 text
FORM event_call .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = t_events
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " event_call
*& Form data_retrieval
text
--> p1 text
<-- p2 text
FORM data_retrieval .
IF shftin <> ''.
SELECT zdate werks mname shftin INTO CORRESPONDING FIELDS OF TABLE
temp FROM zpplan
WHERE shftin IN shftin
AND zdate IN date
AND werks IN werks.
ELSE.
SELECT zdate werks mname INTO CORRESPONDING FIELDS OF TABLE
temp FROM zpplan
WHERE zdate IN date
AND werks IN werks.
ENDIF.
SORT temp BY mname zdate shftin.
DELETE ADJACENT DUPLICATES FROM temp.
SORT temp BY mname shftin zdate.
DELETE ADJACENT DUPLICATES FROM temp.
APPEND temp.
LOOP AT temp.
SELECT zdate werks mname shftin act_prod quaty iserh FROM zpplan INTO CORRESPONDING FIELDS OF TABLE itab_t
WHERE mname = temp-mname
AND zdate = temp-zdate
AND werks = temp-werks.
LOOP AT itab_t.
MOVE-CORRESPONDING itab_t TO itab.
APPEND itab.
ENDLOOP.
ENDLOOP.
*******************************************8
SELECT zdate werks mname shftin act_prod quaty iserh FROM zpplan INTO CORRESPONDING FIELDS OF TABLE itab
FOR ALL ENTRIES IN temp
WHERE zdate = temp-zdate AND
werks = temp-werks
AND mname = temp-mname.
SELECT zdate werks mname shftin act_prod quaty iserh FROM zpplan INTO CORRESPONDING FIELDS OF TABLE itab
WHERE zdate IN date AND
werks IN werks AND
shftin = shftin.
SORT itab BY mname zdate.
DELETE ADJACENT DUPLICATES FROM itab.
LOOP AT itab.
MOVE-CORRESPONDING itab TO itab1.
COLLECT itab1.
ENDLOOP.
LOOP AT itab1.
itab1-tar_qty = itab1-tar_qty + ( itab1-quaty / 3 ).
IF ( itab1-tar_qty NE 0 ).
itab1-ach_qty = ( itab1-ach_qty + itab1-act_prod / itab1-tar_qty ) * 100.
ELSE.
itab1-ach_qty = 0 * 100.
ENDIF.
itab1-mch_eff = ( ( 8 - itab1-iserh ) / 8 ) * 100.
MODIFY itab1 TRANSPORTING tar_qty ach_qty mch_eff.
ENDLOOP.
LOOP AT itab1.
READ TABLE itab1 INDEX 1 INTO wa.
IF itab1-mname = wa-mname.
itab1-zdate = wa-zdate.
itab2-shftin = itab1-shftin.
itab2-mname = itab1-mname.
itab2-zdate = itab1-zdate.
itab2-quaty = itab2-quaty + itab1-quaty.
itab2-act_prod = itab2-act_prod + itab1-act_prod.
itab2-iserh = itab2-iserh + itab1-iserh.
itab2-tar_qty = itab2-tar_qty + itab1-tar_qty.
itab2-ach_qty = itab2-ach_qty + itab1-ach_qty.
itab2-mch_eff = itab2-mch_eff + itab1-mch_eff.
ELSE.
APPEND itab2.
CLEAR itab2.
MOVE-CORRESPONDING itab1 TO wa.
itab2-shftin = itab1-shftin.
itab2-mname = itab1-mname.
itab2-zdate = itab1-zdate.
itab2-quaty = itab2-quaty + itab1-quaty.
itab2-act_prod = itab2-act_prod + itab1-act_prod.
itab2-iserh = itab2-iserh + itab1-iserh.
itab2-tar_qty = itab2-tar_qty + itab1-tar_qty.
itab2-ach_qty = itab2-ach_qty + itab1-ach_qty.
itab2-mch_eff = itab2-mch_eff + itab1-mch_eff.
ENDIF.
ENDLOOP.
APPEND itab2.
LOOP AT itab2.
IF ( itab2-tar_qty NE 0 ).
itab2-ach_qty = ( itab2-ach_qty + itab2-act_prod / itab2-tar_qty(10) ) * 100.
ELSE.
itab2-ach_qty = 0 * 100.
ENDIF.
itab2-mch_eff = ( ( 8 - itab2-iserh ) / 8 ) * 100.
MODIFY itab2 TRANSPORTING tar_qty ach_qty mch_eff.
ENDLOOP.
APPEND itab2.
LOOP AT itab2.
count = sy-tfill.
a = a + itab2-tar_qty.
b = b + itab2-ach_qty.
ENDLOOP.
CLEAR itab2.
itab2-tar_qty = a.
itab2-ach_qty = b.
APPEND itab2.
CLEAR itab2.
count = a / sy-tfill.
count1 = b / sy-tfill.
itab2-tar_qty = count.
itab2-ach_qty = count1.
itab2-tar_qty = count.
APPEND itab2.
ENDFORM. " data_retrieval
*& Form head_built
text
-->P_T_EVE text
FORM head_built USING p_t_eve TYPE slis_t_event.
count = a / sy-tfill.
DATA: ls_event TYPE slis_alv_event.
REFRESH t_list_top_of_page.
READ TABLE p_t_eve WITH KEY name = slis_ev_top_of_page INTO ls_event.
IF sy-subrc = 0.
MOVE c_formname_top_of_page TO ls_event-form.
MODIFY p_t_eve FROM ls_event INDEX sy-tabix.
ENDIF.
CLEAR st_line.
st_line-typ = 'S'.
st_line-key = 'Total Target Qty: '.
st_line-info = count.
APPEND st_line TO t_list_top_of_page.
CLEAR st_line.
st_line-typ = 'S'.
st_line-info = count.
CONCATENATE 'Avg Target Qty.' count ' ' INTO st_line-info.
APPEND st_line TO t_list_top_of_page.
CLEAR st_line.
st_line-typ = 'S'.
st_line-key = 'Avg.EMP Efficiency: '.
st_line-info = count1.
APPEND st_line TO t_list_top_of_page.
CLEAR st_line.
st_line-typ = 'S'.
st_line-key = 'Avg. Machine Efficincy: '.
st_line-info = count.
APPEND st_line TO t_list_top_of_page.
REFRESH t_list_end_of_page.
READ TABLE p_t_eve WITH KEY name = slis_ev_end_of_list INTO ls_event.
IF sy-subrc = 0.
MOVE c_formname_end_of_page TO ls_event-form.
MODIFY p_t_eve FROM ls_event INDEX sy-tabix.
ENDIF.
CLEAR st_line.
st_line-typ = 'S'.
CONCATENATE 'END OF PAGE' ' ' INTO st_line-info.
APPEND st_line TO t_list_end_of_page.
ENDFORM. " head_built
*& Form top-of-page
text
FORM top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = t_list_top_of_page
I_LOGO =
I_END_OF_LIST_GRID =
I_ALV_FORM =
ENDFORM. "top-of-page
*& Form display_alv
text
--> p1 text
<-- p2 text
FORM display_alv .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
i_callback_program = 'ZPP_RE_EMP_DETAILS'
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
i_background_id = 'ALV_BACKGROUND'
i_grid_title = 'EMP Information'
I_GRID_SETTINGS =
IS_LAYOUT =
it_fieldcat = t_fcat
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
it_events = t_events
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = itab2
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " display_alv -
SAP Idocs -How to handle response from target system
Hi,
I am working on a scenario in which I will send Idocs asynchronously from SAP thro a SOAP adapter to a webservice deployed on the target system.
After the Idoc data is posted in the target system,the target system will send the acknowledgement for the receipt(basically response message).How to handle this scenario?
SAP Idoc( outbound asynchronous)---> SAP XI3.0(soap adapter) ---> Target system(inbound synchronous)
Do I need to go for BPM to handle this situation?
Is there any alterantive to BPM.
If any of the forum members who have worked on the similar scenario could help me in finding a better solution,I will be thankful to them.
Thanks,
LeoHi Udo,
Thanks for the info.My scenario is like this.
SAP R/3 Idoc -> SAP XI 3.0 <-> Webservice in the target system.
The webservice in the target system will receive the Idoc as a request messsage and send a response message synchronously.
Since Idoc is sent asynchronously( I believe Idocs sent from SAP are always asynchronous),there is no Proxy waiting in SAP R/3 to receive the response message from the target system.
If I go for BPM for the above scenario,will the BPM steps look like the following.
1)Receive Idoc from SAP.
2)Send Idoc sysnchronously to webservice
3)Receive the response from the webservice synchronously.
4.Post the response message to a proxy which can handle it further in SAP R/3.
Please note that my knowledge in BPM is limited and correct me if I am wrong.
Thanks in advance
S.Banukumar -
What to do if the target system is down for async scenario
Hi All,
What all recovery options we have in XI if the target system is down for very long time
in async scenario ??
-> Can we configure any alerts which will send mails with the failed message details if the
target system is dowm for very long time.
If this is possible, will there be any links in that mail which will allow the
alert mail receiver to 'resend' the failed message once the target system is up ?
We are on nw2004s SP9.
Can anyone help.
Thanks in Advance
Regards,
ChemmanzCan we configure any alerts which will send mails with the failed message details if the target system is dowm for very long time.
Yes we can send Alters from XI . let clarify one thing here alters are triggred immedaitely when their any failure in Adapter or mapping or etc then immdeaitely it is sendt so theirt is no such things for this "details if the target system is dowm for very long time". it does not differencate it long or short.
If this is possible, will there be/can we configure any links in that mail which will allow the alert mail receiver to 'resend' the failed message once the target system is up ?
chekc the blog for alter step by step from Michal
/people/michal.krawczyk2/blog/2005/09/09/xi-alerts--step-by-step
you can confiure alters to send your outlook also then if he replis you get a reply.
Regards
Sreeram.G.Reddy -
Call RFC for Lookup from BPM. how to determin the correct target system
Hi
I have a scenario where i am sending a sync call to SAP R/3 to fetch some sata using the BPM.
The issue is I can have multiple SAP systems so to determin the SAP system for the correct lookup is necessary.
in the rec determination step of Config I can configure multiple receivers but this isthrowing an error saying the multiple receivers cannot be determined for sync step.
Any idea why is such an error occuring
Regards
NikhilNikhil,
Multiple Receivers cannot be configured for a Synchronous Interfaces. reason is that when you are sending the request message to the target systems, XI will recieve multiple responses for one request and this is aginst the concept of Synch Message Processing.
You will have to have an option of determining the receivers inside your BPM and using separate Send Steps for each of these.
Regards
Bhavesh -
Resending of Messages to One Target Adapter / Application
Hi,
Have any of you ever attempted this?
Given that you have successfully created, and published a message to your outbound adapter, and the Oracle Integration guarentees delivery of the message to the target system(s), I would like the ability to "Resend" (re-publish) the message to a specific target system in the event that that target system goes belly-up and we need to re-synch data.
Because our original outbound messages are CBR'ed to more than one system, I need to have the ability (when I resend the message) to target that message to only one of these systems.
My outbound adapter is the Oracle DB Adapter.
Any suggestions on how I can do this?
Cheers
YanHi Ian,
Resending was initially one of the prerequisites of the product. But the way we configured it in IC 9.0.2 didn't work as expected. We used a setup called messagewarehouse; copy all published messages to an Andvanced Queue.
The problem is that republishing the message uses the original CBR-options. And most of the republish events are used for a specific subscriber.
This method is now stopped
A new option that we will test after our migration to 10g is to setup a retentention per queue. Every Queue should be able to hold messages for a given time. It probably will affect performance.
We need to investigate this too. Hopefully others can give us comments about this option.
regards,
Ton -
Message Header value is not written to DynamicConfiguration
Hi Forum,
I have a scenario on a PI 7.11 SP06, where a SOAP message is sent via HTTP to a SAP WAS Java.
The response contains in header a parameter"set-cookie" which has to be written in dynamic configuration.
For example: Set-Cookie: JSESSIONID=DF4D3F35636D8E3549490B678SAP9403229; Path=/
Therefore, i use SOAP adapter with axis extension, but the "set-cookie" content is not written to dynamicconfiguration.
Here is my axis adapter configuration. Do you see something wrong here?
**Processing Sequence**
1 AF_Adapters/axis/AFAdapterBean afreq
2 AF_Adapters/axis/HandlerBean xireq----------------------O/B Handler
3 AF_Adapters/axis/HandlerBean trp--------------------------- HTTPSender
4 AF_Adapters/axis/HandlerBean dcres----------------------This is for Dynamic Configuration (read)
5 AF_Adapters/axis/HandlerBean xires------------------------O/BHandler
6 AF_Adapters/axis/AFAdapterBean afres
**Module Configuration**
dcres handler.type java:com.sap.aii.axis.xi.XI30DynamicConfigurationHandler
dcres key.1 read http://sap.com/xi/XI/System/HTTP SetCookie
dcres location.1 header
dcres value.1 set-cookie
trp handler.type java:com.sap.aii.adapter.axis.ra.transport.http.HTTPSender
trp module.pivot true
xireq handler.type java:com.sap.aii.axis.xi.XI30OutboundHandler
xires handler.type java:com.sap.aii.axis.xi.XI30OutboundHandler
I followed the [How To Guide|http://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/b092777b-ee47-2a10-17b3-c5f59380957f] which is unfortunately for 7.0.
Also i tried with "set-cookie" and "Set-Cookie" without success. I have written a small java test which is accessing
this service and I can see parameter "set-cookie" in the header. So with small letters should be okay.
I have also read this very similar [sdn thread|DynamicConfiguration to Message Header;.
Tests with writing constants to dynamicconfiguration works without any problem.
I'm not sure if i have the correct handler classes. Is there any documentation about the handlers?
Any help is very appreciated.
Thanks in forward and best regards,
SigiHi all,
thanks for response.
I'm aware of these functions so I tried the test to create a dummy entry in header and read it from there.
So first i used which wrote constant to ASMA
dcres1 key.1 insert http://sap.com/xi/XI/System/HTTP dummy
dcres1 value.1 12345
Then I used write to move that constant from ASMA to header
dcres2 key.1 write http://sap.com/xi/XI/System/HTTP dummy
dcres2 location.1 header
dcres2 value.1 dummy
Finally i used read on that dummy value, creating a new entry in ASMA based upon that dummy entry
dcres3 key.1 read http://sap.com/xi/XI/System/HTTP SetCookie
dcres3 location.1 header
dcres3 value.1 dummy
So the "read" entry is correct in my origin settings. So now I know that the "set-cookie" header parameter from Java WAS response is not passed through SOAP Axis adapter.
Does anybody know if there are settings which have to be changed in system? Or is that a design as usual, that the set-cookie parameter is not passed to SOAP AXIS HTTP-header params?
Thanks in forward and best regards,
Sigi
Edited by: Siegfried Ertl on Apr 13, 2011 3:06 PM -
Hi all,
Please refer to the error:
Root Components import: FAILURE
[2015-04-10 17:04:48.126] Process: w3wp |Organization:0937f109-45df-e411-80cf-0050560100db |Thread: 43 |Category: Exception |User: ac011cf7-ad36-405b-91cf-2155ca15efb1 |Level: Error |ReqId: d3924c06-ad4b-4d5e-a204-70f8170016e1 | CrmException..ctor
ilOffset = 0x30
at CrmException..ctor(String formattedErrorMessage, Int32 errorCode, Object[] arguments) ilOffset = 0x30
at ImportRootComponentsHandler.GetSolutionRootsCollection(Boolean throwIfMissing, Boolean skipRibbonCustomization) ilOffset = 0x209
at ImportRootComponentsHandler.ImportItem() ilOffset = 0x8
at ImportHandler.Import() ilOffset = 0x43
at RootImportHandler.ImportAndUpdateProgress(ImportHandler ih) ilOffset = 0x7
at RootImportHandler.HandleNonMetadataHandlers(String[] ImportEntities, ImportHandler& ihForCurrentPath) ilOffset = 0x33
at RootImportHandler.RunImport(String[] ImportEntities) ilOffset = 0x1D8
at ImportXml.RunImport(String[] ImportEntities) ilOffset = 0xE
at ImportXml.RunImport() ilOffset = 0x5BF
at ImportXmlService.ImportSolutionSkipCapable(Boolean overwriteUnmanagedCustomizations, Boolean publishWorkflows, Byte[] customizationFile, Guid importJobId, Boolean convertToManaged, Boolean skipProductUpdateDependencies,
ExecutionContext context) ilOffset = 0x46
at RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) ilOffset = 0xFFFFFFFF
at RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) ilOffset = 0x25
at RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) ilOffset = 0xCF
at LogicalMethodInfo.Invoke(Object target, Object[] values) ilOffset = 0x4F
at InternalOperationPlugin.Execute(IServiceProvider serviceProvider) ilOffset = 0x57
at V5PluginProxyStep.ExecuteInternal(PipelineExecutionContext context) ilOffset = 0x200
at VersionedPluginProxyStepBase.Execute(PipelineExecutionContext context) ilOffset = 0x65
at Pipeline.Execute(PipelineExecutionContext context) ilOffset = 0x65
at MessageProcessor.Execute(PipelineExecutionContext context) ilOffset = 0x1C5
at InternalMessageDispatcher.Execute(PipelineExecutionContext context) ilOffset = 0xE4
at ExternalMessageDispatcher.ExecuteInternal(IInProcessOrganizationServiceFactory serviceFactory, IPlatformMessageDispatcherFactory dispatcherFactory, String messageName, String requestName, Int32 primaryObjectTypeCode,
Int32 secondaryObjectTypeCode, ParameterCollection fields, CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId, Guid transactionContextId, Int32 invocationSource, Nullable`1 requestId, Version endpointVersion)
ilOffset = 0x16E
at OrganizationSdkServiceInternal.ExecuteRequest(OrganizationRequest request, CorrelationToken correlationToken, CallerOriginToken callerOriginToken, WebServiceType serviceType, UserAuth userAuth, Guid targetUserId,
OrganizationContext context, Boolean returnResponse, Boolean checkAdminMode) ilOffset = 0x1F1
at OrganizationSdkServiceInternal.ExecuteRequest(OrganizationRequest request, CorrelationToken correlationToken, CallerOriginToken callerOriginToken, WebServiceType serviceType, Boolean checkAdminMode) ilOffset
= 0x2D
at OrganizationSdkServiceInternal.Execute(OrganizationRequest request, CorrelationToken correlationToken, CallerOriginToken callerOriginToken, WebServiceType serviceType, Boolean checkAdminMode) ilOffset = 0x26
at InprocessServiceProxy.ExecuteCore(OrganizationRequest request) ilOffset = 0x34
at PlatformCommand.XrmExecuteInternal() ilOffset = 0xF6
at ImportSolutionCommand.Execute() ilOffset = 0x20
at DataSource.ImportSolution(Byte[] customizationFile, Boolean overwriteUnmanagedCustomizations, Boolean publishWorkflows, Guid importJobId, Boolean convertToManaged, Boolean skipProductUpdateDependencies, IOrganizationContext
context) ilOffset = 0x0
at SolutionImportProcessPage.ImportSolution() ilOffset = 0x123
at SolutionImportProcessPage.ProcessRequestData() ilOffset = 0x4A
at SolutionImportProcessPage.ProcessAction(String action) ilOffset = 0x92
at AppUIPage.OnPreRender(EventArgs e) ilOffset = 0xD
at Control.PreRenderRecursiveInternal() ilOffset = 0x54
at Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) ilOffset = 0x6D3
at Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) ilOffset = 0x3C
at Page.ProcessRequest() ilOffset = 0x14
at Page.ProcessRequest(HttpContext context) ilOffset = 0x33
at CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() ilOffset = 0x18D
at HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) ilOffset = 0x15
at ApplicationStepManager.ResumeSteps(Exception error) ilOffset = 0x10A
at HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) ilOffset = 0x5C
at HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) ilOffset = 0x16A
at ISAPIRuntime.ProcessRequest(IntPtr ecb, Int32 iWRType) ilOffset = 0x4B
>Crm Exception: Message: Cannot add a Root Component 0ffbcde4-61c1-4355-aa89-aa1d7b2b8792 of type 29 because it is not in the target system., ErrorCode: -2147188705
[2015-04-10 17:04:48.126] Process: w3wp |Organization:0937f109-45df-e411-80cf-0050560100db |Thread: 43 |Category: Platform.Sql |User: ac011cf7-ad36-405b-91cf-2155ca15efb1 |Level: Info |ReqId: d3924c06-ad4b-4d5e-a204-70f8170016e1 | BusinessProcessObject.ExecuteNonQuery
ilOffset = 0x28
I am getting this coming up in the error log when I attempt to import an unmanaged solution.
After searching on google Type 29 refers to a workflow.
I go into the source system and query the database by the GUID and discover that it is actually a Business Process Flow called 'Phone to Case Process'.
I do not have this process in my target system as I deleted it.
Looks like this is one of the out of the box ones. I don't think we we have changed this one much.
What does this mean and what should I be looking for??
Anyway how do I remove this offending process from the unmanaged solution xml file and attempt to re-import it?
It doesn't look like I can generate the solution again without the offending workflow/process..I managed to resolve this issue after looking at this thread:
https://social.microsoft.com/Forums/en-US/fddff17f-1cca-4d33-a666-60c08ad76b0c/crm-2011-import-failure?forum=crmdevelopment
Just modify both solution and customizations xml by searching for the guid and removing the root component -
Access current system or target system ID in message mapping
Hi.
I have a requirement to map three different constant values to Sales Org field, depending on whether the system is D, Q or Prod.
This needs to be done in the message mapping section of the Interface along with all the other mapping logic.
Is there any way how we can access the current system ID or the Target system ID (XI is communicating with target, in this case, ECC, using RFC receiver Communication channel)?
Please help.
Thanks.
Anuradha.Hi,
The key element would be :-
System.getProperty("SAPSYSTEMNAME");
Use this in UDF to get System Name ... and then on basis of systemname do whatever you want to perform.
Regards
Prabhat Sharma -
Get the target system time in the message mapping
Hi there,
I need to use the system time of target R/3 system in the message mapping. Any ideas how can I handle this?
Thanks,
Igor.Thanks for your quick replies.
XI and R/3 system is in the same timezone but this is not relevant. I know it might sound strange but there is a reason I need to use time in the message mapping which is 2 minutes later than in the target system:
e.g. target system time: 16:58:32 I need to use 16:56:32 value in the mapping.
I found RFC MSS_GET_SY_DATE_TIME which can proide me with the value, just wondering if there is no other way how to do that other than RFC lookup ...
Thanks,
Igor -
InfoCube Error Message: Choose a change request with target system BWQ
Hi experts,
I have a problem when I want to edit an InfoCube created by other developer. The error message received is as follow:
"<b>Choose a change request with target system BWQ</b>".
When I click on the Documentation (F9) button, the detailed message is:
"Message no. TK511
Diagnosis
The selected change request BWDK901086 has target system .
However, the objects you edit can only be recorded in change requests with the target system BWQ.
The correct target system is determined from the package and transport layer to which the object concerned belongs.
System response
The selected change request BWDK901086 is not used to record the objects.
Procedure
Either choose a different change request or change the target system of the change request BWDK901086.
From the prompt window for change requests, you can display all requests you can use by choosing Own requests.
Alternatively, you can create a new request by choosing Create request.
For more information, see the SAP Library under BC - Basis Components -> Change and Transport System ."
Can someone helps me to solve this problem?
Thanks!hi Fullham,
try se09/10 and find request BWDK901086 (use binocular icon) or se03. then double click that request, go to tab 'properties', hope you will see 'Target System' system there, click 'edit'/pencil icon and change it to BWQ.
you may need to change the owner (which may not authorized), ask basis help if necessary.
hope this helps
Maybe you are looking for
-
Time to upgrade or still life left?
So I'm trying to decide whether upgrade an older laptop that my parents still use or just buy a newer model. It's a 2nd generation Macbook Pro: 2.2Ghz Core 2 Duo 2GB RAM NVIDIA Geforce 8600M GT 128MB It's running Mountain Lion right now, and for the
-
BAPI_REQUISITION_CREATE with automatic ticking of Goods Receipt Indicator
Hi, We're experiencing a problem with BAPI_REQUISITION_CREATE. We use this BAPI in our Purchase Requisition (PR) upload program. After successful run of the program it generates a PR number. When we try to look at the PR using ME53N, the default valu
-
New G/L using an other Exchange Rate Type for Local ledger
In new G/L ledger we want to use for a Local ledger a different Exchange Rate Type then the standard M. This is for local reporting to the goverment Is this possible and yes where I can make this setting?
-
Some wire connection problem for SCB-68 usage in measuring voltage
I am using FPGA 7831R along with SCB-68 to measure some voltage from my monitor terminal from my motor. When I measure the voltage between the monotor output and GND using a multi-meter the measurement is very reasonable and it can be changed when mo
-
Dear Experts, I hope that everyone is fine and healthy. I am stuck with SAP EH&S problem and as SAP EHS consultant, I was hoping that we can share knowledge. . I was hoping that one of you guys can help me. I want to upload substance with open conte