ALE-IDoc in WebDynPro Java - Is it possible?
Hi All,
As we know we can create RFC function module to access R/3 data from WebDynpro Java, but I would like to know, is there any other way to access R/3 without RFC function module? Because I would like to get data from IDoc directly without using function module, which present in R/3 side.
Could you please explain me?
Thanks & Regards,
Sheik
Hello
No need to create a new one.
There are already lots of standard FM present on the abap side which you can use to read the data of an idoc
e.g.
IDOCTYPE_READ_COMPLETE
IDOCTYPES_LIST_WITH_MESSAGES
IDOCTYPES_FOR_MESTYPE_READ
SEGMENT_READ_COMPLETE
IDOC_RECORD_READ
Use these standard FMs as RFCs for reading data from afuntion module.
Thanks
Sarbjeet Singh
Similar Messages
-
Is it possible to use the JS coding in webdynpro java application!!!
Hi Experts,
Is it possible to use the JS coding in webdynpro java application by any means?
If yes, kindly suggest the procedure or any pointers for the same.
Thanks in advance.
Regards,
AnuragHi,
I'm not an expert in this matter, but I will post here what I know:
In NW7 releases (at least 7.01.05) it is possible to run JS, also to capture any WD Event and run your own JS code after that, using IFRAME. I have jQuery running here, it would take some time till you create a "framework" to enable some easy usage. I just want to highlight that is possible, thou I think it's a lot of effort.
Not sure about CE7.1 it seems iFrame is deprecated. Still, being deprecated should not "block" the usage, thou it's not recommended since this functionality can be removed in next releases.
I've read that CE7.2 has JS support, and I think you should try having a word with Armin maybe..
Hope it helps,
Daniel -
Is it possible to Disable Right Mouse click In WebDynpro Java Application??
Dear Experts,
Is it possible to Disable Right Mouse click In WebDynpro Java Application??
If yes then kindly suggest how.
Warm Regards,
Upendra AgrawalWhat is the use-case?
Armin -
Is it possible to un Webdynpro java without SAP EP?
Hi,
I have a unique requirement.
My customer is new to SAP EP / Java Webdynpro.
He requires Webdynpro components to run without SAP EP.
In other words, he wants create an ALIAS for Webdynpro component URL which is displayed when we run the component from NWDS and publish the url in web page.
Even I am not sure whether Webdynpro will work without SAP EP?
He down't want any SAP EP features such as authentication / role assignment etc.
Kindly let me know is it possible to un Webdynpro java without SAP EP? how?
Thanks
Prabhu.M...Hi,
yes, this should be possible. Nevertheless you need to install WebAs Java. I'll move your thread to WebDynpro Forum.
Anja -
Is it possible ? : Webdynpro java without SAP EP
Hi,
I have an unique requirement.
My customer is new to SAP EP / Java Webdynpro.
He requires Webdynpro components to run without SAP EP.
In other words, he wants create an ALIAS for Webdynpro component URL which is displayed when we run the component from NWDS and to publish the url in web page.
Even I am not sure whether Webdynpro will work without SAP EP?
He don't want any SAP EP features such as authentication / role assignment etc.
Kindly let me know is it possible to run Webdynpro java without SAP EP? how?
Thanks
Prabhu.M...Hi Prabu,
You will get answer for all your question, see through link.
http://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/a00f7103-6790-2a10-ac9c-fcac7c5b18a3
Also this might be helpful,
/docs/DOC-8661#section10 [original link is broken]
Thanks,
Arun -
Is this possible in Webdynpro JAVA
Hi All,
I am wondering if any of the the following are possible to do using webdynpro JAVA.
The portal version here is EP6.0
1) To change the headers of standard Search Help Window.
By default the header at the top is shown as Display Text for value and the header for key is empty.
Can we change this? I know we can create a Pop up window which contains the custom table
accordingly. But is it possible to change in Standard F4 search help
2) For Dropdown by key,OnSelect event is fired when a user selects any of the item in the dropdown.
But is it possible to fire an event if the user does selects the item with out using drodown
Lets say we have dropdown box with the list of countries. User can press letter U on dropdown which
takes to USA.This time the event does not fire. The event is fired only when USA is selected with the
mouse
Could anyone give some ideas on this?
Thanks
SanthoshRelated to the second query,I also would like to share one more thing.
When the user selects by pressing the Key,that value is not updated in the context and hence when I try to submit to Fucntion module the old value(which is last selected by mouse) is being passed.
This seems to be weird....
Please give me some info if any one has an idea on this. -
can any one give me any good object in ale /idocs and BAPI and explain them (senario where that is used and why and how .
i will give you maximun reward points if i can understand that.Hi,
These are some links for ALE/IDOCS.
http://www.erpgenie.com/sapedi/index.htm
http://www.intelligententerprise.com/channels/applications/feature/archive/kasturi2.jhtml
http://www.sapgenie.com/sapedi/edi_sap_training.htm
http://www.sap-img.com/basis/ difference-between-edi-and-idoc.htm
http://www.help.sap.com/saphelp_nw04/helpdata/ en/35/26b592afab52b9e10000009b38f974/content.htm
http://www.help.sap.com/saphelp_nw04/helpdata/ en/35/26b594afab52b9e10000009b38f974/content.htm
http://www.onestopsap.com/interview-Question/edi/
http://www.easymarketplace.de/online-pdfs.php
http://help.sap.com/saphelp_erp2004/helpdata/en/dc/6b835943d711d1893e0000e8323c4f/content.htm
http://www.sapgenie.com/sapgenie/docs/ale_scenario_development_procedure.doc
http://edocs.bea.com/elink/adapter/r3/userhtm/ale.htm#1008419
http://www.netweaverguru.com/EDI/HTML/IDocBook.htm
http://www.sapgenie.com/sapedi/index.htm
http://www.onestopsap.com/interview-Question/ale/
http://www.onestopsap.com/interview-Question/edi/
http://www.allsaplinks.com/idoc_sample.html
http://www.sap-img.com/abap/ale-bapi.htm
http://www.sap-img.com/basis/difference-between-edi-and-idoc.htm
http://www.sappro.com/downloads/OneClientDistribution.pdf
http://www.sapgenie.com/sapgenie/docs/ale_scenario_development_procedure.doc
Please check this link for EDI/ALE/IDoc online documentation.
http://www.easymarketplace.de/online-pdfs.php
for BAPI's
http://www.sappoint.com/abap/bapiintro.pdf
http://www.sappoint.com/abap/bapiprg.pdf
http://www.sappoint.com/abap/bapiactx.pdf
http://www.sappoint.com/abap/bapilst.pdf
http://www.sappoint.com/abap/bapiexer.pdf
http://service.sap.com/ale
http://service.sap.com/bapi
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDAPII/CABFAAPIINTRO.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFABAPIREF/CABFABAPIPG.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCFESDE8/BCFESDE8.pdf
http://www.planetsap.com/Bapi_main_page.htm
http://www.topxml.com/sap/sap_idoc_xml.asp
http://www.sapdevelopment.co.uk/
http://www.sapdevelopment.co.uk/java/jco/bapi_jco.pdf
Also refer to the following links..
www.sappoint.com/abap/bapiintro.pdf
www.sap-img.com/bapi.htm
www.sap-img.com/abap/bapi-conventions.htm
www.planetsap.com/Bapi_main_page.htm
www.sapgenie.com/abap/bapi/index.htm
Checkout !!
http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html
http://techrepublic.com.com/5100-6329-1051160.html#
http://www.sap-img.com/bapi.htm
http://www.sap-img.com/abap/bapi-conventions.htm
http://www.sappoint.com/abap/bapiintro.pdf
BAPI
http://help.sap.com/saphelp_46c/helpdata/en/9b/417f07ee2211d1ad14080009b0fb56/frameset.htm
http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html
http://www.sapgenie.com/abap/bapi/example.htm
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDAPII/CABFAAPIINTRO.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFABAPIREF/CABFABAPIPG.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCFESDE8/BCFESDE8.pdf
Example Code
U need to give the step_nr, item_nr, cond_count and cond_type so the correct conditon will be updated. If no condition exists for the given parameters, a new condition will be created.
U can find these parameters for a particular condition type in table KONV.
*& Form saveTransactionJOCR
text
--> p1 text
<-- p2 text
FORM saveTransactionJOCR .
data: salesdocument like BAPIVBELN-VBELN,
order_header_inx like bapisdh1x,
order_header_in like bapisdh1,
return type standard table of bapiret2 with header line,
conditions_in type standard table of bapicond with header line,
conditions_inx type standard table of bapicondx with header line,
logic_switch like BAPISDLS,
step_nr like conditions_in-cond_st_no,
item_nr like conditions_in-itm_number,
cond_count like conditions_in-cond_count,
cond_type like conditions_in-cond_type.
salesdocument = wa_order_information-VBELN.
LOGIC_SWITCH-COND_HANDL = 'X'.
order_header_inx-updateflag = 'U'.
conditions
clear conditions_in[].
clear conditions_inx[].
clear: step_nr,
item_nr,
cond_count,
cond_type.
step_nr = '710'.
item_nr = '000000'.
cond_count = '01'.
cond_type = 'ZCP2'.
CONDITIONS_IN-ITM_NUMBER = item_nr.
conditions_in-cond_st_no = step_nr.
CONDITIONS_IN-COND_COUNT = cond_count.
CONDITIONS_IN-COND_TYPE = cond_type.
CONDITIONS_IN-COND_VALUE = 666.
CONDITIONS_IN-CURRENCY = 'EUR'.
append conditions_in.
CONDITIONS_INX-ITM_NUMBER = item_nr.
conditions_inx-cond_st_no = step_nr.
CONDITIONS_INX-COND_COUNT = cond_count.
CONDITIONS_INX-COND_TYPE = cond_type.
CONDITIONS_INX-UPDATEFLAG = 'U'.
CONDITIONS_INX-COND_VALUE = 'X'.
CONDITIONS_INX-CURRENCY = 'X'.
append conditions_inx.
CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
SALESDOCUMENT = salesdocument
ORDER_HEADER_IN = order_header_in
ORDER_HEADER_INX = order_header_inx
LOGIC_SWITCH = logic_switch
TABLES
RETURN = return
CONDITIONS_IN = conditions_in
CONDITIONS_INX = conditions_inx
if return-type ne 'E'.
commit work and wait.
endif.
ENDFORM. " saveTransactionJOCR
Bdc to Bapi
The steps to be followed are :
1. Find out the relevant BAPI (BAPI_SALESORDER_CHANGE for VA02).
[for VA01 use BAPI_SALESORDER_CREATEFROMDAT2]
2. Create a Z program and call the BAPi (same as a Funtion module call).
2. Now, if you see this BAPi, it has
-> Importing structures.
eg: SALESDOCUMENT: this will take the Sales order header data as input.
-> Tables parameters:
eg: ORDER_ITEM_IN: this will take the line item data as input.
Note :
Only specify fields that should be changed
Select these fields by entering an X in the checkboxes
Enter a U in the UPDATEFLAG field
Always specify key fields when changing the data, including in the checkboxes
The configuration is an exception here. If this needs to be changed, you need to complete it again fully.
Maintain quantities and dates in the schedule line data
Possible UPDATEFLAGS:
U = change
D = delete
I = add
Example
1. Delete the whole order
2. Delete order items
3. Change the order
4. Change the configuration
Notes
1. Minimum entry:
You must enter the order number in the SALESDOCUMENT structure.
You must always enter key fields for changes.
You must always specify the update indicator in the ORDER_HEADER_INX.
2. Commit control:
The BAPI does not run a database Commit, which means that the application must trigger the Commit so that the changes are read to the database. To do this, use the BAPI_TRANSACTION_COMMIT BAPI.
For further details... refer to the Function Module documentation for the BAPi.
Bapi to VB(Visual Basic)
Long back I had used the following flow structure to acheive the same.
Report -> SM59 RFC destination -> COM4ABAP -> VB.exe
my report uses the rfc destination to create a COM session with com4abap. com4abap calls the vb.exe and manages the flow of data between sap and vb exe.
You need to have com4abap.exe
If com4abap is installed you will find it in sapgui installatin directory , C:\Program Files\SAPpc\sapgui\RFCSDK\com4abap.
else refer OSS note 419822 for installation of com4abap
after making the settings in com4abap to point to the vb program and setting up rfc destination in sm59 to point to com4abap session , you can use the following function modules to call the vb code.
for setting up com4abap and rfc destination please refer to the documentation for com4abap.
Invoke NEW DCOM session
call function 'BEGIN_COM_SESSION'
exporting
service_dest = service_dest "(this will be a RFC destination created in SM59)
importing
worker_dest = worker_dest
exceptions
connect_to_dcom_service_failed = 1
connect_to_dcom_worker_failed = 2
others = 3.
call function 'create_com_instance' destination worker_dest
exporting
clsid = g_c_clsid
typelib = g_c_typelib
importing
instid = g_f_oid
exceptions
communication_failure = 1 message g_f_msg
system_failure = 2 message g_f_msg
invalid_instance_id = 3
others = 4.
call function 'com_invoke' destination worker_dest
exporting
%instid = g_f_oid
%method = 'UpdatePDF'
sntemp = g_v_const_filent
snsysid = sy-sysid
snflag = 'N'
tables
rssaptable = g_t_pdfdetail1
%return = g_t_pdfdetail1 "t_test
exceptions
communication_failure = 1 message g_f_msg
system_failure = 2 message g_f_msg
invalid_instance_id = 3
others = 4.
then close the com session , using
FM delete_com_instance
FM END_COM_SESSION
Regards,
Priyanka. -
hi.. whenever user creates PO in SAP i want to send data to JAVA based system..there is JCO in JAVA based system.for this i should use BAPI or is it possible using ALE/IDOC..which is most preferable and how to do
regards
shankarHai Shankar
check the following Document
Bapi to create customer master
BAPI_CUSTOMER_CREATEFROMDATA
BAPI_CUSTOMER_CREATEFROMDATA1
Or you can use FM SD_CUSTOMER_MAINTAIN_ALL
what is BAPI?
BAPI stands for Business API(Application Program Interface).
I have answered this question before..
A BAPI is remotely enabled function module ie it can be invoked from remote programs like standalone JAVA programs, web interface etc..
You can make your function module remotely enabled in attributes of Function module but
A BAPI are standard SAP function modules provided by SAP for remote access. Also they are part of Businees Objest Repository(BOR).
Please check out this thread..
Re: bapi
Also refer to the following links..
www.sappoint.com/abap/bapiintro.pdf
www.sap-img.com/bapi.htm
www.sap-img.com/abap/bapi-conventions.htm
www.planetsap.com/Bapi_main_page.htm
www.sapgenie.com/abap/bapi/index.htm
Checkout !!
http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html
http://techrepublic.com.com/5100-6329-1051160.html#
http://www.sap-img.com/bapi.htm
http://www.sap-img.com/abap/bapi-conventions.htm
http://www.sappoint.com/abap/bapiintro.pdf
Java Connector(JCO) can call not only BAPI's but also the function modules which are remotely enabled..
BAPI's as i said earlier are remotely enabled function modules..
Hence, JCO can call also BAPI's(n not only BAPI's as u mentioned).
Thanks & regards
Sreenivasulu P -
How to create a calender view in webdynpro java EP 7.0
Hi ,
I want to create a calender view in webdynpro,
Requirments are
1. it should be current month view
2. Below each day i want to show office in-time and out-time in two cloumns(these values will be coming tru RFCs).
ie
1
10am | 4pm
Is this possible in webdynpro java EP 7.0 ?
Please help me
Thanks
KumarHi Kumar,
If you are using EP7.0, there is no calendar UI element in webdynpro development. There is only date navigator UI element. This is demonstrated in the below article.
http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/c059344a-1930-2d10-6e8a-dcec5f94993e?quicklink=index&overridelayout=true
Regards,
Ganesh N -
CATS webdynpro Java - working times in weekly view
Hi Team
1. Start & end time in Weekly view : Requirement is to allow shift planning employees to enter their working times in weekly view itslef. But as I had discovered that it is possible to enter it only in dailuy view of webdynpro Java application in ERP 6.0.
I came across a better Webdynpro ABAP application which exactly fits the requirement but it is part of EHP5, getting a mini upgrade for one application was also rejected. is it possible to implement in a short period of time without great impact ..anybody experienced on this?
http://help.sap.com/erp2005_ehp_05/helpdata/EN/30/e67780e37f4f5a90105a9e9205660f/frameset.htm
So I am again back to finding way to enhance the weekly view.I read all teh therads...didnt find anyone successful
2. Default Attendance type & target hours & start & end times from Infotypes : CATS0002 exit is called only when we go to next step ,is there any other way to default as soon as CATS screen is loaded ?
Any help would be greatly appreciated & rewarded.
Thanks
Edited by: Nidhi Guglani on Mar 10, 2011 5:17 PM
Edited by: Nidhi Guglani on Mar 14, 2011 12:10 PMHi Suresh,
Thanks for your valuable inputs. I went and looked into the java file and found bit different.I dont see how they are getting the column headers like Saturday,Sunday,Monday...
Basically I need to keep one 'Submit' button on top of my table and on click, it should populate 8 hrs in the correspounding column.For eg. if its monday, it should default 8 hrs in monday column so that user dont have to manually type it in and also save these working hrs in the backend system without further click on 'Save' or 'Review'.
I still need to check with the ABAPers regading the user exit.
Also, Is it possible if I create a custom webdynpro application where I can use a BAPI that takes in the current day from my webdynpro and update the cats database and send an export parameter with success or error message.
Thanks
Anjana -
Passing Changed extended fields using ALE-IDOC to receiving system
Hi all,
Please tell me how passing changed extended fields using ALE-IDOC to receiving system can be achieved. Is it possible by Chnage pointer concept.Do i need to do some coading after data enters into receiving system as it is required while creating the entries in database table.
For ex. in matmas05 extended for classification and inspection view and then created using 'CREATION'
related bapi.Do i also need to incorporate the changes by change related bapi or ir can be handled by change pointer concept.
Thanks.Hi Sanu
1) Please tell me how passing changed extended fields using ALE-IDOC to receiving system can be achieved. Is it possible by Chnage pointer concept.
=> Looks like you have extended standard IDOC here. so you need to find User Exit or BADI for the Push program to populate the additional fields. Yes, it is possible thru change pointers as well.
1) Do i need to do some coading after data enters into receiving system as it is required while creating the entries in database table.
=> Yes, as suggested in 1 try finding User Exits/BADIs.
Regards
Shital -
Data transfer using ALE/IDOC into XML.
Dear All,
I have to transfer FI document data (FB01) from the sap system ,convert it into XML and dump it in 1 of the file servers.I want to do this using ALE/IDOC.Is it possible to do the same and how.Similarly i want to do the same for Vendor and Customer master i.e sending the data in XML format.
Kindly Suggest how do i go about doin the same..Its very urgent.Please help.
Thanks & Regards,
Lailu Philip.In continuation:
Example Purchasing & Selling scenario
We will develop a custom IDoc to carry the billing number from the Service Receivers system to the Service Providers system. We will populate the IDoc in a user exit on the sending side and we will process the transaction on the receiving side using a custom function module and a BDC transaction call.
No rule conversion, segment filtering or version conversion will be implemented in the model as described in Figure 1.
Requirements
Working ALE environment - See ALE Basis Configuration Guide;
ALE scenario design together with the business requirement;
Development access; and
ALE configuration access.
NOTES:
1. All IMG references to transactions are located in the transaction SALE which is the ALE portion of the IMG
2. This is one way of developing a scenario where no message control exists. If message control exist (EG. On purchase orders) then NAST can be used to call an outbound function module that would create the required IDocs.
3. Extensive knowledge of IDocs and ALE basis configuration is required in order to understand this guide.
2. OUTBOUND PROCESSING
2.1. Create IDoc type (WE30) Client independent
The IDoc type refers to the IDoc structure that you will require for your development. In our case the IDoc type is called ZINVRV01. This IDoc type will have 1 segment called Z1INVRV with 2 fields, LIFNR & XBLNR, in this segment. If you require many segments or nested segments then they are also created using the same procedure.
We will create the IDoc of the following structure:
ZINVRV01
Purchasing and Selling - Invoice receipt reversal
Z1INVRV P&S - Segment 1
Segment fields
LIFNR Vendor account number
XBLNR Reference document number
Figure 3: IDoc type ZINVRV01
To create the IDoc type, follow these next few steps:
Enter transaction WE30 (ALE -> Extensions -> IDoc types -> Maintain IDoc type)
Type in ZINVRV01 and click on Basic IDoc type, click the Create icon
Click on Create new (we are creating an IDoc from scratch but you may want to copy another IDoc if it is similar to your requirements) and enter a description, and press enter
Click on ZINVRV01 and then on the Create icon
Enter Z1INVRV as the segment type (must start with Z1), check mandatory if the segment must exist (in this case check it), enter 1 in minimum number and 1 as maximum number. (Make the maximum number 9999999999 if there are going to be many of these segments in each IDoc. IE. When line items are passed via IDocs), click on Segment editor
Enter a description for your segment type and create
Enter a description for your segment, enter each field required in your IDoc, in our case type LIFNR across for Field name, DE structure and DE documentation, repeat for XBLNR and press enter to validate.
Save and generate, press back
To release the segment choose Goto, Release from the menu
Check the box on the line of your new segment
Save, back and enter
Your IDoc type structure should be displayed with your new segment
Save and back
To release the IDoc type choose Extras, Release type from the menu and Yes
Your IDoc is now ready for use. If you need to add fields or segments to your IDoc type, you will need to cancel the release of the IDoc type as well as the segment release using a similar procedure followed above (except now you uncheck the release box for the segment and you choose cancel release for the IDoc type).
2.2. Create message type (WE81) Client independent
To create a new message type, follow these next few steps:
Enter transaction WE81 (ALE -> Extensions -> IDoc types -> Maintain message type for intermed. Structure -> Create logical message type)
Choose Create logical message type by double clicking on it
Click on change icon to enter change mode
Click on New entries to add a new type
Enter the required message type, in our case it is ZINVRV and an appropriate description
Save and exit.
Your message type has now been created. The next step will be to link it to the IDoc.
2.2.1. Link message to IDoc type (WE82 & BD69) Client independent
To link the message type to the IDoc type follow these next few steps:
Enter transaction WE82 (ALE -> Extensions -> IDoc types -> Maintain message type for intermed. Structure -> EDI: Message Types and Assignment to IDoc Types)
Click on change icon to enter change mode
Click on New entries to create the link
Enter the message type ZINVRV and the BasicIDoc type as ZINVRV01
Save and exit
Enter transaction BD69 (ALE -> Extensions -> IDoc types -> Maintain message type for intermed. Structure -> Assign message type to IDoc for ALE)
Click on change icon to enter change mode
Click on New entries to create the link
Enter the message type ZINVRV and the BasicIDoc type as ZINVRV01
Save and exit
Your IDoc is now linked to your message type. We still need to link object types and add the message to the model before we can use the message.
2.2.2. Maintain object type for message type (BD59) Client independent
The ALE objects are used to create links between IDocs and applications objects, to control the serialisation, to filter messages in the customer model and to use listings.
For our own message type and IDoc you must maintain object types for the links.
If you want to check the serialisation for the message type, then you must maintain object types for the serialisation. If no serialisation object has been maintained for a given message type, then the serialisation will not be checked for this message type.
To add an object type to our message type, follow these next few steps:
Enter transaction BD59 (ALE -> Extensions -> ALE object maintenance -> Maintain object types)
Type in your message type ZINVRV and press enter
Click on New entries
Enter your object type, LIFNR (We need to use the vendor as a filter object), the segment name where LIFNR resides, Z1INVRV, a number 1 for the sequence followed by the actual field name LIFNR
Save and exit.
You have now created an object that well use as a filter object in the customer model to direct the flow of messages to the various logical systems based on the vendors in the filter of the message type ZINVRV.
We now need to add our new message type to the distribution model.
2.3. Configuring the Distribution Model
This task is performed on your ALE reference client.
2.3.1. Manual Configuration (BD64) Client dependent
To manually configure the customer distribution model, read the ALE configuration procedure, and follow these steps:
Perform the Maintain customer distribution model directly function. (ALE -> Distribution customer model -> Maintain customer distribution model directly)
Specify the customer model you want to maintain and the logical system that is to be the sender of the messages OR create a new model. (Create model ALE with logical system ALELS1C400)
Choose the receiving systems to which the sending system must forward message type ZINVRV to.
For each receiving logical system allocate the message type necessary for communication to the receiving systems as per ALE configuration procedure.
Create filter objects (in our case LIFNR as the object type with the associated vendor number, 0000018001 with leading zeros, in the object area) for the message types.
Save the entries.
NOTES:
You cannot maintain a message type between the same sender and receiver in more than one customer distribution model.
Only the owner is authorised to modify the model.
To change the owner of a model, choose the 'Maintain ownership of customer distribution model' function. Make sure that all changes will be distributed to all systems that know the corresponding model. To do so, you can use the correction and transport system.
To transport the customer distribution model you should use the Distribute customer model function of the IMG as described below.
2.3.2. Distribute customer model (BD71) Client dependent
After the customer model has been created centrally, it must be distributed to the other remote systems. This entails first of all setting up the communication for the distributed systems and then sending the model.
2.3.2.1. Distribute Model (BD71) Client dependent
This task is performed on your ALE reference client. To distribute the customer distribution model, read the ALE configuration procedure and follow these steps:
Make the settings for the communication with the other decentral systems, you have not set them yet.
Define the RFC destination for R/3 connections whose names correspond to the name of the corresponding logical system.
Create the output partner profile.
Distribute the customer model
Specify the name of the customer model.
You must specify the target system to which you want to distribute the customer model.
You must repeat this function for every distributed logical system.
2.3.2.2. Maintain sending system partner profile (WE20) Client dependent
With this function, you define the partner profiles for all outbound and inbound messages on the basis of the customer distribution model.
After you have defined and distributed the customer model, you will have to maintain the partner profiles locally. To do this read the ALE configuration procedure.
Enter the output mode (background, immediately) and the package size for outbound processing.
Requirements
The customer model must be maintained.
RFC destinations must be maintained.
The customer model must be distributed.
To ensure that the appropriate persons in charge are informed if a processing error occurs, you must make settings in: Error processing Maintain organisational units.
2.4. Populate & distribute IDoc using ABAP
An IDoc consists of a control record with structure edidc and one or more data records with structure edidd. The control record contains the sender and recipient of the IDoc, as well as information on the type of message.
To be able to pass an IDoc to the ALE layer, you must set up a field string with structure edidc and an internal table with structure edidd. They are used to call function module master_idoc_distribute, which performs the save to the database and triggers the dispatch if necessary.
2.4.1. Example code
The code displayed below does the following:
populates our IDoc segment Z1INVR with the 2 fields XBLNR and LIFNR, populates the segment name and appends this to an internal table used to store the IDoc data;
populates the control record info with the message type and IDoc type; and
calls the MASTER_IDOC_DISTRIBUTE function module which distributes the IDoc as configured in the customer distribution model.
Data declaration statements
DATA: C_INVREV_SEGNAME(7) TYPE C VALUE 'Z1INVRV',
C_INVREV_MESTYPE(6) TYPE C VALUE 'ZINVRV',
C_INVREV_IDOC_TYPE(8) TYPE C VALUE 'ZINVRV01',
Z1INVRV LIKE Z1INVRV,
C_INVREV_DOCTYPE LIKE BKPF-BLART VALUE 'YY',
IDOC_CONTROL LIKE EDIDC,
T_COMM_CONTROL LIKE EDIDC OCCURS 0 WITH HEADER LINE,
IDOC_DATA LIKE EDIDD OCCURS 0 WITH HEADER LINE.
Move the document header into a structure
LOOP AT DOC_HEAD_TAB INTO DOC_HEAD.
ENDLOOP.
Move the document item data into a structure
LOOP AT DOC_ITEM_TAB INTO DOC_ITEM WHERE NOT ( LIFNR IS INITIAL ).
ENDLOOP.
Populate the IDoc segments field with the required data
CLEAR Z1INVRV.
Z1INVRV-LIFNR = DOC_ITEM-LIFNR. Store vendor number for filter
Z1INVRV-XBLNR = DOC_HEAD-XBLNR. Billing number
IDOC_DATA-SEGNAM = C_INVREV_SEGNAME. Segment name
IDOC_DATA-SDATA = Z1INVRV. Segment data
APPEND IDOC_DATA. Populate IDoc internal table
Move the control data info required for the distribution
IDOC_CONTROL-MESTYP = C_INVREV_MESTYPE.
IDOC_CONTROL-DOCTYP = C_INVREV_IDOC_TYPE.
Call the distribute function with the required parameters
CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE' IN UPDATE TASK
EXPORTING
MASTER_IDOC_CONTROL = IDOC_CONTROL
TABLES
COMMUNICATION_IDOC_CONTROL = T_COMM_CONTROL
MASTER_IDOC_DATA = IDOC_DATA
EXCEPTIONS
ERROR_IN_IDOC_CONTROL = 1
ERROR_WRITING_IDOC_STATUS = 2
ERROR_IN_IDOC_DATA = 3
SENDING_LOGICAL_SYSTEM_UNKNOWN = 4
OTHERS = 5.
Figure 4: Outbound processing example code
NOTE:
For debugging purposes, use transaction WE05 (IDoc overview) to see check your IDoc status, or to see whether an IDoc was created/
3. INBOUND PROCESSING
3.1. Create Function Module
This function module is called when a message type, of type ZINVRV, comes into the receiving system. This needs to be configured and is dealt with later in this section. The function module is passed the IDoc as a parameter.
Example parameters
Import parameters Reference field Opt Y/N
INPUT_METHOD BDWFAP_PAR-INPUTMETHD N
MASS_PROCESSING BDWFAP_PAR-MASS_PROC N
Export Parameters Reference field Opt Y/N
WORKFLOW_RESULT BDWFAP_PAR-RESULT N
APPLICATION_VARIABLE BDWFAP_PAR-APPL_VAR N
IN_UPDATE_TASK BDWFAP_PAR-UPDATETASK N
CALL_TRANSACTION_DONE BDWFAP_PAR-CALLTRANS N
Table Parameters Reference field Optional Y/N
IDOC_CONTRL EDIDC
IDOC_DATA EDIDD
IDOC_STATUS BDIDOCSTAT
RETURN_VARIABLES BDWFRETVAR
SERIALIZATION_INFO BDI_SER
Exceptions
WRONG_FUNCTION_CALLED
Example code
The code displayed below does the following:
populates a BDC table with the IDoc info;
calls the transaction via a BDC call; and
updates the IDoc status according to the BDC error status.
EXTRACT FROM: Z_IDOC_INPUT_ZINVRV
Declaration of local variables
DATA: C_SEGNAM(10) TYPE C VALUE 'Z1INVRV'.
*-Loop through the IDOCs
LOOP AT IDOC_CONTRL.
*---Loop through the data for the IDOC
LOOP AT IDOC_DATA WHERE DOCNUM = IDOC_CONTRL-DOCNUM.
CASE IDOC_DATA-SEGNAM.
WHEN C_SEGNAM.
Here we get the info from the idoc table
IT_Z1INVRV = IDOC_DATA-SDATA.
ENDCASE.
PERFORM REV_INV.
ENDLOOP.
PERFORM UPDATE_IDOC_STATUS.
ENDLOOP.
FORM REV_INV "Reverse invoice form
Local variables & constants
DATA: C_TCODE LIKE BKPF-TCODE VALUE 'VF11'. "BDC transaction code
Now we can build the bdc table to call the reversal transaction start of screen 109
CLEAR BDC_TAB.
BDC_TAB-PROGRAM = 'SAPMV60A'.
BDC_TAB-DYNPRO = '109'.
BDC_TAB-DYNBEGIN = 'X'.
APPEND BDC_TAB.
Document number
CLEAR BDC_TAB.
BDC_TAB-FNAM = 'KOMFK-VBELN(01)'.
BDC_TAB-FVAL = IT_Z1INVRV-XBLNR. "Billing document number
APPEND BDC_TAB.
OK Code for screen 109
CLEAR BDC_TAB.
BDC_TAB-FNAM = 'BDC_OKCODE'.
BDC_TAB-FVAL = 'SICH'.
APPEND BDC_TAB.
Now we can call transaction 'VF11' with the populated bdc table. The transaction is called inside the idoc-contrl loop, so a transaction will be called for every idoc (journal). the transaction is called in no-display mode ('N') because this code runs in background as it is called by ale. The update is specified to be synchronous ('S') because we have to wait for the result to update the idoc status correctly.
CALL TRANSACTION C_TCODE USING BDC_TAB MODE 'N' UPDATE 'S'.
Store the return code for use in another form (status update)
RETURN_CODE = SY-SUBRC.
Here we check the return code, if there was an error, we put the transaction in a bdc session for the user to review and correct.
IF SY-SUBRC NE 0.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
GROUP = 'ZINVRV'
USER = C_ALE_USER
KEEP = 'X'.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = C_TCODE
TABLES
DYNPROTAB = BDC_TAB.
CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
NOT_OPEN = 1
QUEUE_ERROR = 2
OTHERS = 3.
ELSE. "No problems
C_EXISTS = 'N'.
Select from the billing document table to get sales doc number
SELECT * FROM VBRP WHERE VBELN = IT_Z1INVRV-XBLNR.
Select from the sales document table to get user status number
SELECT SINGLE * FROM VBAP WHERE VBELN = VBRP-AUBEL AND
POSNR = VBRP-AUPOS.
Select from the status table to change the user status to pending
SELECT * FROM JEST WHERE OBJNR = VBAP-OBJNR AND
STAT LIKE C_USER_STATUS.
IF JEST-STAT = C_US_PENDING. "User status is pending
JEST-INACT = C_UNCHECKED. "Make pending the active status
UPDATE JEST.
C_EXISTS = 'Y'. "I.E. An entry is already in table
ELSEIF JEST-INACT = C_UNCHECKED AND JEST-STAT NE C_US_PENDING.
JEST-INACT = C_CHECKED. "Make everything else inactive
UPDATE JEST.
ENDIF.
ENDSELECT.
IF C_EXISTS = 'N'. "I.E. Pending has never been a status before
JEST-OBJNR = VBAP-OBJNR.
JEST-STAT = C_US_PENDING.
JEST-INACT = C_UNCHECKED. "Make pending the active status
INSERT JEST.
ENDIF.
ENDSELECT. "Select from VBRP (Billing document table)
ENDIF.
ENDFORM. " REV_INV
FORM UPDATE_IDOC_STATUS.
Now we check the CALL TRANSACTION return code and set IDOC status
CLEAR IDOC_STATUS.
IF RETURN_CODE = 0.
WORKFLOW_RESULT = '0'.
IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
IDOC_STATUS-STATUS = '53'.
IDOC_STATUS-UNAME = SY-UNAME.
IDOC_STATUS-REPID = SY-REPID.
IDOC_STATUS-MSGTY = SY-MSGTY.
IDOC_STATUS-MSGID = SY-MSGID.
IDOC_STATUS-MSGNO = SY-MSGNO.
IDOC_STATUS-MSGV1 = SY-MSGV1.
IDOC_STATUS-MSGV2 = SY-MSGV2.
IDOC_STATUS-MSGV3 = SY-MSGV3.
IDOC_STATUS-MSGV4 = SY-MSGV4.
RETURN_VARIABLES-WF_PARAM = 'Processed_IDOCs'.
RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.
APPEND RETURN_VARIABLES.
ELSE.
WORKFLOW_RESULT = '99999'.
IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
IDOC_STATUS-STATUS = '51'.
IDOC_STATUS-UNAME = SY-UNAME.
IDOC_STATUS-REPID = SY-REPID.
IDOC_STATUS-MSGTY = SY-MSGTY.
IDOC_STATUS-MSGID = SY-MSGID.
IDOC_STATUS-MSGNO = SY-MSGNO.
IDOC_STATUS-MSGV1 = SY-MSGV1.
IDOC_STATUS-MSGV2 = SY-MSGV2.
IDOC_STATUS-MSGV3 = SY-MSGV3.
IDOC_STATUS-MSGV4 = SY-MSGV4.
RETURN_VARIABLES-WF_PARAM = 'ERROR_IDOCS'.
RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.
APPEND RETURN_VARIABLES.
ENDIF.
APPEND IDOC_STATUS.
ENDFORM. " UPDATE_IDOC_STATUS
Figure 5: Inbound processing example code
3.1.1. Debugging inbound FM
Use transaction WE19 to test inbound function module in debugging mode. Also use WE05 to view the IDocs and their statuses.
3.2. Maintain ALE attributes
The inbound function module needs to be linked to the message type and the message type needs to be linked to the appropriate inbound process code at the partner profile level before the scenario is enabled. These steps are described below in detail.
3.2.1. Link Message Type to Function Module (WE57) Client independent
To link a message (ZINVRV) type to a function module (Z_IDOC_INPUT_ZINVRV) follow these steps:
Enter transaction WE57 (ALE -> Extensions -> Inbound -> Allocate function module to logical message)
Select an entry (EG. IDOC_INPUT_ORDERS) and copy
Type in module name Z_IDOC_INPUT_ZINVRV
Type in basic IDoc type as ZINVRV01
Type in message type as ZINVRV
Type object type as IDOCINVOIC (Invoice document) - Used for workflow
Direction should be set to 2 for inbound
Enter and save
3.2.2. Define FM settings (BD51) Client independent
Enter transaction BD51 (ALE -> Extensions -> Inbound -> Define settings for input modules)
Click on New entries
Type in the name of the new function module Z_IDOC_INPUT_ZINVRV
Enter 0 for mass processing in the output column
Save and Exit
3.2.3. Maintain process codes (WE42) Client dependent
A process code needs to be maintained on each client. It then needs to be linked to the message via the partner profiles on each client. This allows the various clients to use a unique function module for the same message type.
To maintain the process code follow these steps:
Log on to the appropriate receiving system client
Execute WE42 (ALE -> Extensions -> Inbound -> Maintaining process codes inbound)
Choose Inbound with ALE service
Choose Processing with function module
Click on Processing with function module and choose create icon
Click on New Entries
Type in process code ZINR and give it a description and save
Now you are asked to Please maintain codes added in ALE entry methods, enter and choose Z_IDOC_INPUT_FIRVSL and copy it. You should choose a FM similar to your one.
Enter your process code ZINR
Enter your function module Z_IDOC_INPUT_ZINVRV
NOTE: The next 6 steps are used in workflow error handling.
Enter IDPKFIDCMT in object type
Enter MASSINPUTFINISHED in End event
Enter IDOCINVOIC in IDoc object type
Enter INPUTERROROCCURREDFI in IDoc start event
Enter INPUTFINISHEDFI in IDoc End event
Enter IDOCINVOIC in Application object type
You will need to determine the task associated with object IDOCINVOIC, and then assign the appropriate position to it. This position will then receive the application error messages via workflow.
To set up the workflow area please consult the Workflow config guide.
3.3. Create inbound partner profile
For each message type you need to maintain the inbound partner profiles.
3.3.1. Maintain receiving system partner profile (WE20) Client dependent
To maintain inbound partner profiles read the document ALE configuration procedure:
Add the message type ZINVRV with process code ZINR.
Enter the output mode (background, immediately) for inbound processing and NO message code.
Enter the position S and choose the ALE administrator 50000085. This position will then receive all the technical ALE errors via workflow.
3.4. Test
Once the inbound function module has been debugged the scenario should be ready to test in its entirety. If problems occur, read through the relevant areas of this document to check your configuration or code.
Hope this will help you,
If you want me to explain more, you can give me your email id.
Reward with points incase you are satisfied.
Regards,
Sushama -
Build gui for existing oracle database tables with webdynpro java?
hi
i want to build a GUI to maintain existing oracle tables
so far we used oracleFORMS to do so
is there a good approach for webdynpro java? or do you recommend other sap tools?
can we generate the gui with a wizard based on the fields in the table?
do we have to generate sql statements or type in manually?
regards
joergHi Joerg,
generally that is possible, but you'll have to implement the data access by yourself, by means of EJB or another Java persistance framework such as JDO, SQLMaps, Hibernate, whatever...
Web Dynpro allows to build a GUI based upon a model - in this case this could be some POJOs (DTOs) representing your database tables, which are communicated to the GUI by your data access layer. Consider a model as a simple Java bean representing database data.
This approach would require to build a data access layer which incorporates manually generated sql statements, so you'll have to have expert database and java knowledge.
There might be other approaches, this is just to demonstrate one working possibility.
regards,
Christian -
How to use "Select options" in Webdynpro Java ?
HI experts ,
I want know if can be implemented "select options" like the ones used in R3 - ABAP in a webdynpro Java.
And in case of being possible, how to implemented using Adaptive RFC or BAPI with a R3 backend system?
Our Portal is EP6.0 SP18 ,J2EE 6.40 .
Thanks & Regards,
Jianguo ChenHi Jianguo,
check these links:
<a href="http://help.sap.com/saphelp_nw04/helpdata/en/5f/e5de3f68d48f15e10000000a155106/frameset.htm">http://help.sap.com/saphelp_nw04/helpdata/en/5f/e5de3f68d48f15e10000000a155106/frameset.htm</a>
You may use 2 EVS to simulate your select option.
Regards,
Gianluca Barile -
ALE/IDOC and RFC/BAPI Integration Scenarios with SAP DS for ESA v3
Hi,
we are planning two PoCs of Integration Plattforms. One of our major requirement set is SAP Integration into our existing SOA.
Because we also have R/3 4.7 Systems in production, we are planning to test ALE/IDOC and RFC/BAPI Integration scenarios with these Integration Plattforms.
My question is:
We are looking for are smart solution to get a SAP Test Environment, where we can test ALE/IDOC und RFC/BAPI Integration scenarios.
It is possible to do this with SAP DS for ESA v3 or shall we better use IDES for that purpose?
Best regards,
StevenHi Abhishek,
This is our scenario. We are doing an integration of SAP HR r/3 system with the CRM system. We need housing information details of the employees which we have in custom infotype 9310 in SAP HR system and we need those details in the CRM system. So am planning out for an ALE/IDOC approach for the integration and gonna maintain the 9310 details in a custom table. In the CRM system, we gonna build a BOL layer for accessing the 9310 details. Also i'm preparing a HLD for this process. I wanna read and go through few same HLD's before i submit my proposal to my client. Please suggest me and help me out.
Thanks in advance.
Regards,
Arunmozhi.
Maybe you are looking for
-
I have Windows 7 and FireFox 24.0 I am trying to make a standard Microsoft Media Video file .MWV run. When I click on the video link to plant the video I get a message saying I need a plugin to run the file. I have already run in the install program
-
Lightroom CC does not start on MAC
I downloaded the version of Lightroom CC for Mac and start the program makes an attempt to get the initial welcome screen and the program closes. Made several attempts and does the same. I uninstalled and reinstalled and behaves the same. Lightroom 5
-
Applescript to activate a Mail rule
Hi I have set up an out of office rule for someone in our studio but it needs to be activated and deactivated every Monday. I have CronniX which can handle the activation of the script but i'm banging me head trying to find a script that activates a
-
Extend wireless network with multiple airport express and netgear powerline
I currently have the following network configuration: 1. Using ATT u-verse (2-wire 3800HGV-B "modem") to internet 2. Disabled the u-verse modem wireless router, and have connected an Apple Time Capsule wireless router (on a DMZ) 3. Have four Netgear
-
I need to delete some titles in the left hand sidebar in finder