<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>sap圈子</title>
    <description>sap圈子</description>
    <link>http://sap.group.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
          <item>
        <title>一个sold-to-party,多个ship-to-party的问题</title>
        <author>blueoxygen</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sap.javaeye.com">blueoxygen</a>&nbsp;
                    链接：<a href="http://sap.group.javaeye.com/group/blog/249572" style="color:red;">http://sap.group.javaeye.com/group/blog/249572</a>&nbsp;
          发表时间: 2008年10月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>虽然这个被大家称为是经典问题，但是依然有很多人在问，所以还是简单的演示一下好，其实就是几个图片而已。</p>
<p>SAP不但提供了header的partner功能，item也有的 所以只需要在item的partner功能里，给不同的item设置不同的ship-to-party就好了。至于partner determination的配置，计划近期写一篇简单讲解一下。</p>
<p>
<object height="327" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="500">
<param name="src" value="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811cd14e6a011cd271311d25dc-m" /><embed src="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811cd14e6a011cd271311d25dc-m" type="application/x-shockwave-flash" height="327" width="500"></embed>
</object>
</p>
<p>&nbsp;</p>
<p>
<object height="310" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="500">
<param name="src" value="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811cd14e6a011cd271318125dd-m" /><embed src="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811cd14e6a011cd271318125dd-m" type="application/x-shockwave-flash" height="310" width="500"></embed>
</object>
</p>
          <br/>
          <span style="color:red;">
            <a href="http://sap.group.javaeye.com/group/blog/249572#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 06 Oct 2008 21:57:57 +0800</pubDate>
        <link>http://sap.group.javaeye.com/group/blog/249572</link>
        <guid>http://sap.group.javaeye.com/group/blog/249572</guid>
      </item>
          <item>
        <title>与variant有关的几个FUNCTION</title>
        <author>blueoxygen</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sap.javaeye.com">blueoxygen</a>&nbsp;
                    链接：<a href="http://sap.group.javaeye.com/group/blog/227041" style="color:red;">http://sap.group.javaeye.com/group/blog/227041</a>&nbsp;
          发表时间: 2008年08月12日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <ul>
<li><span style="font-size: x-small;">VARI_USER_VARS_GET</span></li>
</ul>
<p><span style="font-size: x-small;">Reads existing variable values</span></p>
<ul>
<li><span style="font-size: x-small;">VARI_USER_VARS_SET</span></li>
</ul>
<p><span style="font-size: x-small;">Changes existing variable values <br />
<ul>
<li>VARI_USER_VARS_COPY</li>
</ul>
Copies variable values <br />
<ul>
<li>VARI_USER_VARS_DELETE</li>
</ul>
Deletes variable values <br />
<ul>
<li>VARI_USER_VARS_RENAME</li>
</ul>
Renames variable values <br />
<ul>
<li>VARI_USER_VARS_DIALOG</li>
</ul>
Dialog for entering variable values</span><span style="font-size: small;"> <br /></span></p>
<ul>
<li><span style="font-size: x-small;">RS_VARIANT_VALUES_TECH_DATA</span></li>
</ul>
<p><span style="font-size: x-small;">Get variant data</span></p>
<ul>
<li><span style="font-size: x-small;">RS_CHANGE_CREATED_VARIANT</span></li>
</ul>
<p><span style="font-size: x-small;">Change variant data</span></p>
          <br/>
          <span style="color:red;">
            <a href="http://sap.group.javaeye.com/group/blog/227041#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 12 Aug 2008 15:50:41 +0800</pubDate>
        <link>http://sap.group.javaeye.com/group/blog/227041</link>
        <guid>http://sap.group.javaeye.com/group/blog/227041</guid>
      </item>
          <item>
        <title>日本会计中 仮払金・仮受金 解释</title>
        <author>blueoxygen</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sap.javaeye.com">blueoxygen</a>&nbsp;
                    链接：<a href="http://sap.group.javaeye.com/group/blog/222106" style="color:red;">http://sap.group.javaeye.com/group/blog/222106</a>&nbsp;
          发表时间: 2008年07月31日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><span style="font-size: medium; color: #ff0000;"><span style="text-decoration: underline;"><strong>＜ 仮 払 金 ＞<br /></strong></span></span>帳簿を記入していると、 現金の支出があったのに相手勘定がわからないというときがあります。 現金が減っているのにその理由がわからないという場合があるんです。</p>
<!-- ＜＝エントリー本文 -->
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>これだけ書くと、お金を勝手に使い込んでいるような悪いイメージを想像してしまいますが、そうではありません。</p>
<p>例えば、従業員が出張に行く際、旅費などの出張費を渡します。そういった場合、出張先でいくら使うのかが、わからないので、だいたいの金額を渡します。このように現金が減る事はわかっているのにその目的がはっきりしない場合、<span style="color: #ff6820;"><strong>仮払金（かりばらいきん）勘定</strong></span>という資産の勘定を使用します。 </p>
<p>上記のケースでは、出張費で処理をしてもよさそうですが、渡した金額を全て出張で使うとは限りませんよね。なので一時的に仮払金として処理をし、正しい金額が確定したときに出張費などに振り替えます。</p>
<p>仮払金勘定は現金を支払ったとき、金額が確定したときの２つのケースがあります。<br />それでは、取引と仕訳を見てみましょう。</p>
<p>&nbsp;</p>
<p><span style="color: #ff6820;"><strong>お金を支払ったとき ：</strong></span></p>
<p><strong>従業員の出張にあたり、旅費として現金60,000円を概算で渡した。</strong></p>
<table border="0">
<tbody>
<tr>
<td align="center" colspan="2"><span style="font-size: small;">借　　　方</span></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td align="center" colspan="2"><span style="font-size: small;">貸　　　方</span></td>
</tr>
<tr>
<td><span style="font-size: small;">（仮払金）</span></td>
<td align="right"><span style="font-size: small;">60,000</span></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td><span style="font-size: small;">（現　金）</span></td>
<td align="right"><span style="font-size: small;">60,000</span></td>
</tr>
</tbody>
</table>
<p><br />このような場合、仮払金勘定の借方に概算金額を記入します。この段階では、旅費にいくら使うかわからないからです。</p>
<p><span style="color: #ff6820;"><strong><br />金額が確定したとき ：</strong></span></p>
<p><strong>従業員が出張から戻り、旅費の金額が70,000円であることがわかった。不足額は従業員へ現金で支払った。 &nbsp;</strong></p>
<table border="0">
<tbody>
<tr>
<td align="center" colspan="2"><span style="font-size: small;">借　　　方</span></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td align="center" colspan="2"><span style="font-size: small;">貸　　　方</span></td>
</tr>
<tr>
<td><span style="font-size: small;">（旅　費）</span></td>
<td align="right"><span style="font-size: small;">70,000</span></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td><span style="font-size: small;">（仮払金）</span></td>
<td align="right"><span style="font-size: small;">60,000</span></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td><span style="font-size: small;">（現　金）</span></td>
<td align="right"><span style="font-size: small;">10,000</span></td>
</tr>
</tbody>
</table>
<p><br />この時、はじめて何にいくら使ったのかがわかったので、仮払金から旅費へ振り替えます。</p>
<p>ここでは、旅費が仮払金を超えてしまったケースを見てきました。仮払金の範囲内で納まった場合の取引も見てみましょう。</p>
<p><strong>従業員が出張から戻り、旅費の金額が40,000円であることがわかった。残金20,000円は、現金で受け取った。</strong></p>
<table border="0">
<tbody>
<tr>
<td align="center" colspan="2"><span style="font-size: small;">借　　　方</span></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td align="center" colspan="2"><span style="font-size: small;">貸　　　方</span></td>
</tr>
<tr>
<td><span style="font-size: small;">（旅　費）</span></td>
<td align="right"><span style="font-size: small;">40,000</span></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td><span style="font-size: small;">（仮払金）</span></td>
<td align="right"><span style="font-size: small;">60,000</span></td>
</tr>
<tr>
<td><span style="font-size: small;">（現　金）</span></td>
<td align="right"><span style="font-size: small;">20,000</span></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p><span style="font-size: medium; color: #ff0000;"><span style="text-decoration: underline;"><strong>＜ 仮 受 金 ＞<br /></strong></span></span>仮払金勘定は、現金を支払ったとき、その理由や金額がわからない場合に使用しました。それとは反対に現金を受け取ったときに記入する勘定科目がわからない、金額が不確定といった場合は、<span style="color: #ff6820;"><strong>仮受金（かりうけきん）勘定</strong></span>という負債の勘定を使用します。</p>
<p>仮受金勘定は、現金を受け取ったとき、金額が確定したときの２つのケースがあります。</p>
<p>&nbsp;</p>
<p><span style="color: #ff6820;"><strong>現金を受け取ったとき ：</strong></span><br />出張中の社員から、当座預金に100,000円の振込があったが、その内容は不明である。</p>
<table border="0">
<tbody>
<tr>
<td align="center" colspan="2"><span style="font-size: small;">借　　　方</span></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td align="center" colspan="2"><span style="font-size: small;">貸　　　方</span></td>
</tr>
<tr>
<td><span style="font-size: small;">（当座預金）</span></td>
<td align="right"><span style="font-size: small;">100,000</span></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td><span style="font-size: small;">（仮受金）</span></td>
<td align="right"><span style="font-size: small;">100,000</span></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>現金を受け取ったが、この段階では受け取った100,000円の内容が不明なので仮受金勘定を使用します。</p>
<p>&nbsp;</p>
<p><span style="color: #ff6820;"><strong>金額が確定したとき ：</strong></span></p>
<p><strong>従業員が出張から戻り、当座預金に振り込まれた100,000円は商品の売上代金であることが判明した。</strong></p>
<table border="0">
<tbody>
<tr>
<td align="center" colspan="2"><span style="font-size: small;">借　　　方</span></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td align="center" colspan="2"><span style="font-size: small;">貸　　　方</span></td>
</tr>
<tr>
<td><span style="font-size: small;">（仮受金）</span></td>
<td align="right"><span style="font-size: small;">100,000</span></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td><span style="font-size: small;">（売　上）</span></td>
<td align="right">
<p><span style="font-size: small;">100,000</span></p>
<p>&nbsp;</p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://sap.group.javaeye.com/group/blog/222106#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 31 Jul 2008 11:15:16 +0800</pubDate>
        <link>http://sap.group.javaeye.com/group/blog/222106</link>
        <guid>http://sap.group.javaeye.com/group/blog/222106</guid>
      </item>
          <item>
        <title>[SAP]用Check Deposit做customer应收账款clear</title>
        <author>blueoxygen</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sap.javaeye.com">blueoxygen</a>&nbsp;
                    链接：<a href="http://sap.group.javaeye.com/group/blog/219589" style="color:red;">http://sap.group.javaeye.com/group/blog/219589</a>&nbsp;
          发表时间: 2008年07月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>我们手动的做一下支票存款(Check Deposit)来进行应收账款的Clear操作。</p>
<p>首先TCODE FB70来做一张invoice</p>
<p>其中customer为PAUL POWER,Accounts Receivable帐户为159100. 应收账款11欧元。</p>
<p>
<object height="353" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="500">
<param name="src" value="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811b547dca011b5956b3c177ec-m" /><embed src="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811b547dca011b5956b3c177ec-m" type="application/x-shockwave-flash" height="353" width="500"></embed>
</object>
</p>
<p>此刻我们用TCODE&nbsp;&nbsp; FBL5N - Display/Change Line Items来查看PAUL POWER客户，可以看到这笔未清项。</p>
<p>
<object height="261" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="500">
<param name="src" value="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811b547dca011b5956b45277ed-m" /><embed src="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811b547dca011b5956b45277ed-m" type="application/x-shockwave-flash" height="261" width="500"></embed>
</object>
</p>
<p>TCODE FAGLB03 - Display Balances (New) 查看other receivable的balance状况为</p>
<p>
<object height="500" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="420">
<param name="src" value="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811b547dca011b59579b4c7841-m" /><embed src="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811b547dca011b59579b4c7841-m" type="application/x-shockwave-flash" height="500" width="420"></embed>
</object>
</p>
<p>&nbsp;</p>
<p>之后我们便开始手动操作支票收款，TCODE为FF68 - Manual Entry</p>
<p>其中输入check支票的屏幕需要输入支票金额，支票号码，支付的customer的search item以及Invoice号码。</p>
<p>
<object height="500" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="466">
<param name="src" value="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811b547dca011b59579c527844-m" /><embed src="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811b547dca011b59579c527844-m" type="application/x-shockwave-flash" height="500" width="466"></embed>
</object>
</p>
<p>
<object height="238" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="500">
<param name="src" value="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811b547dca011b59579cad7845-m" /><embed src="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811b547dca011b59579cad7845-m" type="application/x-shockwave-flash" height="238" width="500"></embed>
</object>
</p>
<p>但输入结束，保存之后，通过菜单，进行POST，我们会看到生成了两个session。</p>
<p>因为check deposite会有两个session操作的过程:</p>
<p>subledger session用来与客户AR帐户做clear</p>
<p>bank session会对bank账户做clear</p>
<p>
<object height="209" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="500">
<param name="src" value="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811b547dca011b5956b4b177ee-m" /><embed src="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811b547dca011b5956b4b177ee-m" type="application/x-shockwave-flash" height="209" width="500"></embed>
</object>
</p>
<p>&nbsp;</p>
<p>通过TCODE SM35会发现两个新建立的session,首先选中BANK session，点击process，选择foreground，我们可以看到整个clear的过程，是通过FB01进行的。</p>
<p>之后选中customer session，点击process，可以看到整个clear过程，通过FB05进行。</p>
<p>Bank session跑完之后，我们再次查看159100的balance，可以看到，已经有11欧元的debit</p>
<p>
<object height="500" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="427">
<param name="src" value="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811b547dca011b59579bbb7842-m" /><embed src="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811b547dca011b59579bbb7842-m" type="application/x-shockwave-flash" height="500" width="427"></embed>
</object>
</p>
<p>subledger session跑完之后，我们再次查看paul power的open item已经消失了，出现在了cleared item里面</p>
<p>
<object height="336" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="500">
<param name="src" value="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811b547dca011b5956b31477ea-m" /><embed src="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811b547dca011b5956b31477ea-m" type="application/x-shockwave-flash" height="336" width="500"></embed>
</object>
</p>
<p>&nbsp;</p>
<p>通过FB03可以查看这两个session执行之后产生的document. 整个check deposit过程就结束了。</p>
<p>
<object height="233" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="500">
<param name="src" value="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811b547dca011b59579c037843-m" /><embed src="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811b547dca011b59579c037843-m" type="application/x-shockwave-flash" height="233" width="500"></embed>
</object>
</p>
<p>
<object height="264" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="500">
<param name="src" value="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811b547dca011b5956b37477eb-m" /><embed src="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811b547dca011b5956b37477eb-m" type="application/x-shockwave-flash" height="264" width="500"></embed>
</object>
</p>
          <br/>
          <span style="color:red;">
            <a href="http://sap.group.javaeye.com/group/blog/219589#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 25 Jul 2008 17:10:05 +0800</pubDate>
        <link>http://sap.group.javaeye.com/group/blog/219589</link>
        <guid>http://sap.group.javaeye.com/group/blog/219589</guid>
      </item>
          <item>
        <title>[SAP]Bank account, House bank, Bank Account基础</title>
        <author>blueoxygen</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sap.javaeye.com">blueoxygen</a>&nbsp;
                    链接：<a href="http://sap.group.javaeye.com/group/blog/219526" style="color:red;">http://sap.group.javaeye.com/group/blog/219526</a>&nbsp;
          发表时间: 2008年07月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><strong>House Bank</strong>: A business partner that represents a bank via which you can process your own internal transactions. 也就是说，你的内部业务处理所需要的一个银行。但是并非是只有一个科目或者一个帐户。<br />House Bank中的每一个帐户，靠Account ID来区别。House Bank和Account ID组合在一起，就唯一确定了一个Bank Account. 每个Bank Account都指定了一个唯一的G/L中的科目。</p>
