﻿<?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>MagdaQ &#187; ABAP</title>
	<atom:link href="http://www.programistka.eu/blog/lang/en-us/tag/abap/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.programistka.eu/blog</link>
	<description>Because there are women in IT too</description>
	<lastBuildDate>Mon, 10 Oct 2011 11:43:27 +0000</lastBuildDate>
	<language>en-us</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>ABAP: finding logical database with table name</title>
		<link>http://www.programistka.eu/blog/lang/en-us/2010/05/04/abap-poszukiwanie-logicznej-bazy-danych-na-podstawie-nazwy-tabeli</link>
		<comments>http://www.programistka.eu/blog/lang/en-us/2010/05/04/abap-poszukiwanie-logicznej-bazy-danych-na-podstawie-nazwy-tabeli#comments</comments>
		<pubDate>Tue, 04 May 2010 17:30:15 +0000</pubDate>
		<dc:creator>MagdaQ</dc:creator>
				<category><![CDATA[SAP]]></category>
		<category><![CDATA[ABAP]]></category>
		<category><![CDATA[tip]]></category>

		<guid isPermaLink="false">http://www.programistka.eu/blog/?p=146</guid>
		<description><![CDATA[I wrote this tip to embrace many &#8211; sometimes strange &#8211; needs of ABAP programmers. To find a logical database having database table name only you should use transaction SE36 &#8211; Logical database builder. We choose Extras -&#62; Table usage and write table name. The result is a list of logical databases, which use this [...]]]></description>
			<content:encoded><![CDATA[<p><br />
</p>



<p><span lang="en-us">I wrote this tip to embrace many &#8211; sometimes strange &#8211; needs of ABAP programmers.</span></p>
<p><span lang="en-us">To find a logical database having database table name only you should use transaction <strong>SE36</strong> &#8211; Logical database builder. We choose <strong><em>Extras -&#62; Table usage</em></strong> and write table name. The result is a list of logical databases, which use this table.</span></p>
<p><span lang="en-us">And for instance for PERNR table we got LDBs: PNP  (HR Master Data) i PNPCE (HR Master Data including concurrent employment).</span></p>
<p><span lang="en-us">This knowledge may be useful for example during exploration of not known ERP modules, when your only anchor point is table name from that area. <em><strong>Quick&#38;useful.</strong></em></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.programistka.eu/blog/lang/en-us/2010/05/04/abap-poszukiwanie-logicznej-bazy-danych-na-podstawie-nazwy-tabeli/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Search help for PCHOBJID in PNP raport</title>
		<link>http://www.programistka.eu/blog/lang/en-us/2010/02/03/pomoc-wyszukiwania-dla-pchobjid-w-raporcie-z-pnp</link>
		<comments>http://www.programistka.eu/blog/lang/en-us/2010/02/03/pomoc-wyszukiwania-dla-pchobjid-w-raporcie-z-pnp#comments</comments>
		<pubDate>Wed, 03 Feb 2010 15:33:49 +0000</pubDate>
		<dc:creator>MagdaQ</dc:creator>
				<category><![CDATA[SAP]]></category>
		<category><![CDATA[ABAP]]></category>
		<category><![CDATA[pch]]></category>
		<category><![CDATA[pnp]]></category>
		<category><![CDATA[searchhelp]]></category>

		<guid isPermaLink="false">http://www.programistka.eu/blog/?p=77</guid>
		<description><![CDATA[Lately I went through a problem in SAP HR program, HR-PA to be precise. I write an application, which uses PNP database, but one of its functionality uses organizational management, that means PCH usage. Generating selection screen fields from PCH application is quite easy. The problem shows off, when we want to add search help [...]]]></description>
			<content:encoded><![CDATA[<p><br />
<span lang="en-us">Lately I went through a problem in SAP HR program, HR-PA to be precise. I write an application, which uses PNP database, but one of its functionality uses organizational management, that means PCH usage. Generating selection screen fields from PCH application is quite easy. The problem shows off, when we want to add search help for object ID &#8211; common for PCH selection screen.</span><br />
<span id="more-77"></span><img class="aligncenter" title="Pomoc wyszukiwania dla obiektu OBJID z ekranu selekji PCH" src="/images/f4objid.jpg" alt="Pomoc wyszukiwania dla obiektu OBJID z ekranu selekji PCH" width="558" height="455" /></p>
<p><br />
<span lang="en-us">After quick googling the answer is found for instance in this <a href="http://www.saptechnical.com/Tips/ABAP/F4/ObjID.htm">post</a>. In brief you have to use a macro called rhxmacro by adding these four lines:</span></p>
<p><br />
<span lang="en-us"><em>At top of the report&#8230;</em></span></p>
<p>INCLUDE rhxmacro.</p>
<p><br />
<span lang="en-us"><em>&#8230;in INITIALIZATION section&#8230;</em></span></p>
<p>rhx-f4-objid-data.</p>
<p><br />
<span lang="en-us"><em>&#8230;and finally&#8230;</em></span></p>
<p>AT SELECTION-SCREEN ON VALUE-REQUEST FOR so_obj_o-low.</p>
<p>rhx-f4-objid-low pchplvar pchotype so_obj_o &#8221; &#8221;.</p>
<p><br />
<span lang="en-us">Everything would be perfect, if only there wasn&#8217;t an error in rhxmacro, which causes the code not to compile (it&#8217;s SAP, indeed). Last change provided by SAP comes from March 2009 and it looks like someone started doing some corrections in the macro, but didn&#8217;t finish his work. Later on, this &#8216;correction&#8217; went to users with one of the notes. The error, which makes macro not compiling is very common &#8211; to solve it you should delete one line of code, which tries to clear non-existing parameter (deleted during &#8216;correction&#8217; of the macro).</span></p>
<p><br />
<span lang="en-us">So taking everything into account, to have beautiful search help you should create new client macro (unfortunatelly), which is a corrected (definietly) and shortend for our needs version of rhxmacro. Code below. Enjoy.</span><br />
*INCLUDE ZRHXMACRO</p>
<p>DEFINE RHX-F4-OBJID-DATA.<br />
TABLES PLOGI.<br />
DATA : %F4_REPID LIKE SY-REPID.<br />
DATA : %F4_DYNNR LIKE SY-DYNNR.<br />
DATA : %F4_LINES TYPE I.<br />
DATA : %F4_SUBRC LIKE SY-SUBRC. &#8220;XMK E-MSG<br />
DATA : %F4_T77EO LIKE T77EO.    &#8220;XMK #431960<br />
DATA : BEGIN OF %F4_MACO_TAB OCCURS 1,<br />
PLVAR LIKE PLOG-PLVAR,<br />
OTYPE LIKE PLOG-OTYPE,<br />
OBJID LIKE OBJEC-REALO,<br />
END   OF %F4_MACO_TAB.<br />
DATA : %F4_PCHOBJID_LINES TYPE I.<br />
DATA : %F4_PLVAR LIKE WPLOG-PLVAR.<br />
DATA : %F4_OTYPE LIKE WPLOG-OTYPE.<br />
DATA : %F4_OLD_OTYPE LIKE WPLOG-OTYPE.<br />
DATA : %F4_SEL_OBJECTS    LIKE OBJEC   OCCURS 10 WITH HEADER LINE.<br />
DATA : %F4_MARKED_OBJECTS LIKE HRSOBID OCCURS 10 WITH HEADER LINE.<br />
END-OF-DEFINITION.</p>
<p>DEFINE RHX-F4-OBJID-LOW.</p>
<p>SET EXTENDED CHECK OFF.</p>
<p>%F4_REPID = SY-REPID.<br />
%F4_DYNNR = SY-DYNNR.<br />
DESCRIBE TABLE &#38;3 LINES %F4_LINES.<br />
IF &#38;4 EQ SPACE.<br />
PERFORM CHECK_PLVAR_F4(RHXCHK00) USING &#38;1 %F4_SUBRC.<br />
CHECK %F4_SUBRC = 0.<br />
ENDIF.<br />
IF &#38;5 EQ SPACE.<br />
IF &#38;2 IS INITIAL.<br />
CALL FUNCTION &#8216;ASK_OTYPE&#8217;<br />
EXPORTING<br />
D_OTYPE         = &#38;2<br />
IMPORTING<br />
OTYPE           = &#38;2<br />
EXCEPTIONS<br />
NO_OTYPE_SET    = 2<br />
WRONG_OTYPE_SET = 4.<br />
ENDIF.<br />
ENDIF.<br />
IF SY-DYNNR EQ &#8217;1000&#8242;.<br />
%F4_OLD_OTYPE = &#38;2.<br />
CLEAR:   %F4_MARKED_OBJECTS.<br />
REFRESH: %F4_MARKED_OBJECTS.<br />
%F4_MARKED_OBJECTS-PLVAR = &#38;1.<br />
%F4_MARKED_OBJECTS-OTYPE = &#38;2.<br />
CLEAR %F4_T77EO.<br />
SELECT SINGLE * FROM T77EO INTO %F4_T77EO.<br />
LOOP AT &#38;3 WHERE SIGN = &#8216;I&#8217;.<br />
CASE &#38;3-OPTION.<br />
WHEN &#8216;EQ&#8217;.<br />
%F4_MARKED_OBJECTS-SOBID = &#38;3-LOW.<br />
APPEND %F4_MARKED_OBJECTS.<br />
WHEN &#8216;BT&#8217;.<br />
IF %F4_T77EO IS INITIAL.<br />
SELECT * FROM PLOGI<br />
WHERE OBJID &#62;= &#38;3-LOW  AND<br />
OBJID &#60;= &#38;3-HIGH AND<br />
OTYPE EQ &#38;2      AND<br />
PLVAR EQ &#38;1.<br />
%F4_MARKED_OBJECTS-SOBID = PLOGI-OBJID.<br />
APPEND %F4_MARKED_OBJECTS.<br />
ENDSELECT.<br />
ENDIF.<br />
ENDCASE.</p>
<p>ENDLOOP.<br />
CALL FUNCTION &#8216;RH_OBJID_REQUEST&#8217;<br />
EXPORTING<br />
PLVAR             = &#38;1<br />
OTYPE             = &#38;2<br />
DYNPRO_REPID      = %F4_REPID<br />
DYNPRO_DYNNR      = %F4_DYNNR<br />
DYNPRO_PLVARFIELD = &#38;4<br />
DYNPRO_OTYPEFIELD = &#38;5<br />
SET_MODE          = &#8216;X&#8217;<br />
IMPORTING<br />
SEL_PLVAR         = %F4_PLVAR<br />
SEL_OTYPE         = %F4_OTYPE<br />
TABLES<br />
SEL_OBJECTS       = %F4_SEL_OBJECTS<br />
MARKED_OBJECTS    = %F4_MARKED_OBJECTS<br />
EXCEPTIONS<br />
CANCELLED         = 1<br />
WRONG_CONDITION   = 2<br />
NOTHING_FOUND     = 3<br />
ILLEGAL_MODE      = 4<br />
INTERNAL_ERROR    = 5<br />
OTHERS            = 6.<br />
IF &#38;5 NE SPACE AND<br />
%F4_OLD_OTYPE NE %F4_OTYPE.<br />
REFRESH &#38;3.<br />
ENDIF.<br />
IF SY-SUBRC EQ 0.<br />
REFRESH: &#38;3.<br />
CLEAR:   &#38;3.<br />
LOOP AT %F4_SEL_OBJECTS.</p>
<p>&#38;3-LOW    = %F4_SEL_OBJECTS-REALO.<br />
&#38;3-OPTION = &#8216;EQ&#8217;.<br />
&#38;3-SIGN = &#8216;I&#8217;.<br />
APPEND &#38;3.</p>
<p>ENDLOOP.<br />
CLEAR:   %F4_SEL_OBJECTS.<br />
REFRESH: %F4_SEL_OBJECTS.<br />
else.                                             &#8220;Note1265523<br />
clear: %f4_sel_objects, %f4_sel_objects[].<br />
clear: %f4_marked_objects, %f4_marked_objects[].<br />
clear: &#38;3-low, &#38;3[].<br />
ENDIF.<br />
ELSE.<br />
PERFORM OBJID_REQUEST_PLVAR_OTYPE<br />
USING SPACE &#38;1   &#38;2<br />
%F4_REPID  %F4_DYNNR<br />
SPACE      SPACE<br />
%F4_PLVAR  %F4_OTYPE<br />
&#38;3-LOW.<br />
IF &#38;4 NE SPACE.<br />
&#38;1 = %F4_PLVAR.<br />
ENDIF.<br />
IF &#38;5 NE SPACE.<br />
&#38;2 = %F4_OTYPE.<br />
ENDIF.<br />
EXIT.<br />
ENDIF.<br />
DESCRIBE TABLE &#38;3 LINES %F4_PCHOBJID_LINES.<br />
IF %F4_PCHOBJID_LINES GT %F4_LINES.<br />
IF %F4_LINES EQ 0.<br />
MESSAGE S026(PP).<br />
ELSE.<br />
MESSAGE S027(PP).<br />
ENDIF.<br />
ELSE.<br />
ENDIF.<br />
******CLEAR : SUBRC. &#60;&#8212; <span lang="en-us">this is the line we need to remove from original macro</span><br />
READ TABLE &#38;3 INDEX 1.<br />
IF SY-SUBRC GT 0.<br />
CLEAR &#38;3.<br />
ENDIF.<br />
IF &#38;4 NE SPACE.<br />
&#38;1 = %F4_PLVAR.<br />
ENDIF.<br />
IF &#38;5 NE SPACE.<br />
&#38;2 = %F4_OTYPE.<br />
ENDIF.<br />
SET SCREEN SY-DYNNR.<br />
LEAVE SCREEN.</p>
<p>SET EXTENDED CHECK ON.</p>
<p>END-OF-DEFINITION.</p>
<p><br />
<span lang="en-us">Anyway, that should be reported to SAP.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.programistka.eu/blog/lang/en-us/2010/02/03/pomoc-wyszukiwania-dla-pchobjid-w-raporcie-z-pnp/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

