migrating sap smart forms to adobe forms

Upload: muhammad-javeed

Post on 31-Oct-2015

212 views

Category:

Documents


13 download

DESCRIPTION

Migrating SAP Smart Forms to Adobe Forms

TRANSCRIPT

Migrating SAP Smart forms to Adobe Forms:By Phani Diwakar, YASH Technologies

This document gives an idea about migration of a smart form to an interactive form. Step1: Go to transaction code SMARTFORMS and select the smart form to be converted into print adobe form.

Here the form name is ZTEST1. Step2: Go to the next screen by clicking display button. A text element and table are defined in this existing smart form. Step3: Output of the smart form ZTEST1 is: Step4: Now go to Utilities-(Migration--(Interactive Form-(Export in the initial screen of the smart form as shown below. You will get popup. Step5: Provide form name and interface name and click enter. Step6: You will get settings window as shown below. Select the necessary check boxes. Select OK button. It asks for package and provides the package. Save it. Step7: Now go adobe form initial screen. Provide the interface name as mentioned above.

Step8: Go to properties tab. You get the default interface type is Smart forms-Compatible Interface as shown. Activate the interface and come out to initial screen. Step9: Now provide the form name mentioned above in the initial screen. Step10: Click on change button and following screen appears.

Delete the unnecessary empty folder from the context menu. Now, Step11: Go to layout tab, Step12: Now go to properties tab, When you try to activate the form, it gives some error message as Unknown Layout Type. Change the layout type to Standard Layout as shown. Activate the form and execute it Step13: The output would be . 17. Demo scenario on Adobe Interactive Forms using ABAP WebDynpro - Part1:By G.K.Akbar, The Washington Post

I have created a table ZDEPT with just three fields; I will be creating an Adobe form for these three fields and will be updating this table using ABAP Web Dynpro framework. Go to transaction SE80 and create a web dynpro component ZADOBE. Enter the details in the popup window as shown below Assign a package to the application or save as a local object You can see Component controller, Interface controller and window being created Create a View as shown below Give the view name as MAIN_VIEW as show below You can see the main view being created. Go to the context tab of the MAIN_VIEW and create a empty node.

Give the name of the Node as Adobe and press enter as shown below. You can see the node Adobe being created below. Create another node under the node adobe as shown below. Give the name of the node as ZDEPT and Dictionary structure as ZDEPT and press the button Add Attribute from Structure. Select the Fields as shown below and press enter. You can see the node ZDEPT with three fields being created under the node ADOBE. Now create an attribute PDF_SOURCE under the root node CONTEXT as shown below

Give the Attribute Name as PDF_SOURCE and the type XSTRING as shown below You can see all the nodes that we have created; your screen should appear like the one shown below. Go to the Layout tab of the MAIN VIEW and create a place holder for the adobe form, Right click on the ROOTUIELEMENTCONTAINER select insert Element from the context window as shown below. Enter the details in the POPUP window, give the name of the place holder as ADOBE and type InteractiveForm as shown below. You can see the placeholder ADOBE being created, check the CHEKBOX enabled in the property list, this is a required entry for an interactive form, (an activex control Active Control Framework will be automatically downloaded on to the client from the server when the web page is first called). Increase the height to 500px and width to 500px as shown below. Click on the button in the property list for the property pdfSource and select the node PDF_SOURCE from the context window.

In the property List for template Source property give the name of the adobe form ZADOBE that we will be creating during this session and double click on it.

In the POPUPwindow, give the adobe form interface name ZADOBE as shown below and press on the Context button as shown below.

Select the Node Adobe from the context window as shown below.

Save the application as local object. Press the button Save to save the main view. You can see the Adobe form application with our web dynpro context node ZDEPT being mapped to the context of the Adobe form in the Data view tab. Just Drag and Drop the ZDEPT Node on to the form, in the subform tab of the object make the content as Flowed as shown below Drag and Drop Text from the Library pallet and enter the text as you wish Drag and Drop the Submit button on the form as shown below

Just select the event click* and language JavaScript and run at client (No coding is required) Now save and just activate the Form and the interface as shown below. Go to the properties page of the form and double click on the interface ZADOBE you can see the XML Schema You can see the XML Schema interface (You can have three types of interfaces Abap dictionary interface, Smart form compatible interface and XML interface) for interactive forms using WebDynpro you have to use the XML Schema interface. Press the back button to go back to our web dynpro application. Now we are back to our web dynpro application.

Select the window ZADOBE as shown below Drag and Drop the MAIN_VIEW on to the window Go to the Main View layout tab and select the node ADOBE and in the property list Under Events click on the create button for the event onsubmit as shown below

Give the name of the action as CLICK and press enter. Go to the Actions tab of the MAIN_VIEW you can see the Action Click, double click on the action CLICK.

You can see the Method ONACTIONCLICK. Here you can code your business logic, you can call a BAPI or a function module based on the requirement. We are going to code for inserting the values into the table zdept, the values will come from our adobe form.

Copy the below code and paste it in the method. methodONACTIONCLICK.

data:Node_AdobetypereftoIf_Wd_Context_Node,Node_ZdepttypereftoIf_Wd_Context_Node,Elem_ZdepttypereftoIf_Wd_Context_Element,Stru_ZdepttypeIf_Main_View=>Element_Zdept.datawa_zdepttypezdept.*navigatefromtovialeadselectionNode_Adobe=wd_Context->get_Child_Node(Name=IF_MAIN_VIEW=>wdctx_Adobe).

*navigatefromtovialeadselectionNode_Zdept=Node_Adobe->get_Child_Node(Name=IF_MAIN_VIEW=>wdctx_Zdept).

*getelementvialeadselectionElem_Zdept=Node_Zdept->get_Element().

*getalldeclaredattributesElem_Zdept->get_Static_Attributes(importingStatic_Attributes=Stru_Zdept).

wa_zdept-DEPTNO=Stru_Zdept-deptno. wa_zdept-DNAME=Stru_Zdept-dname. wa_zdept-LOC=Stru_Zdept-loc.

insertintozdeptvalueswa_zdept.

endmethod. Your Screen should look like the one shown below.

Now Save and Activate the Webdynpro. Create a Web dynpro application as shown below. Just right click on the node ZADOBE and from the context window select create(Web Dynpro Application. Enter the Application name as zadobe as shown below. Save the Web dynpro application as local object

Go to the MAIN_VIEW Actions tab and keep a session break point in the code, to just see if our code is being executed when we submit the data from the adobe form. Now we will test the application, right click on the node zadobe and select test from the context window. Logon with your credentials; give your username and password You can see the Adobe form that we have designed, enter the data as shown below and press the submit button. (As I said earlier an activex control will be installed on to the client machine, you can see the activex control in the internet explore go to the menu: Tools(Internet options(go to the programs tab (Press button Manage add-ons. You can see an activex control named SAP ACF, if you dont have this control you will not see this page: Note you need to have adobe acrobat reader 7.1 installed, I have used version 9, the activex control was not working properly so down graded my adobe reader to 7.1) Press F8 to continue. You can see the entry in the table ZDEPT being updated.

18. Demo scenario on Adobe Forms using ABAP WebDynpro - Part 2

By G.K.Akbar, The Washington Post

In the earlier example, we have created a WebDynpro application to populate the data into the custom table ZDEPT. In this, we would display the data from the ZDEPT using ABAP WebDynpro. Following are the contents of the table: Create a table type ZDEPTTBL for table ZDEPT Go to transaction SFP and create a from interface ZDEPTINF as shown below Select the Interface type as ABAP Dictionary-Based Interface, this time we are not going to use the XML schema based interface, this is to demonstrate that we can make use of any of the existing forms inside the Web Dynpro. Save the Interface Create Transport for the Interface Enter the Import parameter ZDEPT and type ZDEPTTBL. Save and activate the interface Create the form ZDEPFRM Enter the Interface Name as ZDEPTINF Save the form

Drag and drop the Node ZDEPT onto the context Go to the Layout tab and Drag & Drop the ZDEPT node on to the form layout, Save and Activate the form You can also create a Report program (Print Program) and call the above mentioned form, but we are going to write the print program logic in the Web Dynpro. Go to transaction SE80 and create a Web Dynpro component Z_NON_INT_FRM. Press Yes to create the object Enter the details as show below and press enter Save and enter a workbench request You can see the Component Controller, Interface controller and window being created Create a view as shown below: Give the Name of the View as MAIN_VIEW

Go to the layout tab of the MAIN_VIEW and create a place holder for the adobe form as shown below Give the name of the node as adobe and type Interactive form

In the properties list set the Height and width and the template source as ZDEPFRM this is the actual name of the adobe form which we have created earlier, you can see the interface context is automatically mapped to the data source.

You can see the mapped data source in the context tab of the MAIN_VIEW Go to the Methods table of the MAIN_VIEW and double click on the WDDOINIT method, We are going to write the print programs logic in this method, we are not going to use the standard function modules that we use normally in the Report print program such as FP_JOB_OPEN, FP_FUNCTION_MODULE_NAME, FP_JOB_CLOSE. Copy and Paste the below given code in the method. methodWDDOINIT.data:Node_ZdepfrmtypereftoIf_Wd_Context_Node,Elem_Zdepfrm typereftoIf_Wd_Context_Element,Stru_ZdepfrmtypeIf_Main_View=>Element_Zdepfrm,Item_ZDEPTlikeStru_Zdepfrm-ZDEPT,i_depttypezdepttbl.*navigatefromtovialeadselectionNode_Zdepfrm=wd_Context->get_Child_Node (Name=IF_MAIN_VIEW=>wdctx_Zdepfrm).

*@TODOhandlenotsetleadselectionif(Node_Zdepfrmisinitial).endif.

*getelementvialeadselectionElem_Zdepfrm=Node_Zdepfrm->get_Element().

*@TODOhandlenotsetleadselectionif(Elem_Zdepfrmisinitial).Elem_Zdepfrm=Node_Zdepfrm->create_element().endif.

select*fromzdeptintotablei_dept.Item_Zdept=i_dept.

*getsingleattributeElem_Zdepfrm->set_Attribute(exportingValue=Item_ZdeptName=`ZDEPT`).Node_Zdepfrm->bind_element(Elem_Zdepfrm).

endmethod. Go to the window Z_NON_INT_FRM and select the window tab as shown below Drag and Drop the MAIN_VIEW on to the window Save and activate the Web Dynpro

Create a Web Dynpro application as show below Enter the name of the application Z_NON_INT_FRM and save the application Test the Web Dynpro application Logon with you credentials enter the username and password. You can see the output in the form below.