<p>他们三个之间的关系如下<br />
<object height="351" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="500">
<param name="src" value="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811b547e20011b58d6e8d1660b-m" /><embed src="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811b547e20011b58d6e8d1660b-m" type="application/x-shockwave-flash" height="351" width="500"></embed>
</object>
</p>
<p>&nbsp;</p>
<p>在IDES系统中，我们演示如下。</p>
<p>首先在找到一个G/L Account主数据，然后看到有House Bank和Account ID两个栏位。</p>
<p>
<object height="444" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="500">
<param name="src" value="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811b547e20011b58e3e87e67c3-m" /><embed src="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811b547e20011b58e3e87e67c3-m" type="application/x-shockwave-flash" height="444" width="500"></embed>
</object>
</p>
<p>&nbsp;</p>
<p>TCODE：FI12进入到后台配置，我们就可以看到一个House Bank体现了一个Bank Key定义的银行主数据，而一个House Bank下会有很多Account ID， House Bank和Account ID确定了唯一的一个Bank Account，每个Bank Account会制定一个G/L Account。</p>
<p>
<object height="242" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="500">
<param name="src" value="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811b547e20011b58d6e9cd660e-m" /><embed src="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811b547e20011b58d6e9cd660e-m" type="application/x-shockwave-flash" height="242" width="500"></embed>
</object>
</p>
<p>
<object height="379" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="500">
<param name="src" value="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811b547e20011b58d6e971660d-m" /><embed src="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811b547e20011b58d6e971660d-m" type="application/x-shockwave-flash" height="379" width="500"></embed>
</object>
</p>
<p>
<object height="208" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="500">
<param name="src" value="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811b547e20011b58d6e84d660a-m" /><embed src="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811b547e20011b58d6e84d660a-m" type="application/x-shockwave-flash" height="208" width="500"></embed>
</object>
</p>
<p>
<object height="427" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="500">
<param name="src" value="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811b547e20011b58d6e921660c-m" /><embed src="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811b547e20011b58d6e921660c-m" type="application/x-shockwave-flash" height="427" width="500"></embed>
</object>
</p>
          <br/>
          <span style="color:red;">
            <a href="http://sap.group.javaeye.com/group/blog/219526#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 25 Jul 2008 14:50:32 +0800</pubDate>
        <link>http://sap.group.javaeye.com/group/blog/219526</link>
        <guid>http://sap.group.javaeye.com/group/blog/219526</guid>
      </item>
          <item>
        <title>invoice和cash journal做clear</title>
        <author>blueoxygen</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sap.javaeye.com">blueoxygen</a>&nbsp;
                    链接：<a href="http://sap.group.javaeye.com/group/blog/211220" style="color:red;">http://sap.group.javaeye.com/group/blog/211220</a>&nbsp;
          发表时间: 2008年07月03日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>当我们利用TCODE FBCJ来记录cash journal的时候，如果是一笔客户的incoming payment，即时POST了，也无法与相匹配的invoice做clear。我们必须手动clear一次。过程如下。</p>
<p>&nbsp;</p>
<p>首先FB70做一张invoice</p>
<p>
<object height="324" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="500">
<param name="src" value="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811ae143fa011ae85de0a91db0-m" /><embed src="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811ae143fa011ae85de0a91db0-m" type="application/x-shockwave-flash" height="324" width="500"></embed>
</object>
</p>
<p>&nbsp;</p>
<p>FBCJ来记录一笔cash journal</p>
<p>
<object height="324" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="500">
<param name="src" value="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811ae143fa011ae85ddfe51dac-m" /><embed src="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811ae143fa011ae85ddfe51dac-m" type="application/x-shockwave-flash" height="324" width="500"></embed>
</object>
</p>
<p>&nbsp;</p>
<p>最后F-32将Invoice和payment选中，进行clear</p>
<p>
<object height="324" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="500">
<param name="src" value="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811ae143fa011ae85de0561dae-m" /><embed src="http://f.yupoo.com/v.swf?id=blueoxygen-ff8080811ae143fa011ae85de0561dae-m" type="application/x-shockwave-flash" height="324" width="500"></embed>
</object>
</p>
          <br/>
          <span style="color:red;">
            <a href="http://sap.group.javaeye.com/group/blog/211220#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 03 Jul 2008 18:08:28 +0800</pubDate>
        <link>http://sap.group.javaeye.com/group/blog/211220</link>
        <guid>http://sap.group.javaeye.com/group/blog/211220</guid>
      </item>
          <item>
        <title>讲ALV GRID中改变的值更新到ALV内表中</title>
        <author>blueoxygen</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sap.javaeye.com">blueoxygen</a>&nbsp;
                    链接：<a href="http://sap.group.javaeye.com/group/blog/207816" style="color:red;">http://sap.group.javaeye.com/group/blog/207816</a>&nbsp;
          发表时间: 2008年06月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>首先编辑ALV的CALLER_EXIT事件，在call back的subroutine中做如下处理<br />CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'<br />&nbsp;&nbsp;&nbsp; IMPORTING<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; E_GRID = W_ALV_GRID.</p>
<p>&nbsp;</p>
<p>最后调用 W_ALV_GRID-&gt;CHECK_CHANGED_DATA( ).</p>
<p>ALV GRID中编辑的值就可以更新到ALV内表中了</p>
          <br/>
          <span style="color:red;">
            <a href="http://sap.group.javaeye.com/group/blog/207816#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 25 Jun 2008 12:40:11 +0800</pubDate>
        <link>http://sap.group.javaeye.com/group/blog/207816</link>
        <guid>http://sap.group.javaeye.com/group/blog/207816</guid>
      </item>
          <item>
        <title>做outbound delivery时是否需要做transfer order来做picking的问题</title>
        <author>blueoxygen</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sap.javaeye.com">blueoxygen</a>&nbsp;
                    链接：<a href="http://sap.group.javaeye.com/group/blog/195751" style="color:red;">http://sap.group.javaeye.com/group/blog/195751</a>&nbsp;
          发表时间: 2008年05月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>这个是我曾经在itput发的帖子提问 <a href="http://www.itpub.net/thread-922888-1-1.html">http://www.itpub.net/thread-922888-1-1.html</a></p>
<p>其实当时最后一个帖子已经回答了我的问题，只是我当时没有自己练习出来。<br />今天做了一下练习，发现是否需要做TO完全就是取决于这个material item的plant+SLoc.是否被assin了一个warehouse NO.<br />当没有assign的时候，就不需要TO，直接可以手动添数做PICK，当assign了的时候，就需要来做一个TO做picking了。</p>
          <br/>
          <span style="color:red;">
            <a href="http://sap.group.javaeye.com/group/blog/195751#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 22 May 2008 17:37:54 +0800</pubDate>
        <link>http://sap.group.javaeye.com/group/blog/195751</link>
        <guid>http://sap.group.javaeye.com/group/blog/195751</guid>
      </item>
          <item>
        <title>汇票 支票 本票</title>
        <author>blueoxygen</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sap.javaeye.com">blueoxygen</a>&nbsp;
                    链接：<a href="http://sap.group.javaeye.com/group/blog/195407" style="color:red;">http://sap.group.javaeye.com/group/blog/195407</a>&nbsp;
          发表时间: 2008年05月21日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><a href="http://baike.baidu.com/view/195.htm" target="_blank">汇票</a>。汇票是出票人签发的，委托付款人在见票时或者在指定日期或者在将来可以确定的日期，向收款人或持票人无条件支付确定金额的票据。汇票的当事人，有出票人、付款人和收款人。其中，出票人可以同时是收款人。出票人是签发汇票并将其交付与他人之人。汇票签发后，出票人对收款人及正当持票人承担当汇票提示时付款人一定承兑或付款的保证责任。在汇票未经承兑之前，出票人是汇票的主债务人。付款人又称受票人，是根据出票人的命令支付票款之人。但在远期汇票，付款人在作出承兑前只是从债务人，汇票承兑后，付款人成为主债务人，出票人退居从债务人地位。收款人是有权收取票款之人，亦即汇票的债权人。收款人如果遭到拒付，有权向出票人追索票款。 <br />根据出票人的不同，汇票分商业汇票与银行汇票。出票人为企业或个人的，为商业汇票 。在商品买卖交易中 ，买方以第三方为付款人、以卖方为收款人签发的汇票，或者卖方以买方为付款人、以自己为收款人签发的汇票，即为商业汇票。银行汇票是以银行为出票人的汇票，它是一家银行向另一家银行发出的书面支付命令。银行汇票由银行签发后交汇款人，由汇款人寄给收款人。 <br /><br />本票。本票是出票人签发的，承诺自己在见票时或在指定的日期或在可以确定的将来日期，无条件向收款人或持票人支付确定金额的票据。本票只有出票人与收款人两方当事人。出票人是签发本票并将其交付他人之人，他完成出票行为后即成为本票的付款人，承担见票付款或定期付款的义务。收款人是自出票人取得本票，有权向出票人提示并要求出票人付款之人。 <br />根据出票人的不同，本票分为一般本票与银行本票。由企业或个人签发的为一般本票，由银行签发的为银行本票。我国《票据法》规定的本票，限于银行本票。银行签发的见票即付不记名本票，可以代替现金流通，因此，各国对签发银行本票均有一定的限制。我国《票据法》第75条规定：本票出票人的资格由中国人民银行审定，具体管理办法由中国人民银行规定。 <br /><br /><a href="http://baike.baidu.com/view/20075.htm?ss=6132B05E3D1609F3714DEB162419B116D9413449" target="_blank">支票</a>是指由出票人签发的，委托办理支票存款业务的银行或者其他金融机构在见票时无条件支付确定的金额给收款人或者持票人的票据。开立支票存款账户和领用支票，必须有可靠的资信，并存入一定的资金。支票可分为现金支票和转账支票。支票一经背书即可流通转让，具有通货作用，成为替代货币发挥流通手段和支付手段职能的信用流通工具。运用支票进行货币结算，可以减少现金的流通量，节约货币流通费用。</p>
<p>&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://sap.group.javaeye.com/group/blog/195407#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 21 May 2008 19:34:14 +0800</pubDate>
        <link>http://sap.group.javaeye.com/group/blog/195407</link>
        <guid>http://sap.group.javaeye.com/group/blog/195407</guid>
      </item>
          <item>
        <title>[收藏]移动类型</title>
        <author>blueoxygen</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sap.javaeye.com">blueoxygen</a>&nbsp;
                    链接：<a href="http://sap.group.javaeye.com/group/blog/195392" style="color:red;">http://sap.group.javaeye.com/group/blog/195392</a>&nbsp;
          发表时间: 2008年05月21日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <a href="http://www.itpub.net/viewthread.php?tid=963690" target="_blank">http://www.itpub.net/viewthread.php?tid=963690</a><br /><br />移动类型&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Translated by&nbsp;&nbsp; baiboyd.itpub.net&nbsp;&nbsp;&nbsp; 2007年6月<br /><br /><br /><br /><br />----------------------------------------------------------------------------------------------------------------------------------------------------------------<br /><br /><br /><br /><br />The Movement Type Concept <br />移动类型的概念<br /><br /><br /><br /><br />What Is a Movement Type?<br />什么是移动类型？<br /><br /><br /><br /><br />When you enter a goods movement in the system, you must enter a movement type to differentiate between the various goods movements. A movement type is a three-digit identification key for a goods movement. The following table contains examples of movement types.<br />当你在SAP系统输入一个货物移动时，你必须输入一个移动类型来区分不用的货物移动。一个移动类型是由3个数字组成的检索表。下表中包含了几个移动类型的例子。<br /><br /><br /><br /><br />Goods Movements and Movement Types 货物移动与移动类型<br /><br /><br /><br />Goods movement 货物移动<br /><br /><br /> Movement type 移动类型<br /><br /><br /> <br />Goods receipt for a purchase order 来自采购订单的收货<br /><br /><br /> 101<br /><br /><br /> <br />Goods issue for a cost center 有关成本中心的发货<br /><br /><br /> 201<br /><br /><br /> <br />Release from quality inspection stock 质检库存到非限制的释放<br /><br /><br /> 321<br /><br /><br /> <br /><br /><br />Control Functions of the Movement Type<br />移动类型的控制功能<br /><br /><br /><br /><br />The movement type has important control functions in Inventory Management.<br />在库存管理中，移动类型有着重要的控制功能。<br /><br /><br /><br /><br />For example, the movement type plays an important role in<br />例如，移动类型扮演着这样的角色：<br /><br /><br /><br /><br />updating of quantity fields <br />数量值的更新<br />updating of stock and consumption accounts <br />库存及消耗科目的更新 <br /><br />determining which fields are displayed during entry of a document in the system<br />决定在系统输入一个凭证时，哪一个栏位会被显示<br />Results of a Good Movement in the System<br />货物移动在系统中产生的结果<br /><br /><br /><br /><br />Use 用法<br /><br /><br /><br /><br />When you enter a goods movement, you start the following chain of events in the system:<br />当你输入一个货物移动时，你便开始了如下一系列的事件：<br /><br /><br /><br /><br />A material document is generated, which is used as proof of the movement and as a source of information for any other applications involved. <br />一个物料凭证会被创建，可以被用来作为移动的证明，及作为其它任何相关应用的一个信息来源。 <br />If the movement is relevant for Financial Accounting, one or more accounting documents are generated. <br />如果移动跟财务会计有关，同时还会另外产生一个或多个会计凭证。 <br />The stock quantities of the material are updated. <br />物料的库存数量被更新 <br /><br />The stock values in the material master record are updated, as are the stock and consumption accounts.<br />物料主数据的库存价值被更新，例如库存及消耗科目<br />Depending on the movement type, additional updates are carried out in participating applications. All updates are based on the information contained in the material document and the financial accounting document. For example, in the case of a goods issue for a cost center, the consumption values of the items are also updated.<br />根据移动类型，在参与的应用中会产生额外的数据更新。所有的更新都是基于包含在物料凭证及会计凭证的信息的。例如，有关成本中心的发货，行项目中的消耗值也同样会更新。<br /><br /><br /><br /><br />Use of movement type<br />移动类型的使用<br /><br /><br /><br /><br />Inventory Management (MM-IM)<br />库存管理 (MM-IM)<br /><br /><br /><br /><br />Classification key indicating the type of material movement (for example, goods receipt, goods issue, physical stock transfer).<br />分类码指定了物料移动的类型（例如，收货，发货，库存转储）<br /><br /><br /><br /><br />The movement type enables the system to find predefined posting rules determining how the accounts of the financial accounting system (stock and consumption accounts) are to be posted and how the stock fields in the material master record are to be updated.<br />移动类型能够激发系统去查找过帐规则，以确定财务会计系统的科目（库存及消耗科目）如何记帐，以及物料主数据中的库存值如何更新。<br /><br /><br /><br /><br />Logistics Execution (LE)<br />后勤执行 (LE)<br /><br /><br /><br /><br />Classification key used in the Warehouse Management system to describe a stock movement within a warehouse complex (warehouse number).<br />分类码在仓库管理系统中用来描述在一个复杂的仓库（仓库号）中的库存移动<br /><br /><br /><br /><br />Industry-Specific Components for Hospitals (IS-H)<br />用于医院的特定行业组件 (IS-H) (略)<br /><br /><br /><br /><br />Classification of a movement category.<br /><br /><br /><br /><br />By way of an example, the movement category 'admission' can have the movement types<br /><br /><br /><br /><br /><br /><br />Self-referral <br /><br /><br /><br /><br />Referral by general practitioner <br /><br /><br /><br /><br />Admission via emergency physician's car <br /><br /><br /><br /><br />Transfer from external hospital <br />Copy, Change Movement Types<br />复制，更改移动类型<br /><br /><br /><br /><br />In this step, you can<br />在这个步骤中，你可以<br /><br /><br /><br /><br /><br /><br />change the setting of existing movement types <br />修改已存在的移动类型的设置<br /><br /><br /><br /><br />define new movement types<br />定义新的移动类型<br />When you enter a goods movement, you must always enter the movement type. The movement type has important control functions in Inventory Management. It is essential for<br />当你输入一个货物移动，你始终必须输入一个移动类型。移动类型在库存管理中有着重要的控制功能。它对下列动作是必不可少的：<br /><br /><br /><br /><br /><br /><br />updating the quantity fields<br />更新数量栏位<br /><br /><br /><br /><br />updating the stock and consumption accounts<br />更新库存及消耗科目<br /><br /><br /><br /><br />selection of the fields used for entering documents<br />选定用于输入凭证的字段<br /><br /><br /><br /><br />printing goods receipt/issue slips<br />打印收货/发货标签<br />At the end of this document, a short description of the movement types defined in the Standard configuration is contained under Further information.<br /><br /><br /><br /><br />Note 注意<br /><br /><br /><br /><br />You have already completed the settings of the existing movement types in other steps. This means that, normally, you do not need to maintain the existing movement types.<br />在其它步骤中，你已经完成了现有的移动类型的设置。意思是说，通常地，你没有必要去维护已有的移动类型。<br /><br /><br /><br /><br />The various control indicators for the movement types are divided into several views in this step (for example, entry control, posting control). You can find the relevant control indicators in each view.<br />在这个步骤中，不同的移动类型控制标识分别存在于几个视图中（例如，输入控制，过帐控制）。你可以在各个视图中定义相关的控制标识。<br /><br /><br /><br /><br />As some control indicators do not only depend on the movoment type, but also on other parameters (for example, debit/credit indicator, special stock indicator, indicator for updating quantities and values), you may find several entries for a movement type for certain views. These entries are necessary to cover all possible data constellations in the system.<br />一些控制标识不仅取决于移动类型，而且还跟其它因素（例如，借/贷标识，特殊库存标识，数量和价值更新标识）有关，你可以在不同视图中找到一个移动类型的几个条目。这些条目必须含盖系统中遍布的所有可能的数据。<br /><br /><br /><br /><br />Standard Settings<br />标准设置<br /><br /><br /><br /><br />In the standard system, movement types are preset for all transactions/events.<br />在标准系统中，移动类型为所有的事务/事件预置好了。<br /><br /><br /><br /><br />Recommendations<br />建议<br /><br /><br /><br /><br />SAP recommends that you accept the settings defined in the standard system. In this case, no action is required on your part.<br />SAP推荐你认可标准系统中定义好的设置。在这种情况下，你不必作任何改动。<br /><br /><br /><br /><br />However, if you have to define new movement types, it is recommended that you create these movement types with reference to an existing movement type. In doing so, you do not have to manually maintain the control indicators.<br />当然，如果你必须定义新的移动类型，建议你参考已有的移动类型来创建这些新的移动类型。如此一来，你就不必手动去维护那些控制标识了。<br /><br /><br /><br /><br />Activities<br />作业<br /><br /><br /><br /><br />Check whether you can use the preset movement types.<br />检查你能否使用系统预置的移动类型。<br /><br /><br /><br /><br />If not, define new movement types as follows:<br />如果没有，你可以根据下列步骤定义新的移动类型：<br /><br /><br /><br /><br />1. Once you have carried out the activity, the system displays a dialog box for field selection. In this, you can restrict the movement types you work with to various fields. To copy a movement type, select the field Movement type and choose Continue. The dialog box Define work area appears.<br />首先执行这个操作(事务代码：OMJJ)，系统弹出字段选择对话框。在这里，你可以使用几个字段作为条件来限定移动类型的范围。复制一个移动类型，要选定 移动类型 字段和选择继续 按钮。出现确定工作区对话框。<br /><br /><br /><br /><br />2. In the dialog box Define work area, enter the movement type you want to copy in the From: field. In the To: field, enter the name of the movement type that you want to recreate. To go to the overview of the selected movement types, choose Continue.<br />在确定工作区对话框中，输入你想复制的移动类型的范围（从：到：），选择 继续 按钮。<br /><br /><br /><br /><br />3. Select the movement type you want to copy, and choose Edit -> Copy as .<br />Overtype the selected movement type with the new movement type (beginning with 9, X, Y, or Z) and copy all dependent entries.<br />选定你想复制的移动类型，选择 编辑 -> 复制为… 。<br />将选定的移动类型改写为新的移动类型（以9, X, Y, 或Z 打头），及 复制所有 附属的条目。<br /><br /><br /><br /><br />The system copies all control indicators from the reference movement type to the new movement type.<br />系统将从参考的移动类型中复制所有的控制标识到新的移动类型中。<br /><br /><br /><br /><br />4. Check all views for the new movement type and, if necessary, change the control indicators. Please note that some views have a detail screen.<br />检查新移动类型的所有视图，如果有必要，可以修改控制标识。注意一些视图会有一个详细的屏幕。<br /><br /><br /><br /><br />5. Copy the reversal movement type and enter it in the view Reversal/follow-on movement types.<br />复制冲销移动类型，及在 回转/后续移动类型 视图中维护这个冲销的移动类型。<br /><br /><br /><br /><br />6. Save your settings.<br />保存你的设置。<br /><br /><br /><br /><br />@1A@Caution 警告<br /><br /><br /><br /><br />Movement types have an important control function. In particular, they play a major role in updating the stock quantity and stock value in the material master record. Changing some of the indicators (such as the quantity string or value string) is considered a modification. Please note that update errors resulting from incorrect settings for a movement type are modification-based errors and as such cannot be corrected by the SAP Hotline.<br />移动类型有一个重要的控制功能。特别地，它们在物料主记录的库存数量和库存价值更新中，扮演着主要的角色。更改一些控制标识（比如数量串和价值串）会被认为是一个（评估）修改。请注意从一个错误的移动类型的设置中出现的，基于（评估）修改的新的错误结果，而且这个结果无法通过SAP Hotline（SAP热线）来修正的。
          <br/>
          <span style="color:red;">
            <a href="http://sap.group.javaeye.com/group/blog/195392#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 21 May 2008 18:24:08 +0800</pubDate>
        <link>http://sap.group.javaeye.com/group/blog/195392</link>
        <guid>http://sap.group.javaeye.com/group/blog/195392</guid>
      </item>
          <item>
        <title>ABAP 常用函数(zt)</title>
        <author>jgtang82</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://jgtang82.javaeye.com">jgtang82</a>&nbsp;
                    链接：<a href="http://sap.group.javaeye.com/group/blog/191039" style="color:red;">http://sap.group.javaeye.com/group/blog/191039</a>&nbsp;
          发表时间: 2008年05月08日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>以前<a href="http://www.cublog.cn/u/8178/index.html" target="_blank">波波</a>总结过一个，不过不知道存到哪里去了。下面这个转自：<a href="http://www.delphibbs.com/keylife/iblog_show.asp?xid=27887">http://www.delphibbs.com/keylife/iblog_show.asp?xid=27887</a></p>
