OPENTEXT/Document Piepeline - RFC call
Hi everybody !
Does anyone knows which RFC enabled Function module is called by Opentext/IXOS Document pipeline server (version 9.7.1) in order to transfer data into SAP?
Current setup is using configured connection between SAP and Document pipeline in order to create work items and start workflows.
I'm trying to make another source to call the same RFC in order to keep as ultimate compatibility as possible.
Do you know the name of SAP FM called?
Thank you in advance
Hi,
f.m. normally used for the connection with OpenText are:
- BAPI_BARCODE_SENDLIST for barcode scenarios. OT Syntax Example via R3Insert:
NEWDOC
ATTRIBUTES R3BC|barcode|<barcode>|
DOCIDATTR R3BC|docid|%s|
- J_8AK_HANDLE_RFC_DATA/J_8ACO_CONNECTION_INSERT for ATTRIBUTE based communications (Package J6NG). OT Syntax Example via R3Insert:
NEWDOC
NEWINSERT
ATTRIBUTES <r3_table_name>|<column_name>|<type>|<value>|
ATTRIBUTES TOAV0|MANDT|CC|<value>|
ATTRIBUTES TOAV0|SAP_OBJECT|CC|<value>|
ATTRIBUTES TOAV0|AR_OBJECT|CC|<value>|
ATTRIBUTES TOAV0|OBJECT_ID|CC|<value>|
ATTRIBUTES TOAV0|ARCHIV_ID|CC|<value>|
ATTRIBUTES TOAV0|ARC_DOCID|CC|<value>|
DOCIDATTR <r3_table_name>|docid|1|%s|
ARCHIVIDATTR <r3_table_name>|archivid|1|%s|
ARCHDATEATTR <r3_table_name>|archdate|2|%s|
PAGEATTR <r3_table_name>|pages|1|%s|
You can easily find them by tracing the user of OpenText, usually CPIC via ST01.
Regards,
Antonio
Similar Messages
-
MII BLS Trasaction calling SAP RFC call - How to pass XML document as input parameter
Hi,
1. I am very new to the SAP and SAP xMII workbench.
I have a webpage with iGrid applet embedded on it. We have multiple rows in the iGrid applet that can be selected by user.
After selecting single or multiple grid rows user clicking a 'button' on the web page.
We are using iCommand applet (ExacuteQuery] to call the BLS transaction.
Using iCommand applet on the webpage we are passing parameters to BLS Transaction.
Would like to pass on the single/ multiple selected grid row values as a XML document to BLS Transaction variable which is an Input parameter for SAP RFC call.
I am using SAP JCo Session to make the RFC call.
Any pointers will be helpful.
2. Which is a best track in SAP training courses to get formal training.
Thanks,
SenthilHi Senthil,
What version of MII (or xMII) are you working with? There are some examples of this type of transaction in the wiki which you may want to download and take a look at.
Regards, Mike
SAP Customer Experience Group - CEG -
RFC call results in StORAGE_PARAM_WRONG_SET
I'm in trouble with a RFC call, the process is as following: SAP system A calls a report. This report selects FI documents via LDB SDF. After user selects one or more documents from the list I call a RFC to read the payroll posting results from system B. The call of the RFC takes place for each FI document separatly what means user selects e.g. 10 FI documents, so I have 10 RFC calls with one result list. After each RFC call I add the result table of the RFC to the output table within the report. Before calling the RFC I of course clear all relevant tables again and additionaly I also use the 'FREE' statement within the RFC to set free all the memory, so there is no data stored in internal tables. But when the user selects a great no. of FI documents to read the payroll postings sometimes the RFC cancels in system B telling me that the storage parameters were set wrong. Calling the RFC step by step by selecting the FI document in single mode from the list I don't receive this dump. Do you have an idea what to do to avoid the dump? One problem: I don't have access to system B to test there, I only can do testing in system A and therefore I have no possibility to debugg this.
This is the code of the RFC module:
FUNCTION y_rfc_read_payroll_postings.
*"*"Local interface:
*" IMPORTING
*" VALUE(I_AWKEY) TYPE AWKEY
*" VALUE(I_CHECKNO) TYPE XFELD
*" VALUE(I_TAX) TYPE XFELD
*" EXPORTING
*" VALUE(E_PPDHD) TYPE PPDHD
*" TABLES
*" T_PPDIT STRUCTURE PPDIT
*" T_PPOIX STRUCTURE PPOIX
*" T_PPDIX STRUCTURE PPDIX
*" T_PAYR STRUCTURE PAYR OPTIONAL
*" T_HRPAY STRUCTURE PC209 OPTIONAL
*" T_REGUTA STRUCTURE REGUTA OPTIONAL
*" T_VALUES STRUCTURE YSHR_RFC_PAYROLL_POSTING OPTIONAL
*" T_CSKA STRUCTURE CSKA
*" RETURN STRUCTURE BAPIRET2
* local data
TYPE-POOLS: pptgs.
TYPES: BEGIN OF type_helpval,
pernr TYPE p_pernr,
lgart TYPE lgart,
rel TYPE xfeld,
END OF type_helpval.
TYPES: BEGIN OF type_cluster,
pernr TYPE p_pernr,
seqno TYPE cdseq,
abrj TYPE pnppabrj,
abrp TYPE pnppabrp,
actual TYPE srtza,
betrg TYPE ppoix-betrg,
waers TYPE ppoix-waers,
END OF type_cluster.
DATA: BEGIN OF lt_ppoix_key OCCURS 0,
pernr LIKE ppoix-pernr,
seqno LIKE ppoix-seqno,
actsign LIKE ppoix-actsign,
runid LIKE ppoix-runid,
postnum LIKE ppoix-postnum,
END OF lt_ppoix_key.
FIELD-SYMBOLS: <payroll> TYPE yshr_rfc_payroll_posting.
DATA ht_ppoix TYPE TABLE OF ppoix.
DATA productive_runs LIKE hrpp_pernr_runtab OCCURS 0 WITH HEADER LINE.
DATA t_rgdir TYPE TABLE OF pc261.
DATA wa_rgdir TYPE pc261.
DATA t_helpval TYPE TABLE OF type_helpval.
DATA t_cluster TYPE TABLE OF type_cluster.
DATA wa_helpval TYPE type_helpval.
DATA wa_cluster TYPE type_cluster.
DATA h_molga TYPE molga.
DATA h_ltext TYPE t5utz-ltext.
DATA wa_t512w TYPE t512w.
DATA wa_return TYPE bapiret2.
DATA par1 TYPE syst-msgv1.
DATA par2 TYPE syst-msgv2.
DATA par3 TYPE syst-msgv3.
DATA wa_ppoix TYPE ppoix.
FIELD-SYMBOLS: <wa_ppdit> TYPE ppdit.
DATA wa_ppdix TYPE ppdix.
DATA result_tab_us TYPE payus_result.
DATA result_tab_in TYPE payin_result.
DATA t_bt TYPE hrpay99_bt.
DATA t_rt TYPE hrpay99_rt.
DATA wa_bt TYPE pc209.
DATA wa_rt TYPE pc207.
DATA h_time(6) TYPE c.
DATA t_inter TYPE TABLE OF pay99_international WITH HEADER LINE.
DATA t_tax TYPE hrpayus_tax.
DATA wa_tax TYPE pc22t.
DATA wa_payr TYPE payr.
DATA wa_reguta TYPE reguta.
DATA wa_payroll TYPE yshr_rfc_payroll_posting.
DATA t_ppopx TYPE TABLE OF ppopx.
DATA wa_ppopx TYPE ppopx.
DATA wa_t001 TYPE t001.
FREE: t_ppdit, t_ppoix, t_ppdix, t_payr, t_hrpay, t_reguta,
t_values, t_helpval, t_cluster, t_ppopx.
* read general information
SELECT SINGLE * FROM ppdhd INTO e_ppdhd WHERE
docnum EQ i_awkey.
CASE syst-subrc.
* everthing ok, continue
WHEN 0.
* get the company code and assign US flag
SELECT SINGLE * FROM t001 INTO wa_t001 WHERE
bukrs EQ e_ppdhd-bukrs.
* exit and set err. mess.
WHEN OTHERS.
CALL FUNCTION 'BALW_BAPIRETURN_GET2'
EXPORTING
type = 'E'
cl = 'HR3PRNA'
number = '704'
* PAR1 = ' '
* PAR2 = ' '
* PAR3 = ' '
* PAR4 = ' '
* LOG_NO = ' '
* LOG_MSG_NO = ' '
* PARAMETER = ' '
* ROW = 0
* FIELD = ' '
IMPORTING
return = wa_return
wa_return-field = 'PPDHD'.
APPEND wa_return TO return.
EXIT.
ENDCASE.
* read table PPDIT
SELECT * FROM ppdit INTO TABLE t_ppdit
FOR ALL ENTRIES IN t_cska
WHERE docnum = i_awkey AND
hkont = t_cska-kstar.
CASE syst-subrc.
* everthing ok, continue
WHEN 0.
* exit and set err. mess.
WHEN OTHERS.
par1 = 'PPDIT'.
par2 = 'document'.
par3 = i_awkey.
CALL FUNCTION 'BALW_BAPIRETURN_GET2'
EXPORTING
type = 'E'
cl = '5G'
number = '58'
par1 = par1
par2 = par2
par3 = par3
* PAR4 = ' '
* LOG_NO = ' '
* LOG_MSG_NO = ' '
* PARAMETER = ' '
* ROW = 0
* FIELD = ' '
IMPORTING
return = wa_return
wa_return-field = 'PPDIT'.
APPEND wa_return TO return.
EXIT.
ENDCASE.
* read table PPDIX
SELECT * FROM ppdix INTO TABLE t_ppdix
FOR ALL ENTRIES IN t_ppdit
WHERE evtyp EQ e_ppdhd-evtyp AND
runid EQ e_ppdhd-runid AND
docnum EQ e_ppdhd-docnum AND
doclin = t_ppdit-doclin.
CASE syst-subrc.
* everthing ok, continue
WHEN 0.
* exit and set err. mess.
WHEN OTHERS.
par1 = 'PPDIX'.
par2 = 'runid'.
par3 = e_ppdhd-runid.
CALL FUNCTION 'BALW_BAPIRETURN_GET2'
EXPORTING
type = 'E'
cl = '5G'
number = '58'
par1 = par1
par2 = par2
par3 = par3
* PAR4 = ' '
* LOG_NO = ' '
* LOG_MSG_NO = ' '
* PARAMETER = ' '
* ROW = 0
* FIELD = ' '
IMPORTING
return = wa_return
wa_return-field = 'PPDIX'.
APPEND wa_return TO return.
EXIT.
ENDCASE.
* read detail values on accounting level
SELECT * FROM ppoix INTO TABLE t_ppoix
FOR ALL ENTRIES IN t_ppdix WHERE
runid EQ t_ppdix-runid AND
tslin EQ t_ppdix-linum.
* read reposted documents from ppopx
SELECT * FROM ppopx INTO TABLE t_ppopx
FOR ALL ENTRIES IN t_ppdix WHERE
runid EQ t_ppdix-runid AND
tslin EQ t_ppdix-linum.
IF syst-subrc EQ 0.
* append corresponding lines to T_ppoix
LOOP AT t_ppopx INTO wa_ppopx.
MOVE-CORRESPONDING wa_ppopx TO productive_runs.
CLEAR productive_runs-runid.
COLLECT productive_runs.
ENDLOOP.
* get run table
CALL FUNCTION 'HR_EVAL_PROD_A_RUN_GET_TABLE'
TABLES
result_table = productive_runs.
LOOP AT productive_runs.
IF productive_runs-runid IS INITIAL.
DELETE productive_runs.
ENDIF.
ENDLOOP.
* fill ppoix-keys for needed ppoix
LOOP AT productive_runs.
LOOP AT t_ppopx INTO wa_ppopx.
IF wa_ppopx-pernr EQ productive_runs-pernr AND
wa_ppopx-seqno EQ productive_runs-seqno.
* built key
CLEAR lt_ppoix_key.
MOVE-CORRESPONDING productive_runs TO lt_ppoix_key.
lt_ppoix_key-postnum = wa_ppopx-postnum.
lt_ppoix_key-actsign = 'A'.
COLLECT lt_ppoix_key.
ENDIF.
ENDLOOP.
ENDLOOP.
* any values to append?
READ TABLE lt_ppoix_key INDEX 1.
IF syst-subrc EQ 0.
SELECT * FROM ppoix INTO TABLE ht_ppoix
FOR ALL ENTRIES IN lt_ppoix_key
WHERE pernr = lt_ppoix_key-pernr
AND seqno = lt_ppoix_key-seqno
AND actsign = 'A'
AND runid = lt_ppoix_key-runid
AND postnum = lt_ppoix_key-postnum.
IF syst-subrc EQ 0.
LOOP AT t_ppopx INTO wa_ppopx.
LOOP AT ht_ppoix INTO wa_ppoix WHERE
pernr EQ wa_ppopx-pernr AND
seqno EQ wa_ppopx-seqno AND
postnum EQ wa_ppopx-postnum.
MOVE-CORRESPONDING wa_ppopx TO wa_ppoix.
IF wa_ppoix-actsign <> 'A'.
wa_ppoix-betrg = - wa_ppoix-betrg.
wa_ppoix-anzhl = - wa_ppoix-anzhl.
ENDIF.
APPEND wa_ppoix TO t_ppoix.
DELETE ht_ppoix.
ENDLOOP.
ENDLOOP.
ENDIF.
ENDIF.
ENDIF.
* check for any entries in table T_PPOIX
READ TABLE t_ppoix INTO wa_ppoix INDEX 1.
CASE syst-subrc.
* everthing ok, continue
WHEN 0.
* exit and set err. mess.
WHEN OTHERS.
par1 = 'PPOIX'.
par2 = 'runid'.
par3 = e_ppdhd-runid.
CALL FUNCTION 'BALW_BAPIRETURN_GET2'
EXPORTING
type = 'E'
cl = '5G'
number = '58'
par1 = par1
par2 = par2
par3 = par3
* PAR4 = ' '
* LOG_NO = ' '
* LOG_MSG_NO = ' '
* PARAMETER = ' '
* ROW = 0
* FIELD = ' '
IMPORTING
return = wa_return
wa_return-field = 'PPOIX'.
APPEND wa_return TO return.
EXIT.
ENDCASE.
CHECK i_checkno EQ 'X' OR
i_tax EQ 'X'.
CLEAR t_values.
* read payroll results, determine values
LOOP AT t_ppdit ASSIGNING <wa_ppdit>.
LOOP AT t_ppdix INTO wa_ppdix WHERE
evtyp = e_ppdhd-evtyp AND
runid = e_ppdhd-runid AND
doclin = <wa_ppdit>-doclin.
LOOP AT t_ppoix INTO wa_ppoix WHERE
runid EQ e_ppdhd-runid AND
tslin EQ wa_ppdix-linum.
* append anywhere for checkno
IF i_checkno EQ 'X'.
wa_cluster-pernr = wa_ppoix-pernr.
wa_cluster-seqno = wa_ppoix-seqno.
wa_cluster-abrj = <wa_ppdit>-abper+0(4).
wa_cluster-abrp = <wa_ppdit>-abper+4(2).
wa_cluster-actual = wa_ppoix-actsign.
wa_cluster-betrg = wa_ppoix-betrg.
wa_cluster-waers = wa_ppoix-waers.
IF <wa_ppdit>-abper IS INITIAL.
* write BONDT into field ZUONR
CALL FUNCTION 'CU_READ_RGDIR'
EXPORTING
persnr = wa_ppoix-pernr
TABLES
in_rgdir = t_rgdir.
READ TABLE t_rgdir INTO wa_rgdir WITH KEY
seqnr = wa_ppoix-seqno.
IF syst-subrc EQ 0.
<wa_ppdit>-zuonr+0(10) = wa_rgdir-bondt.
ENDIF.
ENDIF.
APPEND wa_cluster TO t_cluster.
ENDIF.
IF i_tax EQ 'X'.
* check if LGART is relevant
READ TABLE t_helpval INTO wa_helpval WITH KEY
pernr = wa_ppoix-pernr
lgart = wa_ppoix-lgart.
CASE syst-subrc.
WHEN 0.
* relevant or not
CASE wa_helpval-rel.
WHEN 'X'.
wa_cluster-pernr = wa_ppoix-pernr.
wa_cluster-seqno = wa_ppoix-seqno.
wa_cluster-abrj = <wa_ppdit>-abper+0(4).
wa_cluster-abrp = <wa_ppdit>-abper+4(2).
wa_cluster-actual = wa_ppoix-actsign.
wa_cluster-betrg = wa_ppoix-betrg.
wa_cluster-waers = wa_ppoix-waers.
IF <wa_ppdit>-abper IS INITIAL.
CALL FUNCTION 'CU_READ_RGDIR'
EXPORTING
persnr = wa_ppoix-pernr
TABLES
in_rgdir = t_rgdir.
READ TABLE t_rgdir INTO wa_rgdir WITH KEY
seqnr = wa_ppoix-seqno.
IF syst-subrc EQ 0.
<wa_ppdit>-zuonr+0(10) = wa_rgdir-bondt.
ENDIF.
ENDIF.
APPEND wa_cluster TO t_cluster.
* save values
MOVE-CORRESPONDING wa_ppoix TO wa_payroll.
wa_payroll-betrg = ABS( wa_payroll-betrg ).
APPEND wa_payroll TO t_values.
WHEN ' '.
CONTINUE.
ENDCASE.
WHEN OTHERS.
* determine values
CALL FUNCTION 'HR_COUNTRYGROUPING_GET'
EXPORTING
pernr = wa_ppoix-pernr
* TCLAS = 'A'
begda = e_ppdhd-bldat
endda = e_ppdhd-bldat
* WERKS =
IMPORTING
molga = h_molga
EXCEPTIONS
not_found = 1
OTHERS = 2
IF sy-subrc NE 0.
WRITE wa_ppoix-pernr TO par1.
CALL FUNCTION 'BALW_BAPIRETURN_GET2'
EXPORTING
type = 'E'
cl = 'HRPAYBR94'
number = '278'
par1 = par1
IMPORTING
return = wa_return.
wa_return-field = wa_ppoix-pernr.
APPEND wa_return TO return.
CONTINUE.
ENDIF.
SELECT * FROM t512w INTO wa_t512w
WHERE molga = h_molga
AND lgart = wa_ppoix-lgart
AND endda GE e_ppdhd-bldat
AND begda LE e_ppdhd-bldat.
EXIT.
ENDSELECT.
IF syst-subrc EQ 0.
IF wa_t512w-vklas+77(1) = '2'.
wa_helpval-pernr = wa_ppoix-pernr.
wa_helpval-lgart = wa_ppoix-lgart.
wa_helpval-rel = 'X'.
APPEND wa_helpval TO t_helpval.
wa_cluster-pernr = wa_ppoix-pernr.
wa_cluster-seqno = wa_ppoix-seqno.
wa_cluster-abrj = <wa_ppdit>-abper+0(4).
wa_cluster-abrp = <wa_ppdit>-abper+4(2).
wa_cluster-actual = wa_ppoix-actsign.
wa_cluster-betrg = wa_ppoix-betrg.
wa_cluster-waers = wa_ppoix-waers.
IF <wa_ppdit>-abper IS INITIAL.
CALL FUNCTION 'CU_READ_RGDIR'
EXPORTING
persnr = wa_ppoix-pernr
TABLES
in_rgdir = t_rgdir.
READ TABLE t_rgdir INTO wa_rgdir WITH KEY
seqnr = wa_ppoix-seqno.
IF syst-subrc EQ 0.
<wa_ppdit>-zuonr+0(10) = wa_rgdir-bondt.
ENDIF.
ENDIF.
APPEND wa_cluster TO t_cluster.
MOVE-CORRESPONDING wa_ppoix TO wa_payroll.
wa_payroll-betrg = ABS( wa_payroll-betrg ).
APPEND wa_payroll TO t_values.
ELSE.
wa_helpval-pernr = wa_ppoix-pernr.
wa_helpval-lgart = wa_ppoix-lgart.
wa_helpval-rel = ''.
APPEND wa_helpval TO t_helpval.
ENDIF.
ENDIF.
ENDCASE.
ENDIF.
ENDLOOP.
ENDLOOP.
ENDLOOP.
SORT t_cluster.
DELETE ADJACENT DUPLICATES FROM t_cluster.
LOOP AT t_cluster INTO wa_cluster.
CLEAR: result_tab_us, result_tab_in.
CASE wa_t001-land1.
WHEN 'US'.
CALL FUNCTION 'PYXX_READ_PAYROLL_RESULT'
EXPORTING
* CLUSTERID = 'RU'
employeenumber = wa_cluster-pernr
sequencenumber = wa_cluster-seqno
* READ_ONLY_BUFFER = ' '
* READ_ONLY_INTERNATIONAL = ' '
* ARC_GROUP = ' '
check_read_authority = ''
filter_cumulations = ''
* CLIENT =
* IMPORTING
* VERSION_NUMBER_PAYVN =
* VERSION_NUMBER_PCL2 =
CHANGING
payroll_result = result_tab_us
EXCEPTIONS
illegal_isocode_or_clusterid = 1
error_generating_import = 2
import_mismatch_error = 3
subpool_dir_full = 4
no_read_authority = 5
no_record_found = 6
versions_do_not_match = 7
error_reading_archive = 8
error_reading_relid = 9
OTHERS = 10
WHEN OTHERS.
CALL FUNCTION 'PYXX_READ_PAYROLL_RESULT'
EXPORTING
* CLUSTERID = 'RU'
employeenumber = wa_cluster-pernr
sequencenumber = wa_cluster-seqno
* READ_ONLY_BUFFER = ' '
* READ_ONLY_INTERNATIONAL = ' '
* ARC_GROUP = ' '
check_read_authority = ''
filter_cumulations = ''
* CLIENT =
* IMPORTING
* VERSION_NUMBER_PAYVN =
* VERSION_NUMBER_PCL2 =
CHANGING
payroll_result = result_tab_in
EXCEPTIONS
illegal_isocode_or_clusterid = 1
error_generating_import = 2
import_mismatch_error = 3
subpool_dir_full = 4
no_read_authority = 5
no_record_found = 6
versions_do_not_match = 7
error_reading_archive = 8
error_reading_relid = 9
OTHERS = 10
ENDCASE.
IF sy-subrc NE 0.
CLEAR wa_return.
wa_return-field = wa_ppoix-pernr.
CASE syst-subrc.
WHEN '1'.
wa_return-message = 'ILLEGAL_ISOCODE_OR_CLUSTERID'.
WHEN '2'.
wa_return-message = 'ERROR_GENERATING_IMPORT'.
WHEN '3'.
wa_return-message = 'IMPORT_MISMATCH_ERROR'.
WHEN '4'.
wa_return-message = 'SUBPOOL_DIR_FULL'.
WHEN '5'.
wa_return-message = 'NO_READ_AUTHORITY'.
WHEN '6'.
wa_return-message = 'NO_RECORD_FOUND'.
WHEN '7'.
wa_return-message = 'VERSIONS_DO_NOT_MATCH'.
WHEN '8'.
wa_return-message = 'ERROR_READING_ARCHIVE'.
WHEN '9'.
wa_return-message = 'ERROR_READING_RELID'.
WHEN OTHERS.
wa_return-message = 'OTHERS'.
ENDCASE.
APPEND wa_return TO return.
CONTINUE.
ELSE.
CASE wa_t001-land1.
WHEN 'US'.
t_inter = result_tab_us-inter.
WHEN OTHERS.
t_inter = result_tab_in-inter.
ENDCASE.
APPEND t_inter.
t_tax = result_tab_us-nat-tax.
LOOP AT t_inter.
t_bt = t_inter-bt.
t_rt = t_inter-rt.
ENDLOOP.
LOOP AT t_values ASSIGNING <payroll> WHERE
pernr EQ wa_cluster-pernr.
CLEAR wa_rt.
LOOP AT t_rt INTO wa_rt WHERE
lgart EQ <payroll>-lgart.
wa_rt-betrg = ABS( wa_rt-betrg ).
IF wa_rt-betrg EQ <payroll>-betrg AND NOT
wa_rt-cntr1 IS INITIAL.
IF wa_t001-land1 EQ 'US'.
LOOP AT t_tax INTO wa_tax WHERE
cntr1 EQ wa_rt-cntr1.
EXIT.
ENDLOOP.
IF syst-subrc EQ 0.
<payroll>-cntr1 = wa_tax-cntr1.
<payroll>-taxau = wa_tax-taxau.
* determine long text
SELECT SINGLE ltext FROM t5utz INTO h_ltext
WHERE taxau = wa_tax-taxau.
IF syst-subrc EQ 0.
<payroll>-ltext = h_ltext.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
ENDLOOP.
* check table BT abd determine check no.
IF i_checkno EQ 'X'.
LOOP AT t_bt INTO wa_bt.
APPEND wa_bt TO t_hrpay.
CASE wa_bt-zlsch.
* check
WHEN 'C'.
SELECT * FROM payr INTO wa_payr WHERE
rzawe = 'C' AND
laufd = wa_bt-dtadt AND
pernr = wa_cluster-pernr AND
seqnr = wa_cluster-seqno AND
btznr = wa_bt-btznr.
EXIT.
ENDSELECT.
IF syst-subrc EQ 0.
* store period in a field to find correlation later
wa_payr-znme4+0(4) = wa_cluster-abrj.
wa_payr-znme4+4(2) = wa_cluster-abrp.
ELSE.
CLEAR wa_payr.
wa_payr-pernr = wa_cluster-pernr.
wa_payr-rwbtr = wa_cluster-betrg.
wa_payr-waers = wa_cluster-waers.
APPEND wa_payr TO t_payr.
ENDIF.
APPEND wa_payr TO t_payr.
* bank transfer
WHEN OTHERS.
h_time = wa_bt-dtati+0(5).
h_time+5(1) = 'P'.
SELECT * FROM reguta INTO wa_reguta WHERE
laufd = wa_bt-dtadt AND
laufi = h_time.
EXIT.
ENDSELECT.
IF syst-subrc EQ 0.
APPEND wa_reguta TO t_reguta.
ENDIF.
ENDCASE.
ENDLOOP.
ENDIF.
ENDIF.
ENDLOOP.
ENDFUNCTION.Hi Sudhir,
These settings need to be done by basis people. Anyhow, you can go to the tcode RZ11 and put in these parameters mentioned in the error message. There will be documentation available for these parameters. Try to see if the defaults are not met for any of these parameters. If you find something strange, report it to the basis. The documentations in this are very helpful. Hope this helps.
Thanks and Regards
Subray Hegde -
Login information for RFC call
Hi there,
I would like to know if there is a way to authenticate a user via bsp and get that login information to make the RFC call to different systems.
i tried the to call an FM via RFC directly from abap and it forces me to login and it works but when i put that code to bsp. I just get a "page cannot be displayed" error.
I know i can enter an ID and password on sm59 for the connection but i need to let the user login
I am using this for a user creation tool.. instead of using su01 to create a user it will be done via bsp and would like to reflect the changes done when running the reports from SUIM
thanks in advance
RyanHi Ryan,
I will assume your RFC Destination already trusted system and using current user logon (see my previous reply).
However this still prerequisite for the next step.
Now, please correct me if my understanding is wrong.
In your reply, you have at least 2 System, right?
S1 & S2.
Where S1 has BSP Application (Ex:/ FormRegistration)
And S2 is where you control the user and Function Module.
Do you put, generic user for all BSP Service in System S1?
You can create another BSP Application in System S1 (Ex:/ CallingFM)
but this time don't put default user in BSP Service.
And from BSP Application FormRegistration, you create 1 button to call the BSP Application CallingFM.
I will give you sample code:
FormRegistration: address:http://systemS1.sap.com/FormRegistration/page1.htm
HTML Part:
===========
<HTML>
<input type="button" value="Register the user" onclick="submitUser();">
<script>
function submitUser(){
document.forms[0].action = 'http://systemS1.sap.com/CallingFM/page1.htm';
document.forms[0].target = '_new';
//it will open new window, just put it empty if you don't want to open new window.
document.forms[0].submit();
</script>
</HTML>
Now, when user click Button "Register the user" it will open the new window.
But because it doesn't allow you to using default user, it will prompt user id and password.
After that it will submit the data to CallingFM
Now in CallingFM we already have the sy-uname = user-B.
CallingFM: address-> http://systemS1.sap.com/CallingFM/page1.htm
OnInputProcessing Part:
=================
call function 'zcreate_user' destination 'S2'
Why you need CallingFM BSP application? because you need to re-assign sy-uname in S1 from default user with user-B ID, and use it to connect to System S2, S3, etc.
Please note: SM59 and User Id must be set before this.
Because when you call RFC from other destination, SAP will refer to Logon setting in SM59 for that destination.
Hope this will help you. -
I have a WCF Adapter service to call a SAP RFC. When I call the RFC first time, it gives me correct no of result set but when I call this RFC second time immediately after first call, it gives me merged result set (First Result set + Second Result Set).
e.g. We have a RFC which receives vendor number and blank object of result set as parameter and gives back the list of purchase orders as Response in object of result set for that vendor.
Suppose, we have a vendor "a" and vendor "b". For vendor "a" there are 5 purchase orders and for vendor "b", we have 4 purchase orders in SAP. When I call the WCF adapter service for this RFC for vendor "a",
it gives me 5 purchase orders. Immediately after first call, when I call WCF service for vendor "b", it gives me 9 (5+4) purchase order records which is wrong.
In brief, one RFC call is affected by its previous call.
For each new WCF request, a new object of result set is created, connection is opened, rfc is executed and connection is closed.
Can anybody have any idea on this?
Thanks.
Thanks, Nishant GuptaHi,
Please refer to the document
http://seroter.wordpress.com/biztalk-and-wcf-part-vii-about-the-biztalk-adapter-pack/ -
RFC CALL canu00B4t execute Functions module ??
Hello everybody,
I have a problem with a Function module. The function module should open an link (it´s a Link of a Webdynpro Application).
I have the following constellation.
Bex Analyzer execute a RFC Call to open/execute the Function module. The Function module should open a URL (Webdynpro Application), but it doesn´t work.
I don´t know why. The Connection of the RFC Call is ok. I have tested the RFC with any Object´s and it works (He "answered").
What ist wrong in the Function Module, why can´t the FM open the URL??!
Simple Code of Function Module
call method cl_gui_frontend_services=>execute
exporting
document = 'URL'
exceptions
others = 1.
Endfunction.
A other test
*CALL FUNCTION 'PRGN_GENER_EXECUTE_URL'
*EXPORTING
*NODE_DATA = 'url'.
The VBA Code for RFC
Sub Login()
Dim functionCtrl As Object
Dim sapConnection As Object
Dim theFunc As Object
Dim sReturn As Boolean
Dim l_export As String
Dim objQueryTab As Variant
Set functionCtrl = CreateObject("SAP.Functions")
Set sapConnection = functionCtrl.Connection
sapConnection.Client = "100"
sapConnection.user = "xy"
sapConnection.Language = ".."
sapConnection.SystemNumber = "xy"
sapConnection.ApplicationServer = "xy"
sapConnection.Language = "x"
sapConnection.codepage = "xy"
sapConnection.Destination = "xy"
sapConnection.System = "x"
sapConnection.SystemID = "......"
sapConnection.Password = "xy"
sapConnection.autologon = 1
If sapConnection.Logon(0, True) <> True Then
MsgBox "Keine Verbindung"
Else
Set theFunc = functionCtrl.Add("SS_RFC_URL_TEST")
objQueryTab = "200"
theFunc.Exports("I_PAR") = objQueryTab
sReturn = theFunc.call
If sReturn = True Then
objQueryTab = theFunc.Imports("E_PAR")
End If
sapConnection.logoff
End If
End Sub
>E_PAR is the Exportparameter of the Function module
>I_PAR is the Importparameter of the Function module
Thanks
Edited by: Schwarzenberger Stefan on May 9, 2011 1:59 PMHi, I have a similar situation. Within VBA I am calling the RFC 'RFC_CALCULATE_TAXES_DOC'. This RFC is used to communicate with external tax software like Taxware; it gets applicable tax rates, amounts, etc. based on tax jurisdiction code and other data. The RFC is remote-enabled (has to be to talk to Taxware).
This RFC requires an RFC Destination in order to work. Within VBA, I have not been able to figure out the syntax required to enter the Destination name. I saw Shreeram's post saying to use CALL FUNCTION 'PRGN_GENER_EXECUTE_URL' DESTINATION <RFC Destination Name>. However, this looks like ABAP syntax and not VBA syntax.
Does anybody know if this is possible within VBA? Sounds like it's not but wanted to double-check.
Thanks!!
Kory Squire
<<Removed email address>>
Edited by: Matt on May 18, 2011 6:37 AM -
Multiple Fields in RFC call in UDF
In my Message Mapping I am calling a RFC using a UDF, this works fine but only for 1 field. Like in my BAPI I have 1 Field in the Input parameters. Does anyone know how to import more than 1 parameter? Here is some sample code from my UDF:
Calling the RFC, I specify this: <?xml version=\"1.0\" encoding=\"UTF-8\"?><p2:ZTEST xmlns:p2=\"urn:sap-com:document:sap:rfc:functions\"><INPUT_VALUE>4500014790</INPUT_VALUE></p2:ZTEST>
Where ZTEST is my BAPI name and INPUT_Value is my import parameter. My question is how would I specify more than 1 import parameter in my xml string? I tried <INPUT_VALUE1>4500014790</INPUT_VALUE1><INPUT_VALUE2>33</INPUT_VALUE3> but then it does not return anything..
String content = "";
MappingTrace importanttrace;
importanttrace = container.getTrace();
// filling the string with our RFC-XML (with values)
String m = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><p2:ZTEST xmlns:p2=\"urn:sap-com:document:sap:rfc:functions\"><INPUT_VALUE>4500014790</INPUT_VALUE></p2:ZTEST>";
RfcAccessor accessor = null;
ByteArrayOutputStream out = null;
try
// 1. Determine a channel (Business system, Communication channel)
Channel channel = LookupService.getChannel("ECDCLNT999","CC_ECD999_RFC");
// 2. Get a RFC accessor for a channel.
accessor = LookupService.getRfcAccessor(channel);
// 3. Create a xml input stream representing the function module request message.
InputStream inputStream = new ByteArrayInputStream(m.getBytes());
// 4. Create xml payload
XmlPayload payload = LookupService.getXmlPayload(inputStream);
// 5. Execute lookup.
Payload result = accessor.call(payload);
InputStream in = result.getContent();
out = new ByteArrayOutputStream(1024);
byte[] buffer = new byte[1024];
for (int read = in.read(buffer); read > 0; read = in.read(buffer)) {
out.write(buffer, 0, read);
content = out.toString();
catch(LookupException e)
importanttrace.addWarning("Error while lookup " + e.getMessage() );
catch(IOException e)
importanttrace.addWarning("Error " + e.getMessage() );
finally
if (out!=null) {
try {
out.close();
} catch (IOException e) {
importanttrace.addWarning("Error while closing stream " + e.getMessage() );
// 7. close the accessor in order to free resources.
if (accessor!=null) {
try {
accessor.close();
} catch (LookupException e) {
importanttrace.addWarning("Error while closing accessor " + e.getMessage() );
//returning the result u2013 RFC-XML.response
return content;Hi Jan de Lange ,
Can you send the UDF code for the above. Even I was having the same problem ie., sending multiple values in the input file.
I want to send three PO numbers.
String m = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><p2:ZXI_GET_PO_DETAILS xmlns:p2=\"urn:sap-com:document:sap:rfc:functions\">
<PO_NUM>4500000005</PO_NUM>
<PO_NUM>4500000020</PO_NUM>
<PO_NUM>4500000021</PO_NUM></p2:ZXI_GET_PO_DETAILS>";
Best Regards
Suresh -
Hi
I've a requirement for a XI Inbound Order that I need to check for each MATNR on the Order Line it's associated Division (SPART). Once I know the Division I'll then split up the Order per Division.
Can I from my BPM collect the message, call a RFC via Send Sync Step to return the Divisions and then continue with my transformation ?
I was looking for an example of how to call an RFC from a BPM. NOT using Sync<>Async bridge.
Does anybody have a link to a blog etc for that.?Hi,
You can either use RFC lookup in mapping or use Sync RFC call in the BPM.
Refer the Blog RFC Scenario using BPM --Starter Kit By Arpith Seth for Sync RFC call in BPM.
Refer this document [Mapping Lookups: Remote Function Calls API|https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/a03e7b02-eea4-2910-089f-8214c6d1b439] for making RFC lokup from mapping.
Thanks
SaNv... -
RFC call from XI, parameters trouble
Hi,
I have a BPM that makes a synchronous call to a BAPI, but the result is not the one expected:
Using SXMB_MONI, I can see the request message send to the SAP system:
<?xml version="1.0" encoding="UTF-8" ?>
- <rfc:BAPI_ADDRESSEMPGETDETAILEDLIST xmlns:rfc="urn:sap-com:document:sap:rfc:functions">
<EMPLOYEE_ID>00000179</EMPLOYEE_ID>
</rfc:BAPI_ADDRESSEMPGETDETAILEDLIST>
and the answer:
<?xml version="1.0" encoding="UTF-8" ?>
- <rfc:BAPI_ADDRESSEMPGETDETAILEDLIST.Response xmlns:rfc="urn:sap-com:document:sap:rfc:functions">
- <RETURN>
<TYPE>E</TYPE>
<ID>PG</ID>
<NUMBER>009</NUMBER>
<MESSAGE>No data stored for Addresses in the selected period</MESSAGE>
<LOG_NO />
<LOG_MSG_NO>000000</LOG_MSG_NO>
<MESSAGE_V1>Addresses</MESSAGE_V1>
<MESSAGE_V2 />
<MESSAGE_V3 />
<MESSAGE_V4 />
</RETURN>
<ADDRESS />
</rfc:BAPI_ADDRESSEMPGETDETAILEDLIST.Response>
That would seem to be perfect if the employee 179 was not exisitng or had no addresses, but that's not the case.
Using SE37 and the BAPI_ADDRESSEMPGETDETAILEDLIST function in the target system, and the same employeeID 00000179, I got the address as expected that is registered for that employee.
Does anyone have any idea where the trouble can come from?
Cheers,
gregOk,
the point was on the name field for the Employee number !!!
I used the same mapping from an other function, changed the function name, but didn't suspected the parameter had another name, it had !!!
with
<?xml version="1.0" encoding="UTF-8" ?>
- <rfc:BAPI_ADDRESSEMPGETDETAILEDLIST xmlns:rfc="urn:sap-com:document:sap:rfc:functions">
<EMPLOYEENUMBER>00000179</EMPLOYEENUMBER>
</rfc:BAPI_ADDRESSEMPGETDETAILEDLIST>
I have the right answer !!!
Thanks for the inputs and hope this would avoid somebody doing the same error -
Error with Asynchronous RFC call to JDBC
Hi all,
We are working on a scenarion where in we have to make an asynchronous RFC call to JDBC.
We have configured RFC sender adapter following this weblog
/people/michal.krawczyk2/blog/2005/03/29/configuring-the-sender-rfc-adapter--step-by-step
We have created data types only for the database as RFC does not require any data types.
And also we have created message types,message interfaces accordingly.
In Message Mappping,we mapped the export parameters of RFC to the access fields of database message type.
Also we have created sender agreement,interface determinations etc.... accordingly
And for sending RFC request asynchronously we followed this weblog
/people/swaroopa.vishwanath/blog/2006/12/28/send-rfc-to-sap-xi-150-asynchronous
Once done with all the above steps we could able to trigger the RFC call and caught with the following errors in SXMB_MONI and no errors are seen in communication monitoring
SOAP Error:
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>+
+- <!-- Request Message Mapping+
-->
- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
<SAP:Category>Application</SAP:Category>
<SAP:Code area="MAPPING">EXCEPTION_DURING_EXECUTE</SAP:Code>
<SAP:P1>com/sap/xi/tf/_curr_exg_mm2_</SAP:P1>
<SAP:P2>com.sap.aii.utilxi.misc.api.BaseRuntimeException</SAP:P2>
<SAP:P3>RuntimeException in Message-Mapping transformatio~</SAP:P3>
<SAP:P4 />
<SAP:AdditionalText />
<SAP:ApplicationFaultMessage namespace="" /> <SAP:Stack>com.sap.aii.utilxi.misc.api.BaseRuntimeException thrown during application mapping com/sap/xi/tf/_curr_exg_mm2_: RuntimeException in Message-Mapping transformatio~</SAP:Stack>
<SAP:Retry>M</SAP:Retry>
</SAP:Error>
Also trace shows the following error thogh the interface determinations are properly configured
<Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_TO_PERSIST" />
- <!-- ************************************
-->
<Trace level="1" type="T">--start sender interface action determination</Trace>
<Trace level="1" type="T">select interface BAPI_EXCHRATE_GETCURRENTRATES*</Trace>
<Trace level="1" type="T">select interface namespace urn:sap-com:document:sap:rfc:functions</Trace>
<Trace level="1" type="T">no interface found</Trace>
<Trace level="1" type="T">--start receiver interface action determination</Trace>
<Trace level="1" type="T">Loop 0000000001</Trace>
<Trace level="1" type="T">select interface *</Trace>
<Trace level="1" type="T">select interface namespace</Trace>
<Trace level="1" type="T">no interface found</Trace>
<Trace level="1" type="T">--no sender or receiver interface definition found</Trace>
<Trace level="1" type="T">Hence set action to DEL</Trace>
<Trace level="1" type="B" name="CL_XMS_MAIN-PERSIST_READ_MESSAGE" />
<Trace level="1" type="T">Note: the following trace entry is written delayed (after read from persist)</Trace>
<Trace level="1" type="B" name="SXMS_ASYNC_EXEC" />
- <!-- ************************************
-->
<Trace level="1" type="T">----</Trace>
<Trace level="1" type="T">Starting async processing with pipeline CENTRAL</Trace>
the above errors are shown as part of request mapping..
Can any one please let me know what other configurations do we need to do?
I did not map the RFC import parameters,do we need to do that
Any help in this regard is really appreciated
Rgds,
SanthoshHi,
I am really happy to hear that the problem with mapping is resolved.
Now as per your requirment It needs to be aynschornous RFC--> XI ---> JDBC call. In XI you should map the RFC Export parameters to the traget structure of JDBC.
then the question is to how to trigger the RFC Function Module in R/3 to XI.
Plesae follow below steps to trigger it from SAP R/3
1. Create a RFC in the R/3 system
2. Configure the SM59 and Sender Communication channle as given in the Michal's blog. Also test if it is succesful.
/people/michal.krawczyk2/blog/2005/03/29/configuring-the-sender-rfc-adapter--step-by-step
3. Import the RFC in XI
4. Do the mapping to the target strucutre
5. Configure the JDBC receiver adapter
/people/sameer.shadab/blog/2005/10/24/connecting-to-ms-access-using-receiver-jdbc-adapter-without-dsn
6. You can trigger the RFC from R/3 sytem by using
Async Call - in ABAP program use below syntax to call RFC. Here the export parameters will be passed on to XI which further have mapped to JDBC.
CALL Function "RFC Name" IN BACKGROUND TASK destination <sm59 destination>
COMMIT WORK.
Sync Call
CALL Function "RFC Name" destination <sm59 destination>
Thanks
Swarup
Edited by: Swarup Sawant on Jan 27, 2008 9:14 AM -
Hi there
I am trying to do a table lookup from XI in my message mapping by calling an remote RFC. The return values must return ALL the value for a specific column. The code I have here returns a blank value. Can someone see what my problem may be?
My variables for my UDF is:
public String UDF_RFC(String DBTABLE,String MATNR,String FIELDS,String businessSystem,String communicationChannel,Container container)
And my Code:
"My code appears to mess up my message structure, I will attach it in a responce..
Thanks,
Jan
Edited by: Jan de Lange on Sep 16, 2009 11:09 AM
Edited by: Jan de Lange on Sep 16, 2009 11:09 AM// declare parameters
String returnValue = "";
String rfcXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><ns0:ZINT_XI_GET_SITES xmlns:ns0=\"urn:sap-com:document:sap:rfc:functions\"><LT_SITES><item><WERKS></WERKS></item></LT_SITES></ns0:ZINT_XI_GET_SITES>";
AbstractTrace trace = container.getTrace();
RfcAccessor accessor = null;
ByteArrayOutputStream out = null;
try
// 1. Determine a communication channel (Business system + Communication channel)
Channel channel = LookupService.getChannel(businessSystem,communicationChannel);
// 2. Get a RFC accessor for the channel.
accessor = LookupService.getRfcAccessor(channel);
// 3. Create an XML input stream that represents the RFC request message.
InputStream inputStream = new ByteArrayInputStream(rfcXML.getBytes());
// 4. Create the XML Payload
XmlPayload payload = LookupService.getXmlPayload(inputStream);
// 5. Execute the lookup.
Payload result = null;
result = accessor.call(payload);
InputStream in = result.getContent();
// 6. Create a DOM structure from the input XML
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(in);
NodeList nodelist = document.getElementsByTagName("*");
Node node;
Element element;
NamedNodeMap nnm = null;
String attrname;
String attrval;
int i, len;
len = nodelist.getLength();
for (int j=0; j < len; j++) {
element = (Element)nodelist.item(j);
System.out.println(element.getTagName() + ":");
nnm = element.getAttributes();
if (nnm != null) {
for (i=0; i<nnm.getLength(); i++) {
node = nnm.item(i);
attrname = node.getNodeName();
attrval = node.getNodeValue();
returnValue += attrname + " = " + attrval + "##";
// 7. To free resources, close the accessor..
if (accessor!=null) {
try {
accessor.close();
} catch (LookupException e) {
trace.addWarning("Error while closing accessor " + e.getMessage() );
} catch (Exception e) {
trace.addWarning("Error" + e);
// 8. return a single id value to the message mapping
return returnValue; -
BOM Explosion not happening in RFC call...
Hi All,
We are facing a strange issue in our project. We are using a RFC call for order creation. When we execute the FM through SE71 using a BOM material, the BOM gets exploded correctly. However, if the same material is passed through the RFC call, it is not getting exploded.
The BAPI used for order creation is BAPI_SALESORDER_CREATEFROMDAT2.
If any of you have encountered such an issue and know any resolution, please let me know at the earliest.
Thanks in advance.Make sure that you are converting to the internal format when calling via RFC. Meaning, that you need to have leading zeros for things like sales document numbers. So if your sales documennt number is 12345, make sure that you are passing it to the RFC call, like 0000012345.
Regards,
Rich Heilman -
Finding caller program in a RFC call
Hi experts,
We are having lots of CALL_FUNCTION_NOT_FOUND short dumps in one of our systems. The errors are caused because other systems call a function that does not exist, so the dumps are created.
What we would like to know is what program is doing these calls, since all we can see in the short dump is the caller system and the function it is trying to access, but not the exact program where the call is performed so we can fix the code.
Thanks in advance for your support.Sorry if this is too much of a wall of text, I can't find an "attach file" type feature.
ABAP runtime errors CALL_FUNCTION_NOT_FOUND
Occurred on 11.12.2006 at 10:04:34
Function module "Y_EF_DETERMINE_PICTURE" not found.
What happened?
The function module "Y_EF_DETERMINE_PICTURE" was called, but cannot be
found in the Function Library.
The current ABAP/4 program "SAPMSSY1 " had to be terminated because
one of the statements could not be executed.
This is probably due to an error in the ABAP/4 program.
What can you do?
Note the actions and input that caused the error.
Inform your SAP system administrator.
You can print out this message by choosing "Print". Transaction ST22
allows you to display and manage termination messages, including keeping
them beyond their normal deletion date.
Error analysis
The program "SAPMSSY1 " contains a CALL FUNCTION statement. The name
of the function module to be called is "Y_EF_DETERMINE_PICTURE".
No function module exists with the name "Y_EF_DETERMINE_PICTURE".
All function modules are stored in the Function Builder (SE37).
Possible reasons:
a) Wrong name specified. Particular attention should be paid
to upper/lower case and underscores ("_").
or
b) Transport error
c) In the case of an enqueue/dequeue module, the lock object
may not have been activated (ABAP Dictionary).
How to correct the error
Check the last transports to the R/3 System.
Is the program "SAPMSSY1 " currently being changed?
If an enqueue/dequeue module is involved, is the activation
of the lock object missing in the ABAP/4 Dictionary?
If the error occurred in a non-modified SAP program, you may be
able to find a solution in the SAP note system.
If you have access to the note system yourself, use the following
search criteria:
"CALL_FUNCTION_NOT_FOUND"
"SAPMSSY1 " or "SAPMSSY1 "
"REMOTE_FUNCTION_CALL"
Function modules with names similar to "Y_EF_DETERMINE_PICTURE":
Y_EF_USEX_DETERMINE_TAX
Y_GF1_DETERMINE_RECTYPE
Y_GK_DETERMINE_PRCTR
Y_EF_USEX_PICTURE_SUBMIT
Y_EF_USEX_SHOW_PICTURE
Y_EF_RFC_PICTURE_POST
Y_GF1_DETERMINE_SBU
Y_GF_DETERMINE_VERSION
Y_GF_DETERMINE_DATE_PREVMON
Y_GF1_DETERMINE_CURRENT_PERIOD
If you cannot solve the problem yourself, please send the
following documents to SAP:
1. A hard copy print describing the problem.
To obtain this, select the "Print" function on the current screen.
2. A suitable hardcopy prinout of the system log.
To obtain this, call the system log with Transaction SM21
and select the "Print" function to print out the relevant
part.
3. If the programs are your own programs or modified SAP programs,
supply the source code.
To do this, you can either use the "PRINT" command in the editor or
print the programs using the report RSINCL00.
4. Details regarding the conditions under which the error occurred
or which actions and input led to the error.
System environment
SAP Release.............. "46C"
Application server....... "sapgp1s"
Network address.......... "52.99.71.21"
Operating system......... "AIX"
Release.................. "5.3"
Hardware type............ "00C4449E4C00"
Database server.......... "sapgp1s"
Database type............ "DB6"
Database name............ "GP1"
Database owner........... "SAPR3"
Character set............ "en_US.ISO8859-1"
SAP kernel............... "46D"
Created on............... "Aug 26 2005 22:40:31"
Created in............... "AIX 1 5 0056AA8A4C00"
Database version......... "DB6_71 "
Patch level.............. "2113"
Patch text............... " "
Supported environment....
Database................. "DB6 06., DB6 07., DB6 08.*"
SAP database version..... "46D"
Operating system......... "AIX 1 4, AIX 2 4, AIX 3 4, AIX 1 5, AIX 2 5, AIX 3
5, , System build information:, -
, LCHN :
User, transaction...
Client.............. 000
User................ "SAPSYS"
Language............ "E"
Transaction......... " "
Program. ........... "SAPMSSY1 "
Screen. ............ "SAPMSSY1 3004"
Line of screen...... 2
Information about Remote Function Call (RFC) Caller:
System.............. "WP1 "
Database release.... "46C "
Kernel release. .... "46D "
Connection type. ... "3 " (2 = R/2, 3 = R/3, E = Extern, R = Reg.
Call type........... "S-" (S = synch., a/A = asynch., T = transactional
Client.............. 510
User................ "PC1706 "
Transaction......... "/COCKPIT/1 "
Function module..... "Y_EF_DETERMINE_PICTURE"
Call destination.... "GP1590"
Source server....... "wsdux44_WP1_10"
Source IP address... "52.99.71.124"
Additional information about RFC logon:
Trusted relationship " "
Logon return code... " "
Trusted return code. " "
Note: In Releases earlier than 4.0, some of the above information about
RFC calls may not be available.
Information on where termination occurred
The termination occurred in the ABAP/4 program "SAPMSSY1 " in
"REMOTE_FUNCTION_CALL".
The main program was "SAPMSSY1 ".
The termination occurred in line 67
of the source code of program "SAPMSSY1 " (when calling the editor 670).
Source code extract
000370 ENDMODULE.
000380
000390 MODULE %_RFCDIA_CALL OUTPUT.
000400 "Do not display screen !
000410 CALL 'DY_INVISIBLE_SCREEN'.
000420 PERFORM REMOTE_FUNCTION_DIACALL.
000430 ENDMODULE.
000440
000450 MODULE %_CPIC_START.
000460 IF SY-XPROG(4) = '%RFC'.
000470 PERFORM REMOTE_FUNCTION_CALL USING RFCTYPE_EXTERNAL_CPIC.
000480 ELSE.
000490 CALL 'APPC_HD' ID 'HEADER' FIELD HEADER ID 'CONVID' FIELD CONVID.
000500 PERFORM CPIC_CALL USING CONVID.
000510 ENDIF.
000520 ENDMODULE.
000530
000540
000550 FORM CPIC_CALL USING CONVID.
000560 COMMUNICATION SEND ID CONVID BUFFER HEADER.
000570 IF SY-SUBRC EQ 0.
000580 PERFORM (SY-XFORM) IN PROGRAM (SY-XPROG).
000590 ELSE.
000600 MESSAGE A800.
000610 ENDIF.
000620 ENDFORM.
000630
000640
000650 FORM REMOTE_FUNCTION_CALL USING VALUE(TYPE).
000660 DO.
CALL 'RfcImport' ID 'Type' FIELD TYPE.
000680 PERFORM (SY-XFORM) IN PROGRAM (SY-XPROG).
000690 RSYN >SCONT SYSC 00011111 0.
000700 ENDDO.
000710 ENDFORM.
000720
000730 FORM REMOTE_FUNCTION_DIASTART.
000740 DO.
000750 CALL 'RfcImport' ID 'Type' FIELD RFCTYPE_RFCDIA.
000760 PERFORM (SY-XFORM) IN PROGRAM (SY-XPROG).
000770 "Parking position for next request
000780 RSYN >SCONT SYSC 00011111 10.
000790 "ALternativ : Free mode
000800 "COMMIT WORK.
000810 "SYSTEM-CALL FREE MODE 0.
000820 ENDDO.
000830 ENDFORM.
000840
000850 FORM REMOTE_FUNCTION_DIACALL.
000860 SY-XCODE = '%_@no@'.
Contents of system fields
SY field contents..................... SY field contents.....................
SY-SUBRC 0 SY-INDEX 1
SY-TABIX 0 SY-DBCNT 0
SY-FDPOS 0 SY-LSIND 0
SY-PAGNO 0 SY-LINNO 1
SY-COLNO 1
Chosen variables
Name.......................... Contents.1........2........3....+....4
SY-XPROG
2222222222222222222222222222222222222222
0000000000000000000000000000000000000000
SY-XFORM Y_EF_DETERMINE_PICTURE
554454454544445544555422222222
9F56F45452D9E5F093452500000000
%_SPACE
0
0
SY-MSGID
22222222222222222222
00000000000000000000
EBC_TO_ASC-X05 P&QéRêSëTèUíVîWïXìY~ZÜ[$*])^;_^
525E5E5E5E5E5E5E5E575D5252525355
06192A3B485D6E7F8C9EACB4CAD9EBFE
RFCTYPE_QUEUE 6
0000
0006
%_PRINT 000
2222333222222222222222222222222222222222
0000000000000000000000000000000000000000
... + 40
2222222222222222222222222222222222222222
0000000000000000000000000000000000000000
... + 80 0 ########
2222222222320000000022222222222222222222
0000000000000000000000000000000000000000
... + 120
22222222
0000000
SY-MSGNO 000
333
000
EBC_TO_ASC-X04 @ A BâC{DàEáFãGåHçIñJÄK.L<M(N+O!
424A4E474E4E4E4E4E4F4C4243424242
0010223B405163758791A4BECCD8EBF1
SY-MSGV1
2222222222222222222222222222222222222222
0000000000000000000000000000000000000000
... + 40
2222222222
0000000000
SY-MSGV2
2222222222222222222222222222222222222222
0000000000000000000000000000000000000000
... + 40
2222222222
0000000000
SY-MSGV3
2222222222222222222222222222222222222222
0000000000000000000000000000000000000000
... + 40
2222222222
0000000000
SY-MSGV4
2222222222222222222222222222222222222222
0000000000000000000000000000000000000000
... + 40
2222222222
0000000000
%_?NOT_ASSIGNED?
2222
0000
SPACE
2
0
SY-REPID SAPMSSY1
5454555322222222222222222222222222222222
310D339100000000000000000000000000000000
TYPE 3
0000
0003
SYST ########################################
0000000000000000000000000000000000000000
0001000000000000000000000000000000000000
... + 40 ########################################
0000000000000000000000000000000000000000
0000000000010000000100000000000000000000
... + 80 ########################################
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
... + 120 #######################################T
00000000
0000000
Active calls / events
No.... Type........ Name..........................
Programm
Include Line
1 FORM REMOTE_FUNCTION_CALL
SAPMSSY1
SAPMSSY1 67
2 MODULE (PBO) %_RFC_START
SAPMSSY1
SAPMSSY1 31
Internal notes
The termination occurred in the function "link_rfdir" of the SAP
Basis System, specifically in line 165 of the module
"//bas/46D/src/krn/runt/ablink.c#3".
The internal operation just processed is "CALY".
The internal session was started at 20061211100434.
Active calls in SAP kernel
=> 64 bit R/3 Kernel
=> 64 bit AIX Kernel
=> Heap limit = unlimited
=> Stack limit = unlimited
=> Core limit = 51200000
=> File size limit = unlimited
=> Heap address = 0x118dba360
=> Stack address = 0xfffffffffff5d50
=> Stack low = 0xfffffffffff5d50
=> Stack high = 0xffffffffffff600
=> Stack Trace:
AixStack() at 0x100059364
CTrcStack2() at 0x10005945c
rabax_CStackSave() at 0x10003959c
ab_rabax() at 0x1000425b4
link_rfdir() at 0x100540418
ab_link() at 0x100540a18
ab_rfcimport() at 0x1005f49f0
ab_jcaly() at 0x100024560
ab_extri() at 0x100487474
ab_xevent() at 0x10059c804
ab_dstep() at 0x10043bd98
dynpmcal() at 0x100942f94
dynppbo0() at 0x100941320
dynprctl() at 0x100948f40
dynpen00() at 0x1008f7818
Thdynpen00() at 0x1001429f4
TskhLoop() at 0x100146368
tskhstart() at 0x1001576ac
DpMain() at 0x100e06e38
main() at 0x100de72f4
List of ABAP programs affected
Type
Program
Gen. date time
LoadSize
Prg
SAPMSSY1
04.01.2000 19:06:59
20480
List of internal tables
No dump information available
Directory of application tables (contents)
Program
Name.......... Contents.1........2........3....+....
Directory of data areas (administration information)
Program
No.. Name.......... Lgth Ofsg Type Next Gen date Gen time
SYST
L not assigned -15 0 IN
M /%_LISTTABLE -14 1 CO 0
T global stack -13 1 2 GL 0
SAPMSSY1
A global data 0 3 DA
L constant dat 1 4 LI .0 .0216
L constant dat 2 5 LI SSY .0 .018B
L not assigned 3 6 IN
L SYST 4 7 TA 0
L SY 5 8 TA
L RSJOBINFO 6 9 TA
M /%_SYS%% 7 0 CO
M field symbol 8 1 FS
L TCPIC 9 2 TA
M field symbol 10 3 FS
L text pool 11 4 TP
Directory of data areas (contents)
Program
No.. Name.......... Contents..1........2........3....+....
SYST
L not assigned 0
L text pool 102 |SAPMSSY1
ABAP control blocks CONT
Include Line source code
Index Name F1 Co Par01 Par2. Par3. Par4. Tabl
SAPMSSY1 60 MESSAGE A800.
215 CLEA 00 84
216 CLEA 00 85
217 MESS 00 27
SAPMSSY1 62 ENDFORM.
218 ENDF 00
219 -
223 -
SAPMSSY1 65 FORM REMOTE_FUNCTION_CALL USIN
227 PERP 00 1
228 PERP 02
SAPMSSY1 66 DO.
229 WHIL 00 2
233 WHIL 00 3
237 BRAN 05 Branch to 251
SAPMSSY1 67 CALL 'RfcImport' ID 'Type' FIE
238 CALY 00 3 86 70 71 71
>>>>> CALY 02 87 P0
SAPMSSY1 68 PERFORM (SY-XFORM) IN PROGRAM
246 xper 02 12 13
248 PERP 80
SAPMSSY1 69 RSYN >SCONT SYSC 00011111 0.
249 SYSC 1F
SAPMSSY1 70 ENDDO.
250 BRAX 00 Branch to 233
251 WHIL 00 4
SAPMSSY1 71 ENDFORM.
255 ENDF 00
256 -
End of runtime analysis -
XI Webservice scenario SOAP - RFC Call
Hi,
i have the following scenario: Request --> XI RFC-call --> R/3
XI --> Response
First I have test this scenario with the HTTP-request and it works (the result was correct). After this I changed the configuration and test the scenario with the SOAP-request. But when I try this scenario, the rfc call works also, but I get the response, that we send empty request parameter (I_EQUIPMENT).
SOAP Request:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns0="urn:sap-com:document:sap:rfc:functions">
<soapenv:Header/>
<soapenv:Body>
<ns0:RFC_GET_EQUIPMENT_DATA>
<I_EQUIPMENT>xxxxx</I_EQUIPMENT>
</ns0:RFC_GET_EQUIPMENT_DATA>
</soapenv:Body>
</soapenv:Envelope>
HTTP Request:
<?xml version="1.0" encoding="UTF-8"?>
<ns0:RFC_GET_EQUIPMENT_DATA xmlns:ns0="urn:sap-com:document:sap:rfc:functions">
<I_EQUIPMENT>xxxxx</I_EQUIPMENT>
</ns0:RFC_GET_EQUIPMENT_DATA>
Thanks for helping,
MarkusHi,
I hope following docs will help
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/d23cbe11-0d01-0010-5287-873a22024f79
/people/shabarish.vijayakumar/blog/2008/01/08/troubleshooting--rfc-and-soap-scenarios-updated-on-20042009
/people/siva.maranani/blog/2005/03/01/testing-xi-exposed-web-services
Thanks,
Tuhin -
Hi!
My scenario is as follows: IDoc -> XI -> Email
This works fine, but now I need to do a RFC call back to the server which sent the IDoc to XI to get the email address of the receiver dynamically.
I imported the corresponding RFC (BAPI_ISUTASK_GETCOMMCONTROL) from the other server into the Integration Repository.
Now I'm not sure how to continue. How can I do this RFC call? Do I need to create a ccBPM or can I solve my problem in an easier way?
Regards,
DanielHi!
Many thanks for your replies
I tried the way with message lookups like Michal wrote in this article: https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/uuid/801376c6-0501-0010-af8c-cb69aa29941c
It worked nice, so I can retrieve an XML document which includes the email addresses.
Now I'm trying to extend the user defined function to get the required information out of the XML string and return this value. Seems to be not so easy
Regards,
Daniel
Maybe you are looking for
-
Server Java - Client Flash, there is no IP, Why?
Hi Folks! I apologize for my English writting is not my mother tongue. Well, I hope to able to explain my problem. I have a Server of sockets made in Java and a Flash client (it's a simple Chat real-time). Everything goes great when my server is acti
-
Getting error while importing topology,scenarios from 11.3 to ODI 11.5
Hi, Recently I had installed ODI 11.1.5. Now I am importing topology and scenarios exported from my older ODI 11.1.3 via shell script on Linux machine. There around 25 topology and around 40 scenarios.When i execute the script out of these some topol
-
User Cannot manually Type LOV in Prompt Screen
Hi Experts, WEBI reports built on OLAP Universes (Universes created on SAP BW) has below problem: As you know when user click's on Run Query or Refresh Data to run reports a prompt screen will pop up and in normal cases he has option of Selecting val
-
Can't Burn Disc Error Code -54
What is going on? can anyone help? Every time i try to burn something in toast it tells me it can't burn the disc because i don't have the proper access permissions and displays error code -54 afterwards...
-
Payment amount for invoice .......
Hi gurus, I have problem when caculate paid amount for the invoice, which be paid partial. I don't know fields save that amount.I see fileld NEBTR, but sometime it's valid, sometime no. Please help me !!! Tks a lot !!!