<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ABAP Tutorials &#187; Function Modules</title>
	<atom:link href="http://www.abap-tutorials.com/category/function-modules/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.abap-tutorials.com</link>
	<description>ABAP Tutorials, Guides, Training, Manuals</description>
	<lastBuildDate>Thu, 17 Nov 2011 07:43:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Display a Popup and Get Values from User</title>
		<link>http://www.abap-tutorials.com/2011/09/23/display-a-popup-and-get-values-from-user/</link>
		<comments>http://www.abap-tutorials.com/2011/09/23/display-a-popup-and-get-values-from-user/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 12:19:32 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[ABAP]]></category>
		<category><![CDATA[Function Modules]]></category>
		<category><![CDATA[Quick Reference]]></category>
		<category><![CDATA[Report]]></category>
		<category><![CDATA[Sample Code]]></category>
		<category><![CDATA[Selection-Screen]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[function module]]></category>
		<category><![CDATA[get value from user]]></category>
		<category><![CDATA[popup]]></category>
		<category><![CDATA[POPUP_GET_VALUES]]></category>

		<guid isPermaLink="false">http://www.abap-tutorials.com/?p=1948</guid>
		<description><![CDATA[In some cases, we are needed to get some inputs from the user at run-time of an application based on certain dynamic conditions. Function Module POPUP_GET_VALUES can be used to display a popup to get inputs from user. The specialty of this function module is we can add as many number of fields as we [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">In some cases, we are needed to get some inputs from the user at run-time of an application based on certain dynamic conditions.</p>
<p style="text-align: justify;">Function Module <strong>POPUP_GET_VALUES</strong> can be used to display a popup to get inputs from user. The specialty  of this function module is we can add as many number of fields as we  want. The fields can be of any data type.</p>
<div style="width: 100%; float: left;">
<p style="text-align: center;"><a href="http://www.abap-tutorials.com/wp-content/uploads/2011/09/popup.jpg"><img class="aligncenter size-full wp-image-1949" title="popup" src="http://www.abap-tutorials.com/wp-content/uploads/2011/09/popup.jpg" alt="popup" width="470" height="288" /></a></p>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span id="more-1948"></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>REPORT  ztestpopup.</p>
<p>DATA: t_fields LIKE sval OCCURS 0 WITH HEADER LINE.</p>
<p>START-OF-SELECTION.</p>
<p>*&#8212; Prepare Parameters for FM &#8212;&#8212;&#8212;&#8212;-*<br />
t_fields-tabname = ’BKPF’.<br />
t_fields-fieldname = ’BUDAT’.<br />
APPEND t_fields.</p>
<p>t_fields-tabname = ’BKPF’.<br />
t_fields-fieldname = ’BLART’.<br />
APPEND t_fields.</p>
<p>*&#8212;- Function Module Call &#8212;&#8212;&#8212;&#8212;&#8212;&#8211;*<br />
CALL FUNCTION ’POPUP_GET_VALUES’<br />
EXPORTING<br />
*  NO_VALUE_CHECK        = ’ ’<br />
popup_title           = ’Test Popup’<br />
*  START_COLUMN          = ’5’<br />
*  START_ROW             = ’5’<br />
*  IMPORTING<br />
*  RETURNCODE            =<br />
TABLES<br />
fields                = t_fields<br />
EXCEPTIONS<br />
error_in_fields       = 1<br />
OTHERS                = 2<br />
.<br />
IF sy-subrc &lt;&gt; 0.<br />
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO<br />
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.<br />
ENDIF.</p>
<p>*&#8212; Display Report &#8212;&#8212;&#8212;&#8212;&#8212;-*<br />
LOOP AT t_fields.<br />
WRITE:/ t_fields-value.<br />
ENDLOOP.</p>
<p style="text-align: center;">&nbsp;</p>
</div>
<p style="text-align: justify;">&nbsp;</p>
<p style="text-align: justify;">&nbsp;</p>
<p style="text-align: justify;">&nbsp;</p>
<p style="text-align: justify;">&nbsp;</p>
<p style="text-align: justify;">&nbsp;</p>


<p>You might also be interested in these posts:<ol><li><a href='http://www.abap-tutorials.com/2009/07/27/sap-data-in-3-dimension/' rel='bookmark' title='ABAP Program to display SAP Data in 3-Dimension'>ABAP Program to display SAP Data in 3-Dimension</a></li>
<li><a href='http://www.abap-tutorials.com/2009/10/15/date-formatting-for-display-in-abap-program/' rel='bookmark' title='Date formatting for Display in ABAP Program'>Date formatting for Display in ABAP Program</a></li>
<li><a href='http://www.abap-tutorials.com/2009/07/28/display-se78-pictures-on-screen/' rel='bookmark' title='ABAP Program to Display SE78 pictures on Screen'>ABAP Program to Display SE78 pictures on Screen</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.abap-tutorials.com/2011/09/23/display-a-popup-and-get-values-from-user/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MM02 BDC &#8211; Select Specific Material Master View</title>
		<link>http://www.abap-tutorials.com/2010/07/31/mm02-bdc/</link>
		<comments>http://www.abap-tutorials.com/2010/07/31/mm02-bdc/#comments</comments>
		<pubDate>Sat, 31 Jul 2010 04:42:58 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[ABAP]]></category>
		<category><![CDATA[BDC / LSMW]]></category>
		<category><![CDATA[Function Modules]]></category>
		<category><![CDATA[Quick Reference]]></category>
		<category><![CDATA[Sample Code]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[BDC for MM02]]></category>
		<category><![CDATA[Materail Master view specific BDC]]></category>
		<category><![CDATA[MM01]]></category>
		<category><![CDATA[MM02]]></category>

		<guid isPermaLink="false">http://www.abap-tutorials.com/?p=1698</guid>
		<description><![CDATA[Creating a BDC of the MM02 will not be an easy task. As soon as we enter the material and hit enter it will ask us to choose the required Material master views. This popup contains the available material master views and they are not constant. Sometimes MRP1 comes at the 12th line and sometimes [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Creating a BDC of the MM02 will not be an easy task. As soon as we enter the material and hit enter it will ask us to choose the required Material master views. This popup contains the available material master views and they are not constant. Sometimes MRP1 comes at the 12th line and sometimes it comes to 6th line. This dynamic of the views are solely depended on the Status (MARA-VPSTA).</p>
<div style="float: left; width: 100%;">
<p style="text-align: center;"><a href="http://www.abap-tutorials.com/wp-content/uploads/2010/07/mm02_BDC.jpg"><img class="aligncenter size-full wp-image-1699" title="MM02 BDC" src="http://www.abap-tutorials.com/wp-content/uploads/2010/07/mm02_BDC.jpg" alt="MM02 BDC" width="421" height="353" /></a></p>
</div>
<p style="text-align: justify;"> <span id="more-1698"></span></p>
<p style="text-align: justify;">To overcome of this dynamics we need to get to know where exactly our required view will appear e.g. line 6 or line 10 or line 15. We will use the FM SELECTION_VIEWS_FIND to find out which view will come at which position.</p>
<p style="text-align: justify;">In our BDC, we will follow these steps:<br />
1. Always select the Basic Data 1<br />
2. Get the respective user command for the tab by Executing the FM SELECTION_VIEWS_FIND.</p>
<p style="text-align: justify;">Status (MARA-VPSTA) contains the combination of the View indicator. You can find the relation of the status indicator and view name in the documentation of the data element PSTAT_D or follow this table:</p>
<p style="text-align: justify;"> <strong><span style="color: #339966;">User department    Maintenance status</span></strong> </p>
<p style="text-align: justify;"> Work scheduling                A<br />
Accounting                     B<br />
Classification                 C<br />
MRP                            D<br />
Purchasing                     E<br />
Production resources/tools     F<br />
Costing                        G<br />
Basic data                     K<br />
Storage                        L<br />
Forecasting                    P<br />
Quality management             Q<br />
Warehouse management           S<br />
Sales                          V<br />
Plant stocks                   X<br />
Storage location stocks        Z</p>
<p style="text-align: justify;">In this my test BDC, I want to update the MRP type. MRP type comes under the &#8220;MRP 1&#8243; view of the material master. So, I will first select the Basic Data and than move to MRP 1 view and update the MRP type.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"><strong><span style="color: #339966;">BDC Code:</span></strong></p>
<p style="text-align: justify;">REPORT ztest_np_mm02<br />
       NO STANDARD PAGE HEADING LINE-SIZE 255.<br />
*<br />
* Local data<br />
DATA:   messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.<br />
DATA:   bdcdata LIKE bdcdata    OCCURS 0 WITH HEADER LINE.<br />
*<br />
* Selection Screen<br />
PARAMETERS: p_matnr TYPE mara-matnr OBLIGATORY,<br />
            p_werks TYPE marc-werks OBLIGATORY,<br />
            p_lgort TYPE rmmg1-lgort OBLIGATORY,<br />
            p_dismm TYPE marc-dismm OBLIGATORY.<br />
*<br />
*<br />
START-OF-SELECTION.<br />
*<br />
* Material views &#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.<br />
  DATA:  l_vpsta LIKE t130m-pstat.<br />
*<br />
  SELECT SINGLE vpsta<br />
         INTO   l_vpsta<br />
         FROM   mara<br />
         WHERE  matnr = p_matnr.<br />
*<br />
* Get View sequence &#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.<br />
  DATA: l_bild  LIKE t133a-bilds,<br />
        lt_bild LIKE mbildtab OCCURS 0 WITH HEADER LINE.<br />
*<br />
* Screen Sequence for Standard Industry tab pages in material master<br />
  l_bild = &#8217;21&#8242;.<br />
*<br />
* Get screen sequence<br />
  CALL FUNCTION &#8216;SELECTION_VIEWS_FIND&#8217;<br />
    EXPORTING<br />
      bildsequenz     = l_bild<br />
      pflegestatus    = l_vpsta<br />
    TABLES<br />
      bildtab         = lt_bild<br />
    EXCEPTIONS<br />
      call_wrong      = 1<br />
      empty_selection = 2<br />
      OTHERS          = 3.<br />
  IF sy-subrc &lt;&gt; 0.<br />
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno<br />
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.<br />
  ENDIF.<br />
*<br />
* Get the Tab page for MRP1 &#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..<br />
  DATA: l_tab_mrp1 TYPE sy-ucomm.<br />
*<br />
* reading table with MRP view<br />
  READ TABLE lt_bild WITH KEY pstat = &#8216;D&#8217;.<br />
  IF sy-subrc = 0.<br />
    l_tab_mrp1 = lt_bild-guifu.<br />
  ENDIF.<br />
*<br />
* make ok code for the MRP1<br />
  CONCATENATE &#8216;=&#8217; l_tab_mrp1 INTO l_tab_mrp1.<br />
*<br />
* BDC &#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;<br />
  PERFORM bdc_dynpro      USING &#8216;SAPLMGMM&#8217; &#8217;0060&#8242;.<br />
  PERFORM bdc_field       USING &#8216;RMMG1-MATNR&#8217;<br />
                                 p_matnr.<br />
  PERFORM bdc_field       USING &#8216;BDC_OKCODE&#8217;<br />
                                &#8216;=ENTR&#8217;.<br />
*<br />
  PERFORM bdc_dynpro      USING &#8216;SAPLMGMM&#8217; &#8217;0070&#8242;.<br />
  PERFORM bdc_field       USING &#8216;MSICHTAUSW-KZSEL(01)&#8217;<br />
                                &#8216;X&#8217;.<br />
  PERFORM bdc_field       USING &#8216;BDC_OKCODE&#8217;<br />
                                &#8216;=ENTR&#8217;.<br />
*<br />
  PERFORM bdc_dynpro      USING &#8216;SAPLMGMM&#8217; &#8217;4004&#8242;.<br />
  PERFORM bdc_field       USING &#8216;BDC_OKCODE&#8217;<br />
                                l_tab_mrp1.<br />
*<br />
  PERFORM bdc_dynpro      USING &#8216;SAPLMGMM&#8217; &#8217;0081&#8242;.<br />
  PERFORM bdc_field       USING &#8216;RMMG1-WERKS&#8217;<br />
                                p_werks.<br />
  PERFORM bdc_field       USING &#8216;RMMG1-LGORT&#8217;<br />
                                p_lgort.<br />
  PERFORM bdc_field       USING &#8216;BDC_OKCODE&#8217;<br />
                                &#8216;=ENTR&#8217;.<br />
*<br />
  PERFORM bdc_dynpro      USING &#8216;SAPLMGMM&#8217; &#8217;4000&#8242;.<br />
  PERFORM bdc_field       USING &#8216;MARC-DISMM&#8217;<br />
                                p_dismm.<br />
  PERFORM bdc_field       USING &#8216;BDC_OKCODE&#8217;<br />
                                &#8216;=BU&#8217;.<br />
*<br />
  PERFORM bdc_transaction USING &#8216;MM02&#8242;.<br />
*<br />
*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
*&amp;      Form  BDC_DYNPRO<br />
*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
FORM bdc_dynpro USING p_program<br />
                      p_screen.<br />
*<br />
  MOVE: p_program TO bdcdata-program,<br />
        p_screen  TO bdcdata-dynpro,<br />
        &#8216;X&#8217;       TO bdcdata-dynbegin.<br />
*<br />
  APPEND bdcdata.<br />
  CLEAR  bdcdata.<br />
*<br />
ENDFORM.                    &#8221; BDC_DYNPRO<br />
*<br />
*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
*&amp;      Form  BDC_FIELD<br />
*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
FORM bdc_field USING p_field_name<br />
                     p_field_value.<br />
*<br />
  MOVE: p_field_name  TO bdcdata-fnam,<br />
        p_field_value TO bdcdata-fval.<br />
*<br />
  APPEND bdcdata.<br />
  CLEAR  bdcdata.<br />
*<br />
ENDFORM.                    &#8221; BDC_FIELD<br />
*<br />
*<br />
*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
*&amp;      Form  BDC_TRANSACTION<br />
*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
FORM bdc_transaction USING tcode.<br />
  DATA: l_mstring(480).<br />
  DATA: l_subrc LIKE sy-subrc.<br />
* batch input session<br />
  REFRESH messtab.<br />
  CALL TRANSACTION tcode USING bdcdata<br />
                   MODE   &#8216;A&#8217;<br />
                   &#8220;A: show all dynpros<br />
                   &#8220;E: show dynpro on error only<br />
                   &#8220;N: do not display dynpro<br />
*<br />
                   UPDATE &#8216;L&#8217;<br />
                   MESSAGES INTO messtab.<br />
  REFRESH bdcdata.<br />
ENDFORM.                    &#8220;BDC_TRANSACTION</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"><strong><span style="color: #339966;">Download Code: </span></strong></p>
<p style="text-align: justify;"><strong><span style="color: #339966;"><a href="http://www.abap-tutorials.com/wp-content/uploads/2010/07/mm02_bdc.txt">MM02 BDC</a></span></strong></p>
<p style="text-align: justify;"><strong><span style="color: #339966;"> </span></strong></p>
<p style="text-align: justify;"><strong><span style="color: #339966;"> </span></strong></p>
<p style="text-align: justify;"><strong><span style="color: #339966;"> </span></strong></p>
<h6 style="text-align: justify;"><span style="color: #c0c0c0;">*source=nimesh</span></h6>


<p>You might also be interested in these posts:<ol><li><a href='http://www.abap-tutorials.com/2010/05/25/bdc-to-insert-wage-type-in-infotype-0008/' rel='bookmark' title='BDC to insert Wage Type in Infotype 0008 (Basic Pay)'>BDC to insert Wage Type in Infotype 0008 (Basic Pay)</a></li>
<li><a href='http://www.abap-tutorials.com/2009/07/27/embed-view-in-program/' rel='bookmark' title='Embed SAP View in an ABAP Program'>Embed SAP View in an ABAP Program</a></li>
<li><a href='http://www.abap-tutorials.com/2009/07/17/assign-a-t-code-to-maintenance-view/' rel='bookmark' title='Assign a T-code to Maintenance View in SAP'>Assign a T-code to Maintenance View in SAP</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.abap-tutorials.com/2010/07/31/mm02-bdc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BDC Session &#8211; Automatic Execution from Report</title>
		<link>http://www.abap-tutorials.com/2010/06/20/bdc-session-automatic-execution-from-report/</link>
		<comments>http://www.abap-tutorials.com/2010/06/20/bdc-session-automatic-execution-from-report/#comments</comments>
		<pubDate>Sun, 20 Jun 2010 13:57:18 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[ABAP]]></category>
		<category><![CDATA[BDC / LSMW]]></category>
		<category><![CDATA[Function Modules]]></category>
		<category><![CDATA[Quick Reference]]></category>
		<category><![CDATA[Sample Code]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[BDC Session]]></category>
		<category><![CDATA[execute session from program]]></category>
		<category><![CDATA[session execution]]></category>

		<guid isPermaLink="false">http://www.abap-tutorials.com/?p=1674</guid>
		<description><![CDATA[When to Use: Upload programs where you use BDC session method to create Sessions, which should later be executed using transaction SM35. Requirements before you start: You need to know the BDC Session name, which is usually an input parameter or is generated by the report programs. Steps to execute BDC Session from the program: [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><span style="color: #3366ff;"><strong>When to Use:</strong></span></p>
<p style="text-align: justify;">Upload programs where you use BDC session method to create Sessions, which should later be executed using transaction SM35.</p>
<p style="text-align: justify;"><span style="color: #3366ff;"><strong>Requirements before you start: </strong></span></p>
<p style="text-align: justify;">You need to know the BDC Session name, which is usually an input parameter or is generated by the report programs.</p>
<div style="width: 100%; float: left;">
<p style="text-align: justify;"><a href="http://www.abap-tutorials.com/wp-content/uploads/2010/06/sm35.jpg"><img class="aligncenter size-full wp-image-1679" title="SM35" src="http://www.abap-tutorials.com/wp-content/uploads/2010/06/sm35.jpg" alt="SM35" width="502" height="377" /></a></p>
</div>
<p style="text-align: justify;">
<p style="text-align: justify;"><span id="more-1674"></span></p>
<p style="text-align: justify;">Steps to execute BDC Session from the program:</p>
<p><span style="color: #3366ff;"><strong>Step 1: Get BDC Queue ID</strong></span></p>
<p>CALL FUNCTION &#8216;BDC_OBJECT_SELECT&#8217;</p>
<p>EXPORTING</p>
<p>name                  = session name</p>
<p>session_creator    = sy-uname</p>
<p>datatype             = &#8216;BDC&#8217;</p>
<p>client                  = sy-mandt</p>
<p>qstate                = &#8216; &#8216;</p>
<p>date_from           = sy-datum</p>
<p>date_to              = sy-datum</p>
<p>TABLES</p>
<p>apqitab               = itab_apqi</p>
<p>EXCEPTIONS</p>
<p>OTHERS              = 1.</p>
<p>Queue ID (QID) = itab_apqi-qid</p>
<p><span style="color: #3366ff;"><strong>Step 2: Get Session Info</strong></span></p>
<p>Get Session info for the queue ID from table APQI.</p>
<p>SELECT SINGLE * FROM apqi INTO session WHERE qid = QID (from Step 1).</p>
<p><span style="color: #3366ff;"><strong>Step3: Lock BDC Queue</strong></span></p>
<p>CALL FUNCTION &#8216;ENQUEUE_BDC_QID&#8217;</p>
<p>EXPORTING</p>
<p>datatyp        = session-datatyp</p>
<p>groupid        = session-groupid</p>
<p>qid            = session-qid</p>
<p>EXCEPTIONS</p>
<p>foreign_lock   = 1</p>
<p>system_failure = 99.</p>
<p><span style="color: #3366ff;"><strong>Step4: OPEN JOB</strong></span></p>
<p>DATA:  jobname   LIKE tbtco-jobname,</p>
<p>jobnumb   LIKE rsjobinfo-jobnumb,</p>
<p>Jobname = wa_session-groupid.</p>
<p>CALL FUNCTION &#8216;JOB_OPEN&#8217;</p>
<p>EXPORTING</p>
<p>jobgroup         = &#8216;BATCH-INPUT&#8217;</p>
<p>jobname          = jobname</p>
<p>sdlstrtdt        = sy-datum</p>
<p>sdlstrttm        = sy-uzeit</p>
<p>IMPORTING</p>
<p>jobcount         = jobnumb</p>
<p>EXCEPTIONS</p>
<p>cant_create_job  = 1</p>
<p>invalid_job_data = 2</p>
<p>jobname_missing  = 3</p>
<p>OTHERS           = 99.</p>
<p><span style="color: #3366ff;"><strong>Step5: Execute the Queue</strong></span></p>
<p>Execute the QUEUE using Submit to Report RSBDCBTC.</p>
<p>SUBMIT rsbdcbtc</p>
<p>TO SAP-SPOOL</p>
<p>DESTINATION   space</p>
<p>IMMEDIATELY   space</p>
<p>KEEP IN SPOOL space</p>
<p>WITHOUT SPOOL DYNPRO</p>
<p>USER session-userid</p>
<p>VIA JOB       jobname</p>
<p>NUMBER        jobnumb</p>
<p>WITH queue_id  EQ  wa_session-qid</p>
<p>WITH mappe     EQ  jobname</p>
<p>WITH modus     EQ  &#8216;N&#8217;</p>
<p>WITH logall    EQ  &#8216;X&#8217;  &#8221; Extended Log</p>
<p>AND RETURN.</p>
<p>If Sy-subrc = 0</p>
<p style="text-align: justify;"><span style="color: #3366ff;"><strong>Step6: Close Job</strong></span></p>
<p>CALL FUNCTION &#8216;JOB_CLOSE&#8217;</p>
<p>EXPORTING</p>
<p>jobcount                   = jobnumb</p>
<p>jobname                    = jobname</p>
<p>strtimmed                  = &#8216;X&#8217;</p>
<p>targetsystem               = &#8221;   &#8221; Target Host</p>
<p>EXCEPTIONS</p>
<p>cant_start_immediate       = 1</p>
<p>invalid_startdate          = 2</p>
<p>jobname_missing            = 3</p>
<p>job_close_failed           = 4</p>
<p>job_nosteps                = 5</p>
<p>job_notex                  = 6</p>
<p>lock_failed                = 7</p>
<p>OTHERS                     = 99.</p>
<p>IF sy-subrc = 0</p>
<p style="text-align: justify;"><span style="color: #3366ff;"><strong>Step 7: Update Session info</strong></span></p>
<p>UPDATE apqi SET   qstate  = &#8216;S&#8217;</p>
<p>WHERE destsys = wa_session-destsys</p>
<p>AND   destapp = wa_session-destapp</p>
<p>AND   datatyp = wa_session-datatyp</p>
<p>AND   groupid = wa_session-groupid</p>
<p>AND   progid  = wa_session-progid</p>
<p>AND   formid  = wa_session-formid</p>
<p>AND   qattrib = wa_session-qattrib</p>
<p>AND   qid     = wa_session-qid.</p>
<p>COMMIT WORK.</p>
<p><span style="color: #3366ff;"><strong>Step 8: Delete Job</strong></span></p>
<p>If Job Not closed (Sy-subrc &lt;&gt; 0 for step 5 or 6), delete Job.</p>
<p>CALL FUNCTION &#8216;BP_JOB_DELETE&#8217;</p>
<p>EXPORTING</p>
<p>jobname    = jobname</p>
<p>jobcount   = jobnumb</p>
<p>forcedmode = &#8216;X&#8217;</p>
<p>EXCEPTIONS</p>
<p>OTHERS     = 99.</p>
<p><span style="color: #3366ff;"><strong>Step 9: Unlock BDC queue</strong></span></p>
<p>CALL FUNCTION &#8216;DEQUEUE_BDC_QID&#8217;</p>
<p>EXPORTING</p>
<p>datatyp = wa_session-datatyp</p>
<p>groupid = wa_session-groupid</p>
<p>qid     = wa_session-qid.</p>
<p>So you are all done. Hope that was simple. ﻿</p>


<p>You might also be interested in these posts:<ol><li><a href='http://www.abap-tutorials.com/2009/07/05/pritty-report-vs-pritty-printer/' rel='bookmark' title='Pretty Report Vs Pretty Printer in ABAP'>Pretty Report Vs Pretty Printer in ABAP</a></li>
<li><a href='http://www.abap-tutorials.com/2011/09/23/display-a-popup-and-get-values-from-user/' rel='bookmark' title='Display a Popup and Get Values from User'>Display a Popup and Get Values from User</a></li>
<li><a href='http://www.abap-tutorials.com/2009/08/22/convert-spool-request-to-pdf-in-sap/' rel='bookmark' title='Convert Spool Request to PDF in SAP'>Convert Spool Request to PDF in SAP</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.abap-tutorials.com/2010/06/20/bdc-session-automatic-execution-from-report/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>BDC to insert Wage Type in Infotype 0008 (Basic Pay)</title>
		<link>http://www.abap-tutorials.com/2010/05/25/bdc-to-insert-wage-type-in-infotype-0008/</link>
		<comments>http://www.abap-tutorials.com/2010/05/25/bdc-to-insert-wage-type-in-infotype-0008/#comments</comments>
		<pubDate>Tue, 25 May 2010 10:18:24 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[ABAP HR]]></category>
		<category><![CDATA[BDC / LSMW]]></category>
		<category><![CDATA[Function Modules]]></category>
		<category><![CDATA[Sample Code]]></category>
		<category><![CDATA[Upload Download]]></category>
		<category><![CDATA[basic Pay]]></category>
		<category><![CDATA[BDC]]></category>
		<category><![CDATA[HR infotypes]]></category>
		<category><![CDATA[infotype0008]]></category>
		<category><![CDATA[wagetype]]></category>

		<guid isPermaLink="false">http://www.abap-tutorials.com/?p=1651</guid>
		<description><![CDATA[Addition of new WageTypes to Infotype 0008 often comes as an urgent requirement. Instead of adding WageTypes to individuals, we can upload it through a BDC. BDC Source Code: *&#38;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;* *&#38; Report  ZHR_BDC_0008_INSERT                                         * *&#38;                                                                     * *&#38;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;* *&#38; About: the BDC inserts a new Wage Type into the infotype0008 for    * *&#38;        Per.No. provided in [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Addition of new WageTypes to Infotype 0008 often comes as an urgent requirement. Instead of adding WageTypes to individuals, we can upload it through a BDC.</p>
<div style="width: 100%; float: left;">
<p style="text-align: center;"><a href="http://www.abap-tutorials.com/wp-content/uploads/2010/05/Insert_wage_type_in_infotype_0008.jpg"><img class="aligncenter size-full wp-image-1652" title="Insert Wage Type In Infotype0008" src="http://www.abap-tutorials.com/wp-content/uploads/2010/05/Insert_wage_type_in_infotype_0008.jpg" alt="Insert Wage Type In Infotype0008" width="368" height="267" /></a></p>
</div>
<p><span id="more-1651"></span></p>
<p><strong><span style="color: #3366ff;">BDC Source Code:</span></strong></p>
<p>*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
*&amp; Report  ZHR_BDC_0008_INSERT                                         *<br />
*&amp;                                                                     *<br />
*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
*&amp; About: the BDC inserts a new Wage Type into the infotype0008 for    *<br />
*&amp;        Per.No. provided in flat file.                               *<br />
*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
*&amp; BDC / Flat File Structure:                                          *<br />
*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
*&amp; PersonnelNo  BeginDate EndDate WageType  Amount                     *<br />
*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</p>
<p>REPORT  ZHR_BDC_0008_INSERT no standard page heading line-size 255.</p>
<p>DATA : BDCTAB LIKE BDCDATA OCCURS 100 WITH HEADER LINE.</p>
<p>DATA BEGIN OF itab1 OCCURS 0.<br />
        INCLUDE STRUCTURE p0001.<br />
DATA END OF itab1.<br />
DATA BEGIN OF itab7 OCCURS 0.<br />
        INCLUDE STRUCTURE p0007.<br />
DATA END OF itab7.<br />
DATA BEGIN OF itab8 OCCURS 0.<br />
        INCLUDE STRUCTURE p0008.<br />
DATA END OF itab8.<br />
DATA BEGIN OF itabn OCCURS 0.<br />
        INCLUDE STRUCTURE pbwla.<br />
DATA END OF itabn.<br />
DATA: pos(2).</p>
<p>SELECTION-SCREEN SKIP 1.<br />
SELECTION-SCREEN BEGIN OF BLOCK K1 WITH FRAME TITLE TEXT-001.<br />
SELECTION-SCREEN SKIP 1.<br />
PARAMETERS : READFILE like rlgrap-filename DEFAULT<br />
             &#8216;c:\textfile.txt&#8217; LOWER CASE.<br />
SELECTION-SCREEN SKIP 1.<br />
SELECTION-SCREEN END OF BLOCK K1.</p>
<p>data: begin of record OCCURS 10,<br />
      pernr like PA0001-pernr,<br />
      begda like PA0001-begda,<br />
      endda like PA0001-endda,<br />
      lgart like PA0008-lga01,<br />
      amount(12),<br />
      end of record.</p>
<p>start-of-selection.</p>
<p>  PERFORM OPEN_GROUP.<br />
  PERFORM UPLOAD.</p>
<p>  if record[] is NOT INITIAL.<br />
*do.<br />
    LOOP AT record.<br />
*read dataset dataset into record.<br />
      if sy-subrc &lt;&gt; 0. exit. endif.<br />
      data: tbegda(10),<br />
            tendda(10).<br />
      write: record-begda to tbegda,<br />
             record-endda to tendda.<br />
      data: wgtype(20),<br />
            amount(20).<br />
* Get Personnel Data<br />
      PERFORM GET_PERS_DATA.<br />
      clear: pos.<br />
      LOOP AT itabn where endda = &#8217;99991231&#8242;.<br />
        pos = pos + 1.<br />
      ENDLOOP.<br />
* Move to new line<br />
      pos = pos + 1.<br />
* Setting position in Table Control<br />
      concatenate &#8216;Q0008-LGART(&#8216; pos &#8216;)&#8217; into wgtype.<br />
      concatenate &#8216;Q0008-BETRG(&#8216; pos &#8216;)&#8217; into amount.<br />
      perform bdc_dynpro      using &#8216;SAPMP50A&#8217; &#8217;1000&#8242;.<br />
      perform bdc_field       using &#8216;BDC_OKCODE&#8217;<br />
                                    &#8216;=COP&#8217;.<br />
      perform bdc_field       using &#8216;RP50G-PERNR&#8217;<br />
*                              &#8217;1341&#8242;.<br />
                                     record-pernr.<br />
*perform bdc_field       using &#8216;RP50G-TIMR6&#8242;<br />
*                              &#8216;X&#8217;.<br />
      perform bdc_field       using &#8216;BDC_CURSOR&#8217;<br />
                                    &#8216;RP50G-CHOIC&#8217;.<br />
      perform bdc_field       using &#8216;RP50G-CHOIC&#8217;<br />
                                    &#8217;8&#8242;.<br />
      perform bdc_dynpro      using &#8216;MP000800&#8242; &#8217;2040&#8242;.<br />
      perform bdc_field       using &#8216;BDC_OKCODE&#8217;<br />
                                    &#8216;/00&#8242;.<br />
      perform bdc_field       using &#8216;P0008-BEGDA&#8217;<br />
*                              &#8217;01.04.2010&#8242;.<br />
                                     tbegda.<br />
      perform bdc_field       using &#8216;P0008-ENDDA&#8217;<br />
*                              &#8217;31.12.9999&#8242;.<br />
                                     tendda.<br />
*perform bdc_field       using &#8216;P0008-TRFAR&#8217;<br />
*                              &#8216;SK&#8217;.<br />
*perform bdc_field       using &#8216;P0008-BSGRD&#8217;<br />
*                              &#8217;100.00&#8242;.<br />
*perform bdc_field       using &#8216;P0008-TRFGB&#8217;<br />
*                              &#8216;SK&#8217;.<br />
*perform bdc_field       using &#8216;P0008-DIVGV&#8217;<br />
*                              &#8217;100.00&#8242;.<br />
*perform bdc_field       using &#8216;P0008-TRFGR&#8217;<br />
*                              &#8216;JT MGR&#8217;.<br />
*perform bdc_field       using &#8216;P0008-TRFST&#8217;<br />
*                              &#8216;GE&#8217;.<br />
*perform bdc_field       using &#8216;P0008-ANCUR&#8217;<br />
*                              &#8216;INR&#8217;.<br />
*perform bdc_field       using &#8216;Q0008-IBBEG&#8217;<br />
*                              &#8217;25.05.2010&#8242;.<br />
*perform bdc_field       using &#8216;P0008-WAERS&#8217;<br />
*                              &#8216;INR&#8217;.<br />
*perform bdc_field       using &#8216;Q0008-LGART(07)&#8217;<br />
*                              &#8217;1MDA&#8217;.<br />
*perform bdc_field       using &#8216;Q0008-LGART(07)&#8217;<br />
*                              &#8217;1MDA&#8217;.<br />
      perform bdc_field       using  wgtype<br />
                                     record-lgart.<br />
*perform bdc_field       using &#8216;Q0008-BETRG(07)&#8217;<br />
*                              &#8216;               500&#8242;.<br />
      perform bdc_field       using  amount<br />
                                     record-amount.<br />
      perform bdc_dynpro      using &#8216;MP000800&#8242; &#8217;2040&#8242;.<br />
      perform bdc_field       using &#8216;BDC_CURSOR&#8217;<br />
                                    &#8216;P0008-BEGDA&#8217;.<br />
      perform bdc_field       using &#8216;BDC_OKCODE&#8217;<br />
                                    &#8216;=UPD&#8217;.<br />
      perform bdc_field       using &#8216;P0008-BEGDA&#8217;<br />
*                              &#8217;01.04.2010&#8242;.<br />
                                     tbegda.<br />
      perform bdc_field       using &#8216;P0008-ENDDA&#8217;<br />
*                              &#8217;31.12.9999&#8242;.<br />
                                     tendda.<br />
*perform bdc_field       using &#8216;P0008-TRFAR&#8217;<br />
*                              &#8216;SK&#8217;.<br />
*perform bdc_field       using &#8216;P0008-BSGRD&#8217;<br />
*                              &#8217;100.00&#8242;.<br />
*perform bdc_field       using &#8216;P0008-TRFGB&#8217;<br />
*                              &#8216;SK&#8217;.<br />
*perform bdc_field       using &#8216;P0008-DIVGV&#8217;<br />
*                              &#8217;100.00&#8242;.<br />
*perform bdc_field       using &#8216;P0008-TRFGR&#8217;<br />
*                              &#8216;JT MGR&#8217;.<br />
*perform bdc_field       using &#8216;P0008-TRFST&#8217;<br />
*                              &#8216;GE&#8217;.<br />
*perform bdc_field       using &#8216;P0008-ANCUR&#8217;<br />
*                              &#8216;INR&#8217;.<br />
*perform bdc_field       using &#8216;Q0008-IBBEG&#8217;<br />
*                              &#8217;25.05.2010&#8242;.<br />
*perform bdc_field       using &#8216;P0008-WAERS&#8217;<br />
*                              &#8216;INR&#8217;.<br />
*perform bdc_transaction using &#8216;PA30&#8242;.<br />
      CALL FUNCTION &#8216;BDC_INSERT&#8217;<br />
          EXPORTING<br />
               TCODE             = &#8216;PA30&#8242;<br />
*         POST_LOCAL       = NOVBLOCAL<br />
*         PRINTING         = NOPRINT<br />
           TABLES<br />
                DYNPROTAB        = BDCTAB<br />
*    EXCEPTIONS<br />
*         INTERNAL_ERROR   = 1<br />
*         NOT_OPEN         = 2<br />
*         QUEUE_ERROR      = 3<br />
*         TCODE_INVALID    = 4<br />
*         PRINTING_INVALID = 5<br />
*         POSTING_INVALID  = 6<br />
*         OTHERS           = 7<br />
                .<br />
      IF SY-SUBRC &lt;&gt; 0.<br />
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO<br />
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.<br />
      ENDIF.<br />
      REFRESH BDCTAB.<br />
    endloop.</p>
<p>    CALL FUNCTION &#8216;BDC_CLOSE_GROUP&#8217;<br />
*    EXCEPTIONS<br />
*         NOT_OPEN    = 1<br />
*         QUEUE_ERROR = 2<br />
*         OTHERS      = 3<br />
              .<br />
    IF SY-SUBRC &lt;&gt; 0.<br />
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO<br />
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.<br />
    ENDIF.<br />
*perform close_group.<br />
*perform close_dataset using dataset.<br />
  endif.<br />
*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
*&amp;      Form  BDC_DYNPRO<br />
*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
*       text<br />
*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*<br />
FORM BDC_DYNPRO USING PROGRAM DYNPRO.<br />
  CLEAR BDCTAB.<br />
  BDCTAB-PROGRAM  = PROGRAM.<br />
  BDCTAB-DYNPRO   = DYNPRO.<br />
  BDCTAB-DYNBEGIN = &#8216;X&#8217;.<br />
  APPEND BDCTAB.</p>
<p>ENDFORM.                    &#8220;BDC_DYNPRO</p>
<p>*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
*&amp;      Form  BDC_FIELD<br />
*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
*       text<br />
*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*<br />
FORM BDC_FIELD USING FNAM FVAL.<br />
*  IF FVAL &lt;&gt; NODATA.<br />
  CLEAR BDCTAB.<br />
  BDCTAB-FNAM = FNAM.<br />
  BDCTAB-FVAL = FVAL.<br />
  APPEND BDCTAB.<br />
*  ENDIF.<br />
ENDFORM.                    &#8220;BDC_FIELD<br />
*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
*&amp;      Form  UPLOAD<br />
*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
*       text<br />
*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*<br />
FORM UPLOAD .</p>
<p>  CALL FUNCTION &#8216;UPLOAD&#8217;<br />
    EXPORTING<br />
      FILENAME                = READFILE<br />
      FILETYPE                = &#8216;DAT&#8217;<br />
    TABLES<br />
      DATA_TAB                = record<br />
    EXCEPTIONS<br />
      CONVERSION_ERROR        = 1<br />
      FILE_OPEN_ERROR         = 2<br />
      FILE_READ_ERROR         = 3<br />
      INVALID_TYPE            = 4<br />
      NO_BATCH                = 5<br />
      UNKNOWN_ERROR           = 6<br />
      INVALID_TABLE_WIDTH     = 7<br />
      GUI_REFUSE_FILETRANSFER = 8<br />
      CUSTOMER_ERROR          = 9<br />
      OTHERS                  = 10.</p>
<p>ENDFORM.                    &#8221; UPLOAD</p>
<p>*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
*&amp;      Form  OPEN_GROUP<br />
*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
*       text<br />
*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*<br />
FORM OPEN_GROUP .</p>
<p>  CALL FUNCTION &#8216;BDC_OPEN_GROUP&#8217;<br />
      EXPORTING<br />
           CLIENT              = SY-MANDT<br />
           GROUP               = sy-uname &#8220;&#8216;HR_DELIMT&#8217;<br />
           KEEP                = &#8216;X&#8217;<br />
           USER                = SY-UNAME<br />
      EXCEPTIONS<br />
           CLIENT_INVALID      = 1<br />
           DESTINATION_INVALID = 2<br />
           GROUP_INVALID       = 3<br />
           GROUP_IS_LOCKED     = 4<br />
           HOLDDATE_INVALID    = 5<br />
           INTERNAL_ERROR      = 6<br />
           QUEUE_ERROR         = 7<br />
           RUNNING             = 8<br />
           SYSTEM_LOCK_ERROR   = 9<br />
           USER_INVALID        = 10<br />
           OTHERS              = 11<br />
            .</p>
<p>ENDFORM.                    &#8221; OPEN_GROUP<br />
*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
*&amp;      Form  GET_PERS_DATA<br />
*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*<br />
*       text<br />
*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*<br />
FORM GET_PERS_DATA .<br />
  CLEAR : itab1,itab7,itab8,itabn.<br />
  REFRESH : itab1,itab7,itab8,itabn.</p>
<p>  CALL FUNCTION &#8216;RP_FILL_WAGE_TYPE_TABLE_EXT&#8217;<br />
    EXPORTING<br />
      begda                        = record-begda &#8220;i0008-begda<br />
      endda                        = &#8217;99991231&#8242;<br />
      infty                        = &#8217;0008&#8242;<br />
      tclas                        = &#8216;A&#8217;<br />
      pernr                        = record-pernr &#8220;i0008-pernr<br />
    TABLES<br />
      pp0001                       = itab1<br />
      pp0007                       = itab7<br />
      pp0008                       = itab8<br />
      ppbwla                       = itabn<br />
    EXCEPTIONS<br />
      error_at_indirect_evaluation = 1<br />
      OTHERS                       = 2.</p>
<p>ENDFORM.                    &#8221; GET_PERS_DATA</p>
<p style="text-align: justify;"><strong><span style="color: #3366ff;">Note:</span></strong> The WageTypes should be updated one at a time (i.e., run BDC for all employee for a specific Wage Type. Execute it from SM35. Now repeat the process for another WageType).</p>
<p style="text-align: justify;">BDC Source Code: <a href="http://www.abap-tutorials.com/wp-content/uploads/2010/05/BDC_INSERT_0008.txt" target="_blank">BDC Insert WageType in Infotype 0008</a></p>


<p>You might also be interested in these posts:<ol><li><a href='http://www.abap-tutorials.com/2009/12/11/abap-hr-program-to-download-employee-data/' rel='bookmark' title='ABAP HR program to download Employee data'>ABAP HR program to download Employee data</a></li>
<li><a href='http://www.abap-tutorials.com/2009/11/20/macros-in-abap-hr-programming-i/' rel='bookmark' title='Macros in ABAP-HR Programming &#8211; I'>Macros in ABAP-HR Programming &#8211; I</a></li>
<li><a href='http://www.abap-tutorials.com/2010/07/31/mm02-bdc/' rel='bookmark' title='MM02 BDC &#8211; Select Specific Material Master View'>MM02 BDC &#8211; Select Specific Material Master View</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.abap-tutorials.com/2010/05/25/bdc-to-insert-wage-type-in-infotype-0008/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Debugging RFC functions in SAP</title>
		<link>http://www.abap-tutorials.com/2010/05/12/debugging-rfc-functions-in-sap/</link>
		<comments>http://www.abap-tutorials.com/2010/05/12/debugging-rfc-functions-in-sap/#comments</comments>
		<pubDate>Wed, 12 May 2010 06:20:04 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[ABAP]]></category>
		<category><![CDATA[Function Modules]]></category>
		<category><![CDATA[Quick Reference]]></category>
		<category><![CDATA[SAP]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Upload Download]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[RFC]]></category>
		<category><![CDATA[RFC Destination]]></category>

		<guid isPermaLink="false">http://www.abap-tutorials.com/?p=1618</guid>
		<description><![CDATA[During the integrated tests, sometimes we need to debug a RFC that has been called from ASP.NET, just because the bug we are facing does not happens at SE37. So, everytime we needed to debug the RFC, we have to insert code something like following: IF &#60;&#60;CONDITION&#62;&#62;. WHILE 1 EQ 1. BREAK-POINT. ENDWHILE. ENDIF. By doing so, [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">During the integrated tests, sometimes we need to debug a RFC that has been called from ASP.NET, just because the bug we are facing does not happens at SE37.</p>
<div style="width: 100%; float: left;">
<p style="text-align: justify;"><a href="http://www.abap-tutorials.com/wp-content/uploads/2010/05/debugging.png"><img class="aligncenter size-full wp-image-1619" title="Debugging" src="http://www.abap-tutorials.com/wp-content/uploads/2010/05/debugging.png" alt="Debugging" width="205" height="239" /></a></p>
</div>
<p style="text-align: justify;"><span id="more-1618"></span></p>
<p style="text-align: justify;">So, everytime we needed to debug the RFC, we have to insert code something like following:</p>
<p style="text-align: justify;">IF &lt;&lt;CONDITION&gt;&gt;. WHILE 1 EQ 1. BREAK-POINT. ENDWHILE. ENDIF.<br />
By doing so, the program may get stuck. Then we have to go to SM50 and debug it.</p>
<p style="text-align: justify;">Following are the easy alternate steps for RFC debugging:</p>
<ul style="text-align: justify;">
<li>Get the username that makes the RFC call into SAP in ASP</li>
<li>Fire up SE37, go to the code section of your RFC</li>
<li>Look at the menu on top, click on &#8216;Utilities&#8217;</li>
<li>Click on Settings</li>
<li>Go for the Debugging tab</li>
<li>Fill in the username that will make the call from ASP</li>
<li>Click IP Matching ( otherwise a debug session appears for every time any user makes the call )</li>
<li>Session breakpoint active immediately is nice to click as well</li>
<li>Put your external breakpoint where you need it ( click the icon with the stop sign and the little man )</li>
<li>Test your ASP connector</li>
<li>The breakpoint should come into effect , a debug window will pop up</li>
<li style="text-align: justify;">You might not have the authorization to do this, if it doesnt work, use SU53 to find out what you&#8217;re missing.</li>
</ul>
<div style="text-align: justify; width: 100%; float: left;">
<p style="text-align: center;"><a href="http://www.abap-tutorials.com/wp-content/uploads/2010/05/debug_rfc.jpg"><img class="aligncenter size-full wp-image-1620" title="Debug RFC" src="http://www.abap-tutorials.com/wp-content/uploads/2010/05/debug_rfc.jpg" alt="Debug RFC" width="368" height="264" /></a></p>
</div>
<p style="text-align: justify;">This should work.</p>


<p>You might also be interested in these posts:<ol><li><a href='http://www.abap-tutorials.com/2009/07/23/debugging-smartforms-and-sapscript/' rel='bookmark' title='Debugging Smartforms and SAPScript in ABAP'>Debugging Smartforms and SAPScript in ABAP</a></li>
<li><a href='http://www.abap-tutorials.com/2011/07/14/debugging-background-scheduled-jobs-in-sap/' rel='bookmark' title='Debugging Background Scheduled Jobs in SAP'>Debugging Background Scheduled Jobs in SAP</a></li>
<li><a href='http://www.abap-tutorials.com/2010/06/20/bdc-session-automatic-execution-from-report/' rel='bookmark' title='BDC Session &#8211; Automatic Execution from Report'>BDC Session &#8211; Automatic Execution from Report</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.abap-tutorials.com/2010/05/12/debugging-rfc-functions-in-sap/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