<p>RS_VARIANT_VALUES_TECH_DATA</p>
<p>可以返回一个内表, 里面存的是PARAMETER SELECT-OPTION的名字 以及对应的值. 可用于background job中对vaiant的修改.<br /><br />函数名 描述 <br />SD_VBAP_READ_WITH_VBELN 根据销售订单读取表vbap中的信息<br />EDIT_LINES 把READ_TEXT返回的LINES中的行按照TDFORMAT=&ldquo;*&rdquo;重新组织<br />VIEW_MAINTENANCE_CALL 维护表视图 <br /><br />函数名 描述 <br />DY_GET_FOCUS 获得屏幕焦点 <br />DY_GET_SET_FIELD_VALUE 获得或者设置屏幕字段的值 <br /><br />函数名 描述 <br />F4IF_INT_TABLE_VALUE_REQUEST 显示检索help <br />READ_TEXT 读取长文本<br />CONVERSION_EXIT_CUNIT_OUTPUT 单位转换<br />SJIS_DBC_TO_SBC 全角转半角<br />SJIS_SBC_TO_DBC 半角转换为全角<br />CO_R0_CHECK_DECIMAL_POINT 根据单位检查数据的小数位<br />POSTAL_CODE_CHECK 检查邮政编码 <br /><br />函数名 描述 <br />CONVERSION_EXIT_ALPHA_INPUT 全数字则在前面补0<br />CONVERSION_EXIT_ALPHA_INPUT 和上面相反<br />GET_JOB_RUNTIME_INFO 获得job相关信息<br />TERMINAL_ID_GET 获得端末id<br />DATE_CONVERT_TO_FACTORYDATE 把输入日期转为工厂日历日期<br />MESSAGE_TEXT_BUILD 把消息转为文本 <br /><br />函数名 描述 <br />POPUP_TO_CONFIRM 弹出确认窗口 <br /><br />函数名 描述 <br />CONVERSION_EXIT_MATN1_INPUT 物料号码转换函数<br />CONVERSION_EXIT_MATN1_OUTPUT 同上相反<br />CONVERT_TO_LOCAL_CURRENCY 按照指定日期汇率转换金额为指定货币类型<br />SSF_FUNCTION_MODULE_NAME 根据form名取得对应的函数名(SmartForm) <br /><br />函数名 描述 <br />DATE_CHECK_PLAUSIBILITY 日期CHECK<br />cl_gui_frontend_services=&gt;gui_upload 上传到服务器<br />cl_gui_frontend_services=&gt;gui_download 下载到服本地<br />SSF_FUNCTION_MODULE_NAME SMARTFORMS输出报表时，生成一个函数名称，然后CALL这个名称 <br /><br />函数名 描述 <br />POPUP_TO_DECIDE_LIST 弹出供选择窗口<br /><br />ABAP_DOCU_DOWNLOAD &ndash; 以HTML格式下载ABAP文档。<br /><br />ARFC_GET_TID &ndash; 以十六进制形式返回终端的IP地址。<br /><br />BAL_* -容纳了SAP的应用程序日志所有的函数模块。<br /><br />BP_EVENT_RAISE &ndash;在 ABAP/4 程序中触发一个事件。<br /><br />BP_JOBLOG_READ &ndash;获得job log的执行结果。<br /><br />CLOI_PUT_SIGN_IN_FRONT &ndash; 将负号前置， SAP默认将负号放在数字后面。<br /><br />CLPB_EXPORT &ndash;从内表导入到剪贴板。<br /><br />CLPB_IMPORT &ndash; 从剪贴板导入内表。<br /><br />COMMIT_TEXT -To load long text into SAP 。<br /><br />CONVERSION_EXIT_ALPHA_INPUT - 数字串前补0<br />example:<br />input = 123<br />output = 0000000000000。。。000000000000123<br /><br />CONVERSION_EXIT_ALPHA_OUTPUT &ndash; 消除数字串前的0<br />example:<br />input = 00000000000123<br />output = 123<br /><br />CONVERT_OTF &ndash; 将SAP文档(SAP Script)转换成其他类型。<br />example:<br />CALL FUNCTION 'CONVERT_OTF'<br />EXPORTING<br />FORMAT = 'PDF'<br />IMPORTING<br />BIN_FILESIZE = FILE_LEN<br />TABLES<br />OTF = OTFDATA<br />LINES = PDFDATA<br />EXCEPTIONS<br />ERR_MAX_LINEWIDTH = 1<br />ERR_FORMAT = 2<br />ERR_CONV_NOT_POSSIBLE = 3<br />OTHERS = 4.<br /><br />DATE_GET_WEEK &ndash; 返回一个日期所在的周数。 <br /><br />DATE_CHECK_PLAUSIBILITY &ndash; 检查一个日期是否是SAP的有效格式。 <br /><br />DYNP_VALUES_READ &ndash; 读取SCREEN字段的值，也可以用来读取报表SELECTION SCREEN。<br /><br />DYNP_VALUES_UPDATE -更新屏幕字段的值。 <br /><br />ENQUE_SLEEP &ndash;在继续处理之前等待一个指定的时间。 <br /><br />ENQUEUE_ESFUNCTION &ndash; 锁定一个ABAP程序使它不可以被执行: <br /><br />RELID = 'ZZ'<br />SRTF2 = 0<br />SRTF = (your report name) <br /><br />注意不要用SY-REPID来传递你的报表名字，当把SY-REPID作为参数传递给函数模块的时候，SY-REPID的值实际上已经发生了变化。 <br /><br />EPS_GET_FILE_ATTRIBUTES &ndash; 获得文件属性。<br /><br />EPS_GET_DIRECTORY_LISTING &ndash; 返回一个本地或网络目录的文件列表。<br /><br />F4_DATE - 弹出一个窗口显示一个日历允许用户选择一个日期。<br /><br />F4IF_SHLP_EXIT_EXAMPLE &ndash; F4接口模块。<br /><br />FILENAME_GET &ndash; 弹出一个文件选择对话框。<br /><br />DATA out(60) TYPE c.<br />CALL FUNCTION 'FILENAME_GET'<br />&nbsp; EXPORTING<br />&nbsp; &nbsp; filename = 'c:\1.txt'<br />&nbsp; &nbsp; title &nbsp; &nbsp;= 'GET FILENAME'<br />&nbsp; IMPORTING<br />&nbsp; &nbsp; filename = OUT.<br /><br />FTP_CONNECT &nbsp; &nbsp;&ndash; 打开并登陆FTP服务器的连接。<br />FTP_COMMAND &nbsp; &nbsp;&ndash; 在FTP服务器上执行一个命令。<br />FTP_DISCONNECT &ndash;关闭指向FTP服务器的连接。<br /><br />FORMAT_MESSAGE - Takes a message id and number, and puts it into a variable。 Works better than WRITE_MESSAGE, since some messages use $ as a place holder, and WRITE_MESSAGE does not accommodate that, it only replaces the ampersands (&amp;) in the message。<br /><br />GET_GLOBAL_SYMBOLS &ndash; 返回一个程序的tables, select options, texts, etc 。甚至包含selection screen的文本定义。<br /><br />GET_INCLUDETAB &ndash; 获得一个程序的INCLUDES列表。<br /><br />GUI_CREATE_DIRECTORY &ndash;在显示服务器端创建一个目录 。<br /><br />GUI_DELETE_FILE &ndash; 在显示服务器端删除一个文件 。<br /><br />GUI_DOWNLOAD &ndash; 从应用服务器下载内表到显示服务器。<br /><br />GUI_EXEC &ndash; 调用一个文件或程序，取代了WS_EXECUTE。<br /><br />GUI_GET_DESKTOP_INFO &ndash; 获得客户端桌面信息，取代了WS_QUERY。 <br /><br />GUI_REMOVE_DIRECTORY &ndash; 从显示服务器删除一个目录 。<br /><br />GUI_RUN &ndash; 启动一个文件或程序 。<br /><br />GUI_UPLOAD &ndash; 从显示服务器上传文件到应用服务器，取代了WS_UPLOAD。 <br /><br />HELP_START &ndash; 为一个字段显示帮助。 Useful for doing AT SELECTION SCREEN ON VALUE REQUEST for those fields that do not provide F4 help at the DDIC level。<br /><br />HOLIDAY_GET &ndash; 基于Factory Calendar&amp;/ Holiday Calendar提供了一个节日表。 <br /><br />INIT_TEXT &ndash;上传长文本到SAP。<br /><br />K_WERKS_OF_BUKRS_FIND &ndash; 返回一个特定公司代码的所有工厂。 <br /><br />LIST_TO_ASCII &ndash;将ABAP报表从 OTF形式转换成ASCII 形式。<br /><br />LIST_FROM_MEMORY &ndash; Retrieves the output of a report from memory when the report was executed using SUBMIT。。。EXPORTING LIST TO MEMORY。 See also WRITE_LIST。<br /><br />MONTH_NAMES_GET &ndash; 获得所有的月和名字 <br /><br />**** MS_EXCEL_OLE_STANDARD_OLE &ndash; 创建一个文件并自动启动Excel 。<br /><br />CONVERT_OTFSPOOLJOB_2_PDF - converts a OTF spool to PDF (i。e。 Sap script document) <br /><br />CONVERT_ABAPSPOOLJOB_2_PDF -convert ABAP spool output to PDF <br /><br />POPUP_TO_CONFIRM_LOSS_OF_DATA &ndash; 弹出一个对话框告知用户有可能丢失数据，询问是否操作继续。 <br /><br />POPUP_TO_CONFIRM_STEP -弹出一个对话框询问用户是否操作继续。 <br /><br />POPUP_TO_CONFIRM_WITH_MESSAGE &nbsp;可以显示定制的提示信息的确认窗口 类似POPUP_TO_CONFIRM_STEP，只是多三行的文本错误诊断提示。<br /><br />POPUP_TO_CONFIRM_WITH_VALUE &nbsp;用此函数可以建立一个对话框用于询问用户是否执行某步操作，该操作可能会丢失数据，用户可以选择Yes No &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 或者Cancel。该函数可以传入一个标题，两行的文本（提示问题）和一个对象值<br /><br />POPUP_TO_DECIDE &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;显示一个对话框，用户可以两个操作中的一个或者取消。可以传入三行提示文本<br /><br />POPUP_TO_DECIDE_WITH_MESSAGE &nbsp; 类似POPUP_TO_DECIDE<br /><br />POPUP_TO_DISPLAY_TEXT &nbsp;显示多行信息的窗口<br /><br />POPUP_TO_SELECT_MONTH &ndash;弹出一个对话框供选择月。<br /><br />POPUP_WITH_TABLE_DISPLAY -Provide a display of a table for user to select one, <br />with the value of the table line returned when selected。<br /><br />PRICING &ndash; 获得定价条件<br /><br />PROFILE_GET - 从INI文件读取一条记录<br /><br />PROFILE_SET &ndash; 往INI文件写一条记录<br /><br />READ_TEXT &ndash; 上传长文本<br /><br />REGISTRY_GET &ndash; 从注册表读取一条记录<br /><br />REGISTRY_SET &ndash; 在注册表里设置一条记录<br /><br />RFC_ABAP_INSTALL_AND_RUN &ndash; 当MODE参数值为&lsquo;F&rsquo;时运行PROGRAM表中的程序'.<br /><br />RH_GET_ACTIVE_WF_PLVAR &ndash; 获得激活的HR计划<br /><br />RH_START_EXCEL_WITH_DATA &ndash; 启动Excel并用内表给文件赋值<br /><br />RH_STRUC_GET &ndash;返回所有相关的组织信息<br /><br />RP_CALC_DATE_IN_INTERVAL &ndash; 年月日加减<br /><br />RP_LAST_DAY_OF_MONTHS &ndash; 获得一个月的最后一天<br /><br />RPY_DYNPRO_READ &ndash; 读取屏幕<br /><br />RPY_TRANSACTION_READ &ndash; 给定一个事务代码，获得其程序和屏幕；或给定一个程序和屏幕获得事务代码<br /><br />RS_COVERPAGE_SELECTIONS &ndash; 获得一个报表的选择参数列表。 <br /><br />RS_REFRESH_FROM_SELECTOPTIONS &ndash;获得当前选择屏幕的内容<br /><br />RS_SEND_MAIL_FOR_SPOOLLIST &ndash; 在程序中给SAP office 发送消息 <br /><br />RS_VARIANT_CONTENTS &ndash; 获得一个变式的内容 <br /><br />RZL_SLEEP &ndash; 将当前程序挂起 <br /><br />RZL_SUBMIT &ndash; 提交一个远程报表 <br /><br />RZL_READ_DIR_LOCAL &ndash; 读取应用服务器的目录 <br /><br />RZL_READ_DIR &ndash; 如果服务器名字左部为空，从本地读取目录，否则读取远程服务器的目录<br /><br />RZL_READ_FILE &ndash; 如果为给定服务器名字则读取本地文件，否则读取远程服务器文件。<br /><br />RZL_WRITE_FILE_LOCAL - 将内表保存到显示服务器(not PC). 不使用OPEN DATASET因此避免了授权检查。<br /><br />SAPGUI_PROGRESS_INDICATOR &ndash; 显示一个进度条 <br /><br />SAVE_TEXT &ndash; 上传长文本 <br /><br />SCROLLING_IN_TABLE &ndash;当编写模块池的时候可以用它来处理滚动<br /><br />SD_DATETIME_DIFFERENCE &ndash; 两日期作差 <br /><br />SO_NEW_DOCUMENT_ATT_SEND_API1 - 将文档作为邮件的一部分发送 <br /><br />SO_SPLIT_FILE_AND_PATH &ndash; 将一个包含路径的全文件名分割为文件名和路径 <br /><br />SO_SPOOL_READ &ndash; 根据SPOOL号获得printer spool<br /><br />SO_WIND_SPOOL_LIST &ndash; 根据用户浏览printer spool号<br /><br />SX_OBJECT_CONVERT_OTF_PDF &ndash; 从OTF转换为PDF (SAP 脚本转换)<br /><br />SX_OBJECT_CONVERT_OTF_PRT &ndash; 从OTF转换为打印机格式(SAP 脚本转换)<br /><br />SX_OBJECT_CONVERT_OTF_RAW &ndash; 从OTF转换为ASCII(SAP 脚本转换)<br /><br />SXPG_CALL_SYSTEM - 检查用户是否有执行某个命令的权限<br /><br />SXPG_COMMAND_LIST_GET &ndash; 获得一个包含所有定义的外部OS命令的列表.<br /><br />SXPG_COMMAND_DEFINITION_GET &ndash; 从R/3系统数据库读取单个外部OS命令的定义<br /><br />SXPG_COMMAND_CHECK - 检查用户是否有执行某个命令的权限<br /><br />SXPG_COMMAND_EXECUTE -检查用户是否有执行某个命令的权限，拥有授权则执行命令<br /><br />TERMINAL_ID_GET &ndash;返回终端ID<br /><br />TH_DELETE_USER &ndash; 剔除一个用户，效果同SM04<br /><br />TH_ENVIRONMENT &ndash; 获得UNIX环境<br /><br />TH_POPUP &ndash;在特定用户屏幕上显示一个系统消息<br /><br />TH_REMOTE_TRANSACTION &ndash; 在远程服务器上运行事务代码<br /><br />TH_USER_INFO &ndash; 获得当前用户的信息 (会话，登陆的工作台等)<br /><br />TH_USER_LIST &ndash;显示登陆到应用服务器的用户列表<br /><br />UNIT_CONVERSION_SIMPLE &ndash;衡量单位转换<br /><br />UPLOAD &ndash;上传文件到显示服务器<br /><br />UPLOAD_FILES &ndash; 上传一个或多个文件<br /><br />WRITE_LIST &ndash;显示一个列表对象<br /><br />WS_DOWNLOAD &ndash;将内表下载到显示服务器<br /><br />WS_EXCEL &ndash;启动EXCEL<br /><br />WS_EXECUTE &ndash;执行一个程序<br /><br />WS_FILE_DELETE &ndash; 删除一个文件 <br /><br />WS_FILENAME_GET &ndash;调用文件选择对话框<br /><br />WS_MSG &ndash;显示一个对话框显示在线消息<br /><br />WS_UPLOAD &ndash; 从显示服务器上传文件到内表<br /><br />WS_VOLUME_GET &ndash;获得终端设备标签<br /><br />WWW_LIST_TO_HTML &ndash; 运行一个报表之后，调用这个方法将列表输出转换成HTML<br /><br />SD_VBAP_READ_WITH_VBELN 根据销售订单读取表vbap中的信息<br /><br />EDIT_LINES 把READ_TEXT返回的LINES中的行按照TDFORMAT=&ldquo;*&rdquo;重新组织<br /><br />VIEW_MAINTENANCE_CALL 维护表视图 <br /><br />DY_GET_FOCUS 获得屏幕焦点 <br /><br />DY_GET_SET_FIELD_VALUE 获得或者设置屏幕字段的值 <br /><br />F4IF_INT_TABLE_VALUE_REQUEST 显示检索help <br /><br />CONVERSION_EXIT_CUNIT_OUTPUT 单位转换<br /><br />SJIS_DBC_TO_SBC 全角转半角<br /><br />SJIS_SBC_TO_DBC 半角转换为全角<br /><br />CO_R0_CHECK_DECIMAL_POINT 根据单位检查数据的小数位<br /><br />POSTAL_CODE_CHECK 检查邮政编码 GET_JOB_RUNTIME_INFO 获得job相关信息<br /><br />TERMINAL_ID_GET 获得终端<br /><br />idDATE_CONVERT_TO_FACTORYDATE 把输入日期转为工厂日历日期<br /><br />MESSAGE_TEXT_BUILD 把消息转为文本<br />&nbsp;<br />CONVERT_TO_LOCAL_CURRENCY 按照指定日期汇率转换金额为指定货币类型<br /><br />SSF_FUNCTION_MODULE_NAME 根据form名取得对应的函数名(SmartForm)<br /><br />DATE_CHECK_PLAUSIBILITY 检查日期合法性<br /><br />CHECKcl_gui_frontend_services=&gt;gui_upload 上传到服务器<br /><br />cl_gui_frontend_services=&gt;gui_download 下载到本地<br /><br />SSF_FUNCTION_MODULE_NAME SMARTFORMS输出报表时，生成一个函数名称，然后CALL这个名 &nbsp; <br /><br />通过这个日期得出那天是星期几<br />DAY_IN_WEEK<br /><br />用来得到将来/过去的日期的<br />RP_CALC_DATE_IN_INTERVAL<br /><br />日期的加减<br />BKK_ADD_MONTH_TO_DATE<br /><br />一组有用的用户交互窗口函数<br />POPUP_TO_CONFIRM_LOSS_OF_DATA 显示有YES/NO的弹出窗口，提示用户未保存的数据将丢失 <br /><br />POPUP_TO_CONFIRM_STEP 提示是否确认操作的弹出窗口 <br /><br />POPUP_TO_CONFIRM_WITH_MESSAGE 可以显示定制的提示信息的确认窗口 <br /><br />POPUP_TO_CONFIRM_WITH_VALUE 显示确认用户对某个特定对象的操作的弹出窗口 <br /><br />POPUP_TO_DECIDE 将待确认选项以单选按钮的方式显示的弹出窗口 <br /><br />POPUP_TO_DECIDE_WITH_MESSAGE 带消息的确认窗口 <br /><br />POPUP_TO_DISPLAY_TEXT 显示多行信息的窗口 <br /><br />POPUP_TO_SELECT_MONTH 月份选择窗口 <br /><br />POPUP_WITH_TABLE_DISPLAY 有表格对象的确认窗口 <br /><br />一组操纵客户端文件系统的函数<br />GUI_CREATE_DIRECTORY 在PC上建立文件目录 <br /><br />GUI_DELETE_FILE 删除PC上的文件 <br /><br />GUI_DOWNLOAD 文件下载函数 <br /><br />GUI_EXEC 执行PC上的程序，或者打开文件 <br /><br />GUI_GET_DESKTOP_INFO 得到PC客户端的系统信息，比如操作系统等 <br /><br />GUI_REMOVE_DIRECTORY 删除PC目录 <br /><br />GUI_RUN 运行PC程序（ShellExecute） <br /><br />GUI_UPLOAD 从PC上传程序 <br /><br />判断某天是否是假日 <br />HOLIDAY_CHECK_AND_GET_INFO<br /><br />ABAP_DOCU_DOWNLOAD <br />Download ABAP documentation in HTML format. <br /><br />GET_CURRENT_YEAR<br />得到当前的财政年（fiscal year） <br /><br />察看某日期的属性，包括该日期是星期几，第几天（周2=2），是不是公共假期等，需要输入国家日历。<br /><br />DAY_ATTRIBUTES_GET <br /><br />Return useful information about a day. Will tell you the day of the week as a word (Tuesday), the day of the week (2 would be Tuedsay), whether the day is a holiday, and more.(provided by Francois Henrotte)?<br /><br />CLPB_IMPORT ：从剪贴板导入internal table<br />CLPB_EXPORT ： 从internal table输入到剪贴板<br />示例程序：GRCLPB_1</p>
          <br/>
          <span style="color:red;">
            <a href="http://sap.group.javaeye.com/group/blog/191039#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 08 May 2008 13:42:09 +0800</pubDate>
        <link>http://sap.group.javaeye.com/group/blog/191039</link>
        <guid>http://sap.group.javaeye.com/group/blog/191039</guid>
      </item>
          <item>
        <title>更改ALV subtotal text sample程序</title>
        <author>blueoxygen</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sap.javaeye.com">blueoxygen</a>&nbsp;
                    链接：<a href="http://sap.group.javaeye.com/group/blog/188861" style="color:red;">http://sap.group.javaeye.com/group/blog/188861</a>&nbsp;
          发表时间: 2008年05月02日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          By Joyjit Ghosh, IBM India<br /><br />Code:*&---------------------------------------------------------------------*<br />*& Report&nbsp; Z_ALV_SUBTOTAL<br />*&<br />*&---------------------------------------------------------------------<br />REPORT z_alv_subtotal.*&---------------------------------------------------------------------*<br />*& Table declaration<br />*&---------------------------------------------------------------------*TABLES: ekko.*&---------------------------------------------------------------------*<br />*& Type pool declaration<br />*&---------------------------------------------------------------------*<br />TYPE-POOLS: slis. " Type pool for ALV*&---------------------------------------------------------------------*<br />*& Selection screen<br />*&---------------------------------------------------------------------*<br />SELECT-OPTIONS: s_ebeln FOR ekko-ebeln.*&---------------------------------------------------------------------*<br />*& Type declaration<br />*&---------------------------------------------------------------------** Type declaration for internal table to store EKPO data<br />TYPES: BEGIN OF x_data,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ebeln&nbsp; TYPE char30,&nbsp; " Document no.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ebelp&nbsp; TYPE ebelp,&nbsp;&nbsp; " Item no<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; matnr&nbsp; TYPE matnr,&nbsp;&nbsp; " Material no<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; matnr1 TYPE matnr,&nbsp;&nbsp; " Material no<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; werks&nbsp; TYPE werks_d, " Plant<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; werks1 TYPE werks_d, " Plant<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ntgew&nbsp; TYPE entge,&nbsp;&nbsp; " Net weight<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gewe&nbsp;&nbsp; TYPE egewe,&nbsp;&nbsp; " Unit of weight&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 	<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; END OF x_data.*&---------------------------------------------------------------------*<br />*& Internal table declaration<br />*&---------------------------------------------------------------------*<br />DATA:* Internal table to store EKPO data<br />&nbsp; i_ekpo TYPE STANDARD TABLE OF x_data INITIAL SIZE 0,<br />* Internal table for storing field catalog information<br />&nbsp; i_fieldcat TYPE slis_t_fieldcat_alv,<br />* Internal table for Top of Page info. in ALV Display<br />&nbsp; i_alv_top_of_page TYPE slis_t_listheader,<br />* Internal table for ALV Display events<br />&nbsp; i_events TYPE slis_t_event,<br />* Internal table for storing ALV sort information<br />&nbsp; i_sort TYPE&nbsp; slis_t_sortinfo_alv,<br />&nbsp; i_event TYPE slis_t_event.*&---------------------------------------------------------------------*<br />*& Work area declaration<br />*&---------------------------------------------------------------------*DATA:<br />&nbsp; wa_ekko TYPE x_data,<br />&nbsp; wa_layout&nbsp;&nbsp;&nbsp;&nbsp; TYPE slis_layout_alv,<br />&nbsp; wa_events&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TYPE slis_alv_event,<br />&nbsp; wa_sort TYPE slis_sortinfo_alv.*&---------------------------------------------------------------------*<br />*& Constant declaration<br />*&---------------------------------------------------------------------*CONSTANTS:<br />&nbsp;&nbsp; c_header&nbsp;&nbsp; TYPE char1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VALUE 'H',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Header in ALV<br />&nbsp;&nbsp; c_item&nbsp;&nbsp;&nbsp;&nbsp; TYPE char1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VALUE 'S'.*&---------------------------------------------------------------------*<br />*& Start-of-selection event<br />*&---------------------------------------------------------------------*START-OF-SELECTION.* Select data from ekpo<br />&nbsp; SELECT ebeln " Doc no<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ebelp " Item<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; matnr " Material<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; matnr " Material<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; werks " Plant<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; werks " Plant<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ntgew " Quantity<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gewei " Unit<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FROM ekpo<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INTO TABLE i_ekpo<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WHERE ebeln IN s_ebeln<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AND ntgew NE '0.00'.&nbsp; IF sy-subrc = 0.<br />&nbsp;&nbsp;&nbsp; SORT i_ekpo BY ebeln ebelp matnr .<br />&nbsp; ENDIF.* To build the Page header<br />&nbsp; PERFORM sub_build_header.* To prepare field catalog<br />&nbsp; PERFORM sub_field_catalog.* Perform to populate the layout structure<br />&nbsp; PERFORM sub_populate_layout.* Perform to populate the sort table.<br />&nbsp; PERFORM sub_populate_sort.* Perform to populate ALV event<br />&nbsp; PERFORM sub_get_event.END-OF-SELECTION.* Perform to display ALV report<br />&nbsp; PERFORM sub_alv_report_display.<br />*&---------------------------------------------------------------------*<br />*&&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Form&nbsp; sub_build_header<br />*&---------------------------------------------------------------------*<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; To build the header<br />*----------------------------------------------------------------------*<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; No Parameter<br />*----------------------------------------------------------------------*<br />FORM sub_build_header .* Local data declaration<br />&nbsp; DATA: l_system&nbsp;&nbsp;&nbsp;&nbsp; TYPE char10 ,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "System id<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; l_r_line&nbsp;&nbsp;&nbsp;&nbsp; TYPE slis_listheader,&nbsp; "Hold list header<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; l_date&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TYPE char10,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Date<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; l_time&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TYPE char10,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Time<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; l_success_records TYPE i,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "No of success records<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; l_title(300) TYPE c.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; " Title<br />* Title&nbsp; Display<br />&nbsp; l_r_line-typ = c_header.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; " header<br />&nbsp; l_title = 'Test report'(001).<br />&nbsp; l_r_line-info = l_title.<br />&nbsp; APPEND l_r_line TO i_alv_top_of_page.<br />&nbsp; CLEAR l_r_line.* Run date Display<br />&nbsp; CLEAR l_date.<br />&nbsp; l_r_line-typ&nbsp; = c_item.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; " Item<br />&nbsp; WRITE: sy-datum&nbsp; TO l_date MM/DD/YYYY.<br />&nbsp; l_r_line-key = 'Run Date :'(002).<br />&nbsp; l_r_line-info = l_date.<br />&nbsp; APPEND l_r_line TO i_alv_top_of_page.<br />&nbsp; CLEAR: l_r_line,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; l_date.ENDFORM.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; " sub_build_header<br />*&---------------------------------------------------------------------*<br />*&&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Form&nbsp; sub_field_catalog<br />*&---------------------------------------------------------------------*<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Build Field Catalog<br />*----------------------------------------------------------------------*<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; No Parameter<br />*----------------------------------------------------------------------*<br />FORM sub_field_catalog .*&nbsp; Build Field Catalog<br />&nbsp; PERFORM sub_fill_alv_field_catalog USING:&nbsp;&nbsp;&nbsp;&nbsp; '01' '01' 'EBELN' 'I_EKPO' 'L'<br />&nbsp;&nbsp;&nbsp;&nbsp; 'Doc No'(003) ' ' ' ' ' ' ' ',&nbsp;&nbsp;&nbsp;&nbsp; '01' '02' 'EBELP' 'I_EKPO' 'L'<br />&nbsp;&nbsp;&nbsp;&nbsp; 'Item No'(004) 'X' 'X' ' ' ' ',&nbsp;&nbsp;&nbsp;&nbsp; '01' '03' 'MATNR' 'I_EKPO' 'L'<br />&nbsp;&nbsp;&nbsp;&nbsp; 'Material No'(005) 'X' 'X' ' ' ' ',&nbsp;&nbsp;&nbsp;&nbsp; '01' '03' 'MATNR1' 'I_EKPO' 'L'<br />&nbsp;&nbsp;&nbsp;&nbsp; 'Material No'(005) ' ' ' ' ' ' ' ',<br />&nbsp;&nbsp;&nbsp;&nbsp; '01' '04' 'WERKS' 'I_EKPO' 'L'<br />&nbsp;&nbsp;&nbsp;&nbsp; 'Plant'(006) 'X' 'X' ' ' ' ',&nbsp;&nbsp;&nbsp;&nbsp; '01' '04' 'WERKS1' 'I_EKPO' 'L'<br />&nbsp;&nbsp;&nbsp;&nbsp; 'Plant'(006) ' ' ' ' ' ' ' ',&nbsp;&nbsp;&nbsp;&nbsp; '01' '05' 'NTGEW' 'I_EKPO' 'R'<br />&nbsp;&nbsp;&nbsp;&nbsp; 'Net Weight'(007) ' ' ' ' 'GEWE' 'I_EKPO'.ENDFORM.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; " sub_field_catalog*&---------------------------------------------------------------------*<br />*&&nbsp;&nbsp;&nbsp;&nbsp; Form&nbsp; sub_fill_alv_field_catalog<br />*&---------------------------------------------------------------------*<br />*&&nbsp;&nbsp;&nbsp;&nbsp; For building Field Catalog<br />*&---------------------------------------------------------------------*<br />*&&nbsp;&nbsp;&nbsp;&nbsp; p_rowpos&nbsp;&nbsp; Row position<br />*&&nbsp;&nbsp;&nbsp;&nbsp; p_colpos&nbsp;&nbsp; Col position<br />*&&nbsp;&nbsp;&nbsp;&nbsp; p_fldnam&nbsp;&nbsp; Fldname<br />*&&nbsp;&nbsp;&nbsp;&nbsp; p_tabnam&nbsp;&nbsp; Tabname<br />*&&nbsp;&nbsp;&nbsp;&nbsp; p_justif&nbsp;&nbsp; Justification<br />*&&nbsp;&nbsp;&nbsp;&nbsp; p_seltext&nbsp; Seltext<br />*&&nbsp;&nbsp;&nbsp;&nbsp; p_out&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; no out<br />*&&nbsp;&nbsp;&nbsp;&nbsp; p_tech&nbsp;&nbsp;&nbsp;&nbsp; Technical field<br />*&&nbsp;&nbsp;&nbsp;&nbsp; p_qfield&nbsp;&nbsp; Quantity field<br />*&&nbsp;&nbsp;&nbsp;&nbsp; p_qtab&nbsp;&nbsp;&nbsp;&nbsp; Quantity table<br />*&---------------------------------------------------------------------*<br />FORM sub_fill_alv_field_catalog&nbsp; USING&nbsp; p_rowpos&nbsp;&nbsp;&nbsp; TYPE sycurow<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p_colpos&nbsp;&nbsp;&nbsp; TYPE sycucol<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p_fldnam&nbsp;&nbsp;&nbsp; TYPE fieldname<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p_tabnam&nbsp;&nbsp;&nbsp; TYPE tabname<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p_justif&nbsp;&nbsp;&nbsp; TYPE char1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p_seltext&nbsp;&nbsp; TYPE dd03p-scrtext_l<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p_out&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TYPE char1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p_tech&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TYPE char1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p_qfield&nbsp;&nbsp;&nbsp; TYPE slis_fieldname<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p_qtab&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TYPE slis_tabname.* Local declaration for field catalog<br />&nbsp; DATA: wa_lfl_fcat&nbsp;&nbsp;&nbsp; TYPE&nbsp; slis_fieldcat_alv.&nbsp; wa_lfl_fcat-row_pos&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp; p_rowpos.&nbsp;&nbsp;&nbsp;&nbsp; "Row<br />&nbsp; wa_lfl_fcat-col_pos&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp; p_colpos.&nbsp;&nbsp;&nbsp;&nbsp; "Column<br />&nbsp; wa_lfl_fcat-fieldname&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp; p_fldnam.&nbsp;&nbsp;&nbsp;&nbsp; "Field Name<br />&nbsp; wa_lfl_fcat-tabname&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp; p_tabnam.&nbsp;&nbsp;&nbsp;&nbsp; "Internal Table Name<br />&nbsp; wa_lfl_fcat-just&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp; p_justif.&nbsp;&nbsp;&nbsp;&nbsp; "Screen Justified<br />&nbsp; wa_lfl_fcat-seltext_l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp; p_seltext.&nbsp;&nbsp;&nbsp; "Field Text<br />&nbsp; wa_lfl_fcat-no_out&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp; p_out.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "No output<br />&nbsp; wa_lfl_fcat-tech&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp; p_tech.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Technical field<br />&nbsp; wa_lfl_fcat-qfieldname&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp; p_qfield.&nbsp;&nbsp;&nbsp;&nbsp; "Quantity unit<br />&nbsp; wa_lfl_fcat-qtabname&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp; p_qtab .&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Quantity table&nbsp; IF p_fldnam = 'NTGEW'.<br />&nbsp;&nbsp;&nbsp; wa_lfl_fcat-do_sum&nbsp; = 'X'.<br />&nbsp; ENDIF.<br />&nbsp; APPEND wa_lfl_fcat TO i_fieldcat.<br />&nbsp; CLEAR wa_lfl_fcat.<br />ENDFORM.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; " sub_fill_alv_field_catalog*&---------------------------------------------------------------------*<br />*&&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Form&nbsp; sub_populate_layout<br />*&---------------------------------------------------------------------*<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Populate ALV layout<br />*----------------------------------------------------------------------*<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; No Parameter<br />*----------------------------------------------------------------------*<br />FORM sub_populate_layout .&nbsp; CLEAR wa_layout.<br />&nbsp; wa_layout-colwidth_optimize = 'X'." Optimization of Col widthENDFORM.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; " sub_populate_layout*&---------------------------------------------------------------------*<br />*&&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Form&nbsp; sub_populate_sort<br />*&---------------------------------------------------------------------*<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Populate ALV sort table<br />*----------------------------------------------------------------------*<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; No Parameter<br />*----------------------------------------------------------------------*<br />FORM sub_populate_sort .* Sort on material<br />&nbsp; wa_sort-spos = '01' .<br />&nbsp; wa_sort-fieldname = 'MATNR'.<br />&nbsp; wa_sort-tabname = 'I_EKPO'.<br />&nbsp; wa_sort-up = 'X'.<br />&nbsp; wa_sort-subtot = 'X'.<br />&nbsp; APPEND wa_sort TO i_sort .<br />&nbsp; CLEAR wa_sort.* Sort on plant<br />&nbsp; wa_sort-spos = '02'.<br />&nbsp; wa_sort-fieldname = 'WERKS'.<br />&nbsp; wa_sort-tabname = 'I_EKPO'.<br />&nbsp; wa_sort-up = 'X'.<br />&nbsp; wa_sort-subtot = 'X'.<br />&nbsp; APPEND wa_sort TO i_sort .<br />&nbsp; CLEAR wa_sort.<br />ENDFORM.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; " sub_populate_sort*&---------------------------------------------------------------------*<br />*&&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Form&nbsp; sub_get_event<br />*&---------------------------------------------------------------------*<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Get ALV grid event and pass the form name to subtotal_text<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; event<br />*----------------------------------------------------------------------*<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; No Parameter<br />*----------------------------------------------------------------------*<br />FORM sub_get_event .<br />&nbsp; CONSTANTS : c_formname_subtotal_text TYPE slis_formname VALUE<br />'SUBTOTAL_TEXT'.&nbsp; DATA: l_s_event TYPE slis_alv_event.<br />&nbsp; CALL FUNCTION 'REUSE_ALV_EVENTS_GET'<br />&nbsp;&nbsp;&nbsp; EXPORTING<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i_list_type&nbsp;&nbsp;&nbsp;&nbsp; = 4<br />&nbsp;&nbsp;&nbsp; IMPORTING<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; et_events&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = i_event<br />&nbsp;&nbsp;&nbsp; EXCEPTIONS<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; list_type_wrong = 0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OTHERS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0.* Subtotal<br />&nbsp; READ TABLE i_event&nbsp; INTO l_s_event<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WITH KEY name = slis_ev_subtotal_text.<br />&nbsp; IF sy-subrc = 0.<br />&nbsp;&nbsp;&nbsp; MOVE c_formname_subtotal_text TO l_s_event-form.<br />&nbsp;&nbsp;&nbsp; MODIFY i_event FROM l_s_event INDEX sy-tabix.<br />&nbsp; ENDIF.ENDFORM.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; " sub_get_event*&---------------------------------------------------------------------*<br />*&&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Form&nbsp; sub_alv_report_display<br />*&---------------------------------------------------------------------*<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For ALV Report Display<br />*----------------------------------------------------------------------*<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; No Parameter<br />*----------------------------------------------------------------------*<br />FORM sub_alv_report_display .<br />&nbsp; DATA: l_repid TYPE syrepid .<br />&nbsp; l_repid = sy-repid .* This function module for displaying the ALV report<br />&nbsp; CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'<br />&nbsp;&nbsp;&nbsp; EXPORTING<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i_callback_program&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = l_repid<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i_callback_top_of_page&nbsp;&nbsp; = 'SUB_ALV_TOP_OF_PAGE'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; is_layout&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = wa_layout<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; it_fieldcat&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = i_fieldcat<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; it_sort = i_sort<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; it_events&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = i_event<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i_default&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 'X'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i_save&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 'A'<br />&nbsp;&nbsp;&nbsp; TABLES<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t_outtab&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = i_ekpo<br />&nbsp;&nbsp;&nbsp; EXCEPTIONS<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; program_error&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OTHERS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 2.<br />&nbsp; IF sy-subrc &lt;> 0.<br />*&nbsp;&nbsp;&nbsp; MESSAGE i000 WITH 'Error in ALV report display'(055).<br />&nbsp; ENDIF.ENDFORM.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; " sub_alv_report_display*&---------------------------------------------------------------------*<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FORM sub_alv_top_of_page<br />*---------------------------------------------------------------------*<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Call ALV top of page<br />*---------------------------------------------------------------------*<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; No parameter<br />*---------------------------------------------------------------------*FORM sub_alv_top_of_page.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "#EC CALLED* To write header for the ALV<br />&nbsp; CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'<br />&nbsp;&nbsp;&nbsp; EXPORTING<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; it_list_commentary = i_alv_top_of_page.<br />ENDFORM.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "alv_top_of_page*&---------------------------------------------------------------------*<br />*&&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Form&nbsp; subtotal_text<br />*&---------------------------------------------------------------------*<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Build subtotal text<br />*----------------------------------------------------------------------*<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; P_total&nbsp; Total<br />*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p_subtot_text Subtotal text info<br />*----------------------------------------------------------------------*<br />FORM subtotal_text CHANGING<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p_total TYPE any<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p_subtot_text TYPE slis_subtot_text.<br />* Material level sub total<br />&nbsp; IF p_subtot_text-criteria = 'MATNR'.<br />&nbsp;&nbsp;&nbsp; p_subtot_text-display_text_for_subtotal<br />&nbsp;&nbsp;&nbsp; = 'Material level total'(009).<br />&nbsp; ENDIF.* Plant level sub total<br />&nbsp; IF p_subtot_text-criteria = 'WERKS'.<br />&nbsp;&nbsp;&nbsp; p_subtot_text-display_text_for_subtotal = 'Plant level total'(010).<br />&nbsp; ENDIF.<br />ENDFORM.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "subtotal_text
          <br/>
          <span style="color:red;">
            <a href="http://sap.group.javaeye.com/group/blog/188861#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 02 May 2008 16:38:15 +0800</pubDate>
        <link>http://sap.group.javaeye.com/group/blog/188861</link>
        <guid>http://sap.group.javaeye.com/group/blog/188861</guid>
      </item>
          <item>
        <title>[收藏]业务范围</title>
        <author>blueoxygen</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sap.javaeye.com">blueoxygen</a>&nbsp;
                    链接：<a href="http://sap.group.javaeye.com/group/blog/186795" style="color:red;">http://sap.group.javaeye.com/group/blog/186795</a>&nbsp;
          发表时间: 2008年04月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <a href="http://www.kaola.cn/u/youlan/321248.html" target="_blank">http://www.kaola.cn/u/youlan/321248.html</a><br /><br />http://www.sapfans.com.cn/sapbbs/dispbbs.asp?boardid=93&id=7798&star=1
          <br/>
          <span style="color:red;">
            <a href="http://sap.group.javaeye.com/group/blog/186795#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 25 Apr 2008 15:10:19 +0800</pubDate>
        <link>http://sap.group.javaeye.com/group/blog/186795</link>
        <guid>http://sap.group.javaeye.com/group/blog/186795</guid>
      </item>
          <item>
        <title>[收藏]What is WBS element?</title>
        <author>blueoxygen</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sap.javaeye.com">blueoxygen</a>&nbsp;
                    链接：<a href="http://sap.group.javaeye.com/group/blog/178124" style="color:red;">http://sap.group.javaeye.com/group/blog/178124</a>&nbsp;
          发表时间: 2008年03月31日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          1) What is WBS element? <br /> 2) What is the Tcode to get to that screen? <br /> 3) What is the need and pupose of WBS element? <br /> 4) Do we happen to work on Functional module during our implementaion project? <br /> 5) In what scenario/situation we will be working on WBS? <br /><br />WBS is nothing but Work Breakdown Structure. It is mainly used in Project System (PS) module. Tcode : CJ20N <br /><br />For any project defined we must have atleast one WBS. Within this WBS we can have networks. Networks are nothing but the series of activities. Material are used to perform the activities. <br /><br />To explain in detail just consider one example: <br /><br />Govt of india wants to have Roads to be build through out the india. So Project can be defined in sap as "Connectivity". <br /><br />WBS can be roads within different states like Roads for Gujarat, Karnataka etc.. i.e. WBS Gujarat, WBS Karnataka etc. <br /><br />We can define different networks for these WBS&nbsp; like Road Between Ahmedabad to Surat or Between Bangalore to Belgham. <br /><br />For this network we can have many activities like Land selection, Land Preparation, Road Building, Final finishing etc etc. <br />&nbsp; <br /><br />Hemal's example was a good example. Project Systems comes into play only when the industry's business is based on projects like... Construction companies, Engineer to Order scenarios. You may not see anyone using PS module for retail business. As Hemal explained in that example, you have a main project which is broken down into WBS elements. You can use the TC CJ20N to create the project and the WBS elements. Each WBS may have mutiple Networks associated and each Network may have multiple Network Activities as explained in the example by Hemal. <br />&nbsp;&nbsp;&nbsp; <br />On the Sales Order, if your client is implementing PS module, you may have to attach the Sales Order to the WBS element it belongs to. WBS element is nothing but a bucket where all the activities belonging to that particular part of the project are captured. In the example, WBS Gujurat will tell you how many Sales Orders were created for the Gujurat sector, howmuch was spent on raw materials, what's the currect stock ([roject stock) available. How many Production Orders have been confirmed and howmany of them are getting confrmed in the future. How many invoices have been generated or how much revenue has been generated for that particular sector. How many deliveries have been made, what deliverables are still not accomplished.&nbsp; <br />&nbsp;&nbsp;&nbsp; <br />So as you can see, PS is the center stage for all the modules that are being implemented like FI/CO, SD, MM, PP in this example. You can have cost centers and work centers defined. You can also have profit centers assigned at the plant level and get reports on varius selection criteria.&nbsp; <br />&nbsp;&nbsp;&nbsp; <br />In a complete cycle of PS, like in reality, you initiate a project, you confirm/release the WBS/activities as per requirement, you execute the project and you close it.&nbsp; <br />&nbsp;&nbsp;&nbsp; <br />One cannot initiate an activity unless it has been released by the project manager. Everything is accountable here and every dime is counted and at the end you know howmuch did you spend or make on each sector (WBS). Dont get confused with the term sector here... I am using it just for the explaination purposes.<img src="/images/smiles/icon_smile.gif"/><br />&nbsp;&nbsp;&nbsp; <br />In one typical example, the company I was working with until not too long ago, had Deliveries from the Project (TC: CNS0). We never used VL01N. We used CNS0 to create a delivery and then used VL02N for confirming the picking quantity for the already created delivery document. <br />&nbsp;&nbsp;&nbsp; <br />I hope this should help you at least a bit. I'm not a PS consultant so I may not know a whole lot but trying going to CJ20N and you will see a lot yourself.&nbsp; <br />&nbsp;&nbsp;&nbsp; <br />PS concultants are one of the highest paid consultants. Their supply is less and so is the demand. They are expected to understand real world business processes very well and they are generally the center stage of a project. <br /><br />Tips by : Hemal, Kunal
          <br/>
          <span style="color:red;">
            <a href="http://sap.group.javaeye.com/group/blog/178124#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 31 Mar 2008 17:23:47 +0800</pubDate>
        <link>http://sap.group.javaeye.com/group/blog/178124</link>
        <guid>http://sap.group.javaeye.com/group/blog/178124</guid>
      </item>
          <item>
        <title>ABAP Function module文档生成工具</title>
        <author>keynesc</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://keynesc.javaeye.com">keynesc</a>&nbsp;
                    链接：<a href="http://sap.group.javaeye.com/group/blog/174833" style="color:red;">http://sap.group.javaeye.com/group/blog/174833</a>&nbsp;
          发表时间: 2008年03月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          用来生成function module的HTML格式的文档<br /><pre name="code" class="java">
*&---------------------------------------------------------------------*
*& Report  ZABAPDOC
*&
*&---------------------------------------------------------------------*
*& This report generate HTML files containing the API information about
*& the selected function modules.
*& SDN https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/u/251708914
*& This program has been developed via the ABAP Eclipse Editor
*&---------------------------------------------------------------------*

REPORT  zabapdoc MESSAGE-ID eu.

TYPE-POOLS:
  sscr.

TABLES:
  tadir,
  tlibt,
  trdir.

CLASS:
  lcl_source_scan DEFINITION DEFERRED.

DATA:
  lo_sscan   TYPE REF TO lcl_source_scan,
  lv_appl    TYPE taplt-appl,
  tofolder_string TYPE string.

SELECTION-SCREEN: BEGIN OF BLOCK a11 WITH FRAME TITLE a11.
SELECT-OPTIONS:    devclass FOR tadir-devclass,
                   funcgrp  FOR tlibt-area.
SELECTION-SCREEN: END OF BLOCK a11,
                  BEGIN OF BLOCK a20 WITH FRAME TITLE a20.
PARAMETERS:       funcmod     TYPE xfeld AS CHECKBOX DEFAULT 'X' ,
                  tofolder    TYPE char255 DEFAULT 'C:\TEMP'.
SELECTION-SCREEN: END OF BLOCK a20.

*----------------------------------------------------------------------*
*       CLASS lcx_scan_exceptions DEFINITION
*----------------------------------------------------------------------*
*       Exceptions for source scanning
*----------------------------------------------------------------------*
CLASS lcx_scan_exceptions DEFINITION INHERITING FROM cx_static_check.
ENDCLASS.                    "lcx_scan_exceptions DEFINITION

*----------------------------------------------------------------------*
*       CLASS lcl_source_scan DEFINITION
*----------------------------------------------------------------------*
*       ABAP source scanner
*----------------------------------------------------------------------*
CLASS lcl_source_scan DEFINITION.
  PUBLIC SECTION.
    METHODS:
      constructor,

      f4_class
        CHANGING
          cv_class_name TYPE clike,

      f4_function_group
        IMPORTING
          iv_group_name TYPE clike,

      f4_repname
        CHANGING
          cv_repname TYPE clike,

      start.

  PROTECTED SECTION.
    TYPES:
      BEGIN OF ty_ls_objname,
        report TYPE sy-repid,
        dynnr  TYPE sy-dynnr,
      END OF ty_ls_objname.

    TYPES:
      BEGIN OF ts_comment_tab,
        report TYPE sy-repid,
        source TYPE abaptxt255,
      END OF ts_comment_tab.

    DATA:
      gv_hit_count  TYPE i,
      gv_sstring    TYPE string,
      gv_dynp_found TYPE xfeld,
      gv_vers_found TYPE xfeld,
      gt_object     TYPE STANDARD TABLE OF tadir-obj_name,
      gt_vrsd       TYPE HASHED TABLE OF vrsd
                      WITH UNIQUE KEY objname versno,
      gt_results    TYPE TABLE OF ts_comment_tab
                      .


    CONSTANTS:
      gc_x TYPE xfeld VALUE 'X'.

    METHODS:

      display,

      get_version_numbers
        IMPORTING
          iv_report TYPE clike
          iv_dynpro TYPE clike OPTIONAL
        RETURNING value(rt_vrsd) LIKE gt_vrsd,

      get_source_names,

      get_source_by_version
        IMPORTING
          iv_report TYPE clike
          iv_dynpro TYPE clike OPTIONAL
          iv_versno TYPE vrsd-versno
        RETURNING value(rt_abap) TYPE abaptxt255_tab,

      get_report_names,
      get_function_names,
      get_includes,

      get_method_includes
        IMPORTING
          iv_class_name TYPE clike,

      search_abap_source   RAISING lcx_scan_exceptions,

      search_source
        IMPORTING
          it_source TYPE abaptxt255_tab
          iv_report TYPE clike
          iv_dynpro TYPE clike OPTIONAL
        RAISING lcx_scan_exceptions,

      generateindex,

      generateinfopage
          IMPORTING
              iv_fm TYPE rs38l_fnam
              iv_report TYPE progname OPTIONAL,

      get_parametertype
          IMPORTING
              is_eparameter TYPE rsexp OPTIONAL
              is_iparameter TYPE rsimp OPTIONAL
              is_cparameter TYPE rscha OPTIONAL
              is_tparameter TYPE rstbl OPTIONAL
          RETURNING value(rl_type) TYPE string,

      get_parametertypename
          IMPORTING
              is_eparameter TYPE rsexp OPTIONAL
              is_iparameter TYPE rsimp OPTIONAL
              is_cparameter TYPE rscha OPTIONAL
              is_tparameter TYPE rstbl OPTIONAL
          RETURNING value(rl_type) TYPE string.

ENDCLASS.                    "lcl_source_scan DEFINITION

*----------------------------------------------------------------------*
*       CLASS lcl_source_scan IMPLEMENTATION
*----------------------------------------------------------------------*
*       ABAP source scanner
*----------------------------------------------------------------------*
CLASS lcl_source_scan IMPLEMENTATION.

  METHOD constructor.
    DATA:
      ls_restrict    TYPE sscr_restrict,
      ls_opt_list    TYPE sscr_opt_list,
      ls_association TYPE sscr_ass.

    ls_opt_list-name       = 'RESTRICT'.
    ls_opt_list-options-cp = gc_x.
    ls_opt_list-options-eq = gc_x.

    APPEND ls_opt_list TO ls_restrict-opt_list_tab.

    ls_association-kind    = 'S'.
    ls_association-name    = 'SSTRING'.
    ls_association-sg_main = 'I'.
    ls_association-op_main = ls_association-op_addy = 'RESTRICT'.

    APPEND ls_association TO ls_restrict-ass_tab.

    CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'
      EXPORTING
        program                = sy-repid
        restriction            = ls_restrict
      EXCEPTIONS
        too_late               = 1
        repeated               = 2
        selopt_without_options = 3
        selopt_without_signs   = 4
        invalid_sign           = 5
        empty_option_list      = 6
        invalid_kind           = 7
        repeated_kind_a        = 8
        OTHERS                 = 9.

  ENDMETHOD.                    "constructor

  METHOD f4_repname.
    CALL FUNCTION 'REPOSITORY_INFO_SYSTEM_F4'
      EXPORTING
        object_type          = 'PROG'
        object_name          = cv_repname
        suppress_selection   = 'X'
      IMPORTING
        object_name_selected = cv_repname
      EXCEPTIONS
        cancel               = 1.
  ENDMETHOD.                                                "f4_repname

  METHOD f4_function_group.
    DATA:
      lv_fname TYPE dynfnam.

    lv_fname = iv_group_name.

    CALL FUNCTION 'RS_HELP_HANDLING'
      EXPORTING
        dynpfield                 = lv_fname
        dynpname                  = sy-dynnr
        object                    = 'FG  '
        progname                  = sy-repid
        suppress_selection_screen = 'X'.

  ENDMETHOD.                    "f4_function_group

  METHOD f4_class.
    CALL FUNCTION 'F4_DD_ALLTYPES'
      EXPORTING
        object               = cv_class_name
        suppress_selection   = gc_x
        display_only         = space
        only_types_for_clifs = gc_x
      IMPORTING
        RESULT               = cv_class_name.
  ENDMETHOD.                                                "f4_class

  METHOD display.
    DATA lv_filename TYPE string.

    WRITE: / 'API information files have been generated.'.
    CONCATENATE tofolder '\abapdoc_index.html' INTO lv_filename.
    WRITE: / 'Open',  lv_filename, 'in your browser to view the ABAPdoc.'.

  ENDMETHOD.                    "display


  METHOD get_source_by_version.
    DATA:
      lv_object_name TYPE versobjnam,
      ls_object_name TYPE ty_ls_objname,
      lt_trdir       TYPE STANDARD TABLE OF trdir,
      lt_d022s       TYPE STANDARD TABLE OF d022s.

    IF iv_dynpro IS INITIAL.
      lv_object_name = iv_report.

      CALL FUNCTION 'SVRS_GET_REPS_FROM_OBJECT'
        EXPORTING
          object_name                  = lv_object_name
          object_type                  = 'REPS'
          versno                       = iv_versno
          iv_no_release_transformation = 'X'
        TABLES
          repos_tab                    = rt_abap
          trdir_tab                    = lt_trdir
        EXCEPTIONS
          no_version                   = 1
          OTHERS                       = 2.
    ELSE.
      ls_object_name-report = iv_report.
      ls_object_name-dynnr  = iv_dynpro.

      lv_object_name = ls_object_name.

      CALL FUNCTION 'SVRS_GET_VERSION_DYNP_40'
        EXPORTING
          object_name = lv_object_name
          versno      = iv_versno
        TABLES
          d022s_tab   = lt_d022s
        EXCEPTIONS
          no_version  = 01
          OTHERS      = 02.

      CHECK sy-subrc IS INITIAL AND lt_d022s IS NOT INITIAL.

      APPEND LINES OF lt_d022s TO rt_abap.

    ENDIF.
  ENDMETHOD.                    "get_source_by_version

  METHOD get_version_numbers.
    DATA:
      ls_objname TYPE ty_ls_objname,
      lv_objtype TYPE vrsd-objtype,
      lv_objname TYPE versobjnam,
      lv_versno  TYPE versno,
      lt_vrsn    TYPE STANDARD TABLE OF vrsn,
      lt_vrsd    TYPE STANDARD TABLE OF vrsd.

    ls_objname-report = iv_report.
    ls_objname-dynnr  = iv_dynpro.
    lv_objname        = ls_objname.

    IF iv_dynpro IS INITIAL.
      lv_objtype = 'REPS'.
    ELSE.
      lv_objtype = 'DYNP'.
    ENDIF.

    CALL FUNCTION 'SVRS_GET_VERSION_DIRECTORY_46'
      EXPORTING
        objname                = lv_objname
        objtype                = lv_objtype
      TABLES
        lversno_list           = lt_vrsn
        version_list           = lt_vrsd
      EXCEPTIONS
        no_entry               = 1
        communication_failure_ = 2
        system_failure         = 3
        OTHERS                 = 4.

    CHECK sy-subrc IS INITIAL .

    SORT lt_vrsd BY objname versno.
    DELETE ADJACENT DUPLICATES FROM lt_vrsd COMPARING objname versno.

    rt_vrsd = lt_vrsd.

    DELETE TABLE rt_vrsd WITH TABLE KEY objname = lv_objname
                                        versno  = lv_versno.

    SORT rt_vrsd.

    CHECK iv_dynpro IS NOT INITIAL.
*   For dynpros we need to save the version information for the version display
*   this is not required for source code
    INSERT LINES OF rt_vrsd INTO TABLE gt_vrsd.

  ENDMETHOD.                    "get_version_Numbers

  METHOD search_abap_source.
    DATA:
      lt_abap TYPE abaptxt255_tab.

    FIELD-SYMBOLS:
     &lt;lv_obj> TYPE tadir-obj_name.

    LOOP AT gt_object ASSIGNING &lt;lv_obj>.
      READ REPORT &lt;lv_obj> INTO lt_abap.
      IF sy-subrc IS NOT INITIAL.
        CONTINUE.
      ENDIF.

      search_source( it_source = lt_abap
                     iv_report = &lt;lv_obj> ).

    ENDLOOP.

    "FREE gt_object.

  ENDMETHOD.                    "search_abap_source

  METHOD search_source.
    DATA:
      lt_source       TYPE abaptxt255_tab,
      lt_source_vers  TYPE abaptxt255_tab,
      lt_vrsd         TYPE STANDARD TABLE OF vrsd,
      ls_vrsd         LIKE LINE OF lt_vrsd,
      lv_number       TYPE i,
      lv_index        TYPE i.

    lt_source = it_source.

    lv_number = 1.

    DO lv_number TIMES.

      IF sy-index = 1.
        CLEAR ls_vrsd.
      ELSE.
        lv_index = sy-index - 1.
        READ TABLE lt_vrsd INDEX lv_index INTO ls_vrsd.
        CHECK sy-subrc IS INITIAL.

        lt_source_vers = get_source_by_version( iv_report = iv_report
                                                iv_dynpro = iv_dynpro
                                                iv_versno = ls_vrsd-versno ).

        IF lt_source_vers IS NOT INITIAL.
          lt_source = lt_source_vers.
        ELSE.
          CONTINUE.
        ENDIF.
      ENDIF.

      DATA: tokens       TYPE TABLE OF stokesx,
            token        TYPE stokesx,
            tokenource   TYPE stokesx,
            statement    TYPE sstmnt,
            statements   TYPE TABLE OF sstmnt,
            selectsource TYPE string,
            mat_res      TYPE ts_comment_tab,
            lv_line      TYPE abaptxt255.

      LOOP AT lt_source INTO lv_line.
        IF ( sy-tabix = 1 AND lv_line(8) = 'FUNCTION' ).
          CONTINUE.
        ELSEIF ( sy-tabix > 1 and lv_line(1) = '*' ).
              mat_res-source = lv_line.
              mat_res-report = iv_report.
              INSERT mat_res INTO TABLE gt_results.
        ELSE.
          RETURN.
        ENDIF.
      ENDLOOP.
    ENDDO.
  ENDMETHOD.                    "search_source

  METHOD get_includes.
    DATA:
     lt_inc     TYPE STANDARD TABLE OF tadir-obj_name,
     lt_inc_tmp LIKE lt_inc,
     lv_program TYPE sy-repid,
     lv_old     TYPE xfeld.

    FIELD-SYMBOLS:
      &lt;lv_obj> TYPE tadir-obj_name.

    LOOP AT gt_object ASSIGNING &lt;lv_obj>
      WHERE table_line(2) &lt;> 'CL'.    "for classes we already have the includes

      REFRESH lt_inc_tmp.

      IF lv_old IS NOT INITIAL.
        CALL FUNCTION 'GET_INCLUDES'
          EXPORTING
            progname = &lt;lv_obj>
          TABLES
            incltab  = lt_inc_tmp.

      ELSE.
        lv_program = &lt;lv_obj>.

        CALL FUNCTION 'RS_GET_ALL_INCLUDES'
          EXPORTING
            program      = lv_program
          TABLES
            includetab   = lt_inc_tmp
          EXCEPTIONS
            not_existent = 1
            no_program   = 2
            OTHERS       = 3.

        CHECK sy-subrc IS INITIAL.
      ENDIF.

      APPEND LINES OF lt_inc_tmp TO lt_inc.
    ENDLOOP.

    SORT lt_inc.
    DELETE ADJACENT DUPLICATES FROM lt_inc.

    APPEND LINES OF lt_inc TO gt_object.

  ENDMETHOD.                    "get_includes

  METHOD get_method_includes.
    DATA: lo_name     TYPE REF TO cl_oo_include_naming,
          lo_name_tmp TYPE REF TO if_oo_clif_incl_naming,
          lt_method   TYPE seop_methods_w_include,
          lv_obj      TYPE tadir-obj_name.

    FIELD-SYMBOLS:
     &lt;ls_method> LIKE LINE OF lt_method.

    CALL METHOD cl_oo_include_naming=>get_instance_by_name
      EXPORTING
        name           = iv_class_name
      RECEIVING
        cifref         = lo_name_tmp
      EXCEPTIONS
        no_objecttype  = 1
        internal_error = 2
        OTHERS         = 3.

    CHECK sy-subrc IS INITIAL.

    lo_name ?= lo_name_tmp.

    CALL METHOD lo_name->if_oo_class_incl_naming~get_all_method_includes
      RECEIVING
        methods_w_include           = lt_method
      EXCEPTIONS
        internal_class_not_existing = 1
        OTHERS                      = 2.

    LOOP AT lt_method ASSIGNING &lt;ls_method>.
      lv_obj = &lt;ls_method>-incname.
      APPEND lv_obj TO gt_object.
    ENDLOOP.
  ENDMETHOD.                    "get_method_includes

  METHOD get_report_names.
    SELECT obj_name INTO TABLE gt_object
      FROM tadir
      WHERE pgmid  = 'R3TR'
      AND   object = 'PROG'
      AND   devclass IN devclass.                     "#EC CI_SGLSELECT
  ENDMETHOD.                    "get_report_names

  METHOD get_function_names.
    DATA:
      lt_obj     TYPE STANDARD TABLE OF tadir-obj_name,
      lv_obj     TYPE tadir-obj_name,
      lv_fgroup  TYPE rs38l-area,
      lv_program TYPE progname.

    FIELD-SYMBOLS:
      &lt;lv_obj> LIKE LINE OF lt_obj.

    SELECT obj_name INTO TABLE lt_obj
      FROM tadir
      WHERE pgmid  = 'R3TR'
      AND   object = 'FUGR'
      AND   devclass IN devclass
      AND   obj_name IN funcgrp.                      "#EC CI_SGLSELECT

    LOOP AT lt_obj ASSIGNING &lt;lv_obj>.
      lv_fgroup = &lt;lv_obj>.
      CLEAR lv_program.

      CALL FUNCTION 'FUNCTION_INCLUDE_CONCATENATE'
        CHANGING
          program                  = lv_program
          group                    = lv_fgroup
        EXCEPTIONS
          not_enough_input         = 1
          no_function_pool         = 2
          delimiter_wrong_position = 3
          OTHERS                   = 4.

      CHECK sy-subrc IS INITIAL AND lv_program IS NOT INITIAL.

      lv_obj = lv_program.
      APPEND lv_obj TO gt_object.
    ENDLOOP.
  ENDMETHOD.                    "get_function_names

  METHOD get_source_names.

    IF devclass[] IS NOT INITIAL.
      "get_report_names( ).
      get_function_names( ).
    ENDIF.

    IF funcgrp[] IS NOT INITIAL.
      get_function_names( ).
    ENDIF.

  ENDMETHOD.                    "get_source_names

  METHOD start.

    get_source_names( ).
    get_includes( ).

    TRY.
        search_abap_source( ).
      CATCH lcx_scan_exceptions.
        RETURN.
    ENDTRY.

    IF funcmod = 'X'. " Generate HTML files for function modules API
      generateindex( ).
    ENDIF.

    display( ).
  ENDMETHOD.                    "start
  METHOD generateindex.
    DATA: lv_string   TYPE string,
          lt_string   TYPE TABLE OF string,
          lv_funcname TYPE  rs38l_fnam,
          lv_include  TYPE  progname,
          lv_filename TYPE string.

*   Generate HTML index file.
    APPEND '&lt;HTML>&lt;HEAD>&lt;TITLE>ABAPdoc&lt;/TITLE>&lt;/HEAD>' TO lt_string.
    APPEND '&lt;FRAMESET cols="20%,80%">' TO lt_string.
    APPEND '&lt;FRAME src="abapdoc_all-frame.html" name="packageFrame">' TO lt_string.
    APPEND '&lt;FRAME src="abapdoc_main.html" name="classFrame">' TO lt_string.
    APPEND '&lt;/FRAMESET>&lt;/HTML>' TO lt_string.

    CONCATENATE tofolder '\abapdoc_index.html' INTO lv_filename.
    CALL FUNCTION 'GUI_DOWNLOAD'
      EXPORTING
        filename = lv_filename
        filetype = 'ASC'
      TABLES
        data_tab = lt_string.
    IF sy-subrc &lt;> 0.
    ENDIF.

    CLEAR lt_string.

*   Generate HTML index file.
    APPEND '&lt;HTML>&lt;HEAD>&lt;TITLE>ABAPdoc&lt;/TITLE>&lt;/HEAD>&lt;BODY>&lt;br/>&lt;CENTER>&lt;B>' TO lt_string.
    APPEND 'ABAPdoc has been created via the &lt;a href="http://www.ceon.nl/abapeclipse">ABAP Eclipse Editor&lt;/a>' TO lt_string.
    APPEND '&lt;/B>&lt;/CENTER>&lt;/BODY>&lt;/HTML>' TO lt_string.

    CONCATENATE tofolder '\abapdoc_main.html' INTO lv_filename.
    CALL FUNCTION 'GUI_DOWNLOAD'
      EXPORTING
        filename = lv_filename
        filetype = 'ASC'
      TABLES
        data_tab = lt_string.
    IF sy-subrc &lt;> 0.
    ENDIF.

    CLEAR lt_string.

    APPEND '&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">&lt;HTML>&lt;HEAD>' TO lt_string.

    IF NOT funcgrp IS INITIAL.
      APPEND '&lt;TITLE>All Function Modules of ' TO lt_string.
      APPEND funcgrp TO lt_string.
      APPEND '&lt;/TITLE>' TO lt_string.
    ENDIF.
    "append '&lt;TITLE>All Function Modules of ' to lt_string.

    APPEND '&lt;STYLE>body.allclasses { background-color: #4C4C4C; font-family: arial, sans-serif; font-size: 9pt; letter-spacing: 1px; font-weight: 500; color: white; }' TO lt_string.
    APPEND 'a { font-family: arial, sans-serif; font-size: 9pt; letter-spacing: 1px; font-weight: 500; color: white; }&lt;/STYLE>' TO lt_string.
    APPEND '&lt;/HEAD>&lt;BODY CLASS="allclasses">' TO lt_string.
    APPEND '&lt;FONT CLASS="FrameHeadingFont">&lt;B>' TO lt_string.
    IF NOT funcgrp IS INITIAL.
      APPEND 'All Function Modules of ' TO lt_string.
      APPEND funcgrp+3 TO lt_string.
    ENDIF.
    IF NOT devclass IS INITIAL.
      APPEND 'All Function Modules of package ' TO lt_string.
      APPEND devclass+3 TO lt_string.
    ENDIF.

    APPEND '&lt;/B>&lt;/FONT>&lt;BR/>&lt;BR/>&lt;BR/>' TO lt_string.

    FIELD-SYMBOLS:
     &lt;lv_obj> TYPE tadir-obj_name.

    LOOP AT gt_object ASSIGNING &lt;lv_obj>.
      lv_include = &lt;lv_obj>.
      CLEAR lv_funcname.
      CALL FUNCTION 'FUNCTION_INCLUDE_INFO'
        CHANGING
          funcname            = lv_funcname
          include             = lv_include
        EXCEPTIONS
          function_not_exists = 1
          include_not_exists  = 2
          group_not_exists    = 3
          no_selections       = 4
          no_function_include = 5
          OTHERS              = 6.
      IF sy-subrc = 0 AND lv_funcname IS NOT INITIAL.
        CONCATENATE '&lt;A HREF="abapdoc_' lv_funcname '.html" TARGET="classFrame">' lv_funcname '&lt;/A>&lt;br/>' INTO lv_string.
        APPEND lv_string TO lt_string.
        generateinfopage( iv_fm = lv_funcname iv_report = lv_include ).
      ENDIF.

    ENDLOOP.

    APPEND '&lt;/BODY>&lt;/HTML>' TO lt_string.

    CONCATENATE tofolder '\abapdoc_all-frame.html' INTO lv_filename.
    CALL FUNCTION 'GUI_DOWNLOAD'
      EXPORTING
        filename = lv_filename
        filetype = 'ASC'
      TABLES
        data_tab = lt_string.
    IF sy-subrc &lt;> 0.
    ENDIF.


  ENDMETHOD.                    "generateindex
  METHOD generateinfopage.
    DATA: filename            TYPE string,
          lv_string           TYPE string,
          lt_string           TYPE TABLE OF string,
          lv_funcname         TYPE  rs38l_fnam,
          lv_include          TYPE  progname,
          lv_remote_call      TYPE rs38l-remote,
          lv_update_task      TYPE rs38l-utask,
          lv_exception_list   TYPE rsexc,
          lv_export_parameter TYPE rsexp,
          lv_import_parameter TYPE rsimp,
          lv_changing_parameter TYPE rscha,
          lv_tables_parameter TYPE rstbl,
          lv_p_docu           TYPE funct,
          lt_exception_list   TYPE TABLE OF rsexc,
          lt_export_parameter TYPE TABLE OF rsexp,
          lt_import_parameter TYPE TABLE OF rsimp,
          lt_changing_parameter TYPE TABLE OF rscha,
          lt_tables_parameter TYPE TABLE OF rstbl,
          lt_p_docu           TYPE TABLE OF funct,
          lv_stext            TYPE rs38l_ftxt.

    lv_funcname = iv_fm.

    CALL FUNCTION 'FUNCTION_IMPORT_DOKU'
      EXPORTING
        funcname                 = lv_funcname
        language                 = sy-langu
     IMPORTING
*       GLOBAL_FLAG              =
        remote_call              = lv_remote_call
        update_task              = lv_update_task
        short_text               = lv_stext
*       FREEDATE                 =
*       EXCEPTION_CLASS          =
      TABLES
        dokumentation            = lt_p_docu
        exception_list           = lt_exception_list
        export_parameter         = lt_export_parameter
        import_parameter         = lt_import_parameter
        changing_parameter       = lt_changing_parameter
        tables_parameter         = lt_tables_parameter
     EXCEPTIONS
       error_message            = 1
       function_not_found       = 2
       invalid_name             = 3
       OTHERS                   = 4
              .

    IF sy-sub