<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>
	Comments on: How to Pallet Packing in SAP ECC	</title>
	<atom:link href="https://www.sapewmhelp.com/question/how-to-pallet-packing-in-sap-ecc/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.sapewmhelp.com/question/how-to-pallet-packing-in-sap-ecc/</link>
	<description>SAP EWM questions answered by experts — ABAP, S/4HANA, warehouse management</description>
	<lastBuildDate>Sat, 18 Jul 2026 18:56:47 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.2</generator>
	<item>
		<title>
		By: admin		</title>
		<link>https://www.sapewmhelp.com/question/how-to-pallet-packing-in-sap-ecc/#comment-307</link>

		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Sat, 18 Jul 2026 18:56:47 +0000</pubDate>
		<guid isPermaLink="false">https://www.sapewmhelp.com/question/how-to-pallet-packing-in-sap-ecc/#comment-307</guid>

					<description><![CDATA[&lt;div class=&quot;_chunkWrapper_yu34g_39&quot;&gt;
&lt;h2 class=&quot;text-text-100 mt-3 -mb-1 text-[1.375rem] font-bold&quot;&gt;&lt;span&gt;How to &lt;/span&gt;&lt;span&gt;Do Pallet Packing in SAP ECC (Nesting &lt;/span&gt;&lt;span&gt;an Outer Box HU into a Pallet HU)&lt;/span&gt;&lt;/h2&gt;
&lt;/div&gt;
&lt;div class=&quot;_chunkWrapper_yu34g_39&quot;&gt;
&lt;h3 class=&quot;text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold&quot;&gt;&lt;span&gt;Question&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&quot;_chunkWrapper_yu34g_39&quot;&gt;
&lt;p class=&quot;font-claude-response-body break-words whitespace-normal&quot;&gt;&lt;span&gt;I need to pack an &lt;/span&gt;&lt;span&gt;already-built &lt;/span&gt;&lt;strong&gt;&lt;span&gt;outer box&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; (a &lt;/span&gt;&lt;span&gt;lower-level Handling Unit) onto a &lt;/span&gt;&lt;strong&gt;&lt;span&gt;pallet&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; HU in SAP ECC using standard &lt;/span&gt;&lt;span&gt;function modules. What&#039;s the correct &lt;/span&gt;&lt;span&gt;sequence, and how do I build the &lt;/span&gt;&lt;span&gt;packing request so the box gets nested &lt;/span&gt;&lt;span&gt;inside the pallet? Below is the &lt;/span&gt;&lt;span&gt;approach I used.&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;_chunkWrapper_yu34g_39&quot;&gt;
&lt;h3 class=&quot;text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold&quot;&gt;&lt;span&gt;Answer&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&quot;_chunkWrapper_yu34g_39&quot;&gt;
&lt;p class=&quot;font-claude-response-body break-words whitespace-normal&quot;&gt;&lt;span&gt;The &lt;/span&gt;&lt;span&gt;concept here is HU &lt;/span&gt;&lt;strong&gt;&lt;span&gt;nesting&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; — like &lt;/span&gt;&lt;span&gt;Russian nesting dolls: the product sits &lt;/span&gt;&lt;span&gt;in a box, and that box (the &lt;/span&gt;&lt;em&gt;&lt;span&gt;outer box HU&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span&gt;) sits on a pallet (the &lt;/span&gt;&lt;em&gt;&lt;span&gt;pallet HU&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span&gt;). This routine performs one &lt;/span&gt;&lt;span&gt;nesting step: placing the outer box &lt;/span&gt;&lt;strong&gt;&lt;span&gt;into&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; the pallet.&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;_chunkWrapper_yu34g_39&quot;&gt;
&lt;p class=&quot;font-claude-response-body break-words whitespace-normal&quot;&gt;&lt;span&gt;The key is to &lt;/span&gt;&lt;span&gt;follow the standard sequence in order — &lt;/span&gt;&lt;strong&gt;&lt;span&gt;Refresh → Get/Lock HUs → Pack → Post&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;. Skipping any step (especially the &lt;/span&gt;&lt;span&gt;refresh or the lock) is the usual cause &lt;/span&gt;&lt;span&gt;of packing that &quot;works once then &lt;/span&gt;&lt;span&gt;silently fails.&quot;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;_chunkWrapper_yu34g_39&quot;&gt;
&lt;p class=&quot;font-claude-response-body break-words whitespace-normal&quot;&gt;&lt;strong&gt;&lt;span&gt;Building the packing request (&lt;code&gt;ls_pack_req&lt;/code&gt;):&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ul&gt;
 	&lt;li&gt;&lt;span&gt;&lt;code&gt;venum&lt;/code&gt; / &lt;code&gt;exidv&lt;/code&gt; → the &lt;/span&gt;&lt;strong&gt;&lt;span&gt;target&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; pallet HU (what you pack &lt;/span&gt;&lt;em&gt;&lt;span&gt;into&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span&gt;)&lt;/span&gt;&lt;/li&gt;
 	&lt;li&gt;&lt;span&gt;&lt;code&gt;sub_hu_venum&lt;/code&gt; / &lt;code&gt;sub_hu_exidv&lt;/code&gt;&lt;/span&gt;&lt;span&gt; → the &lt;/span&gt;&lt;strong&gt;&lt;span&gt;content&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; outer &lt;/span&gt;&lt;span&gt;box HU (what gets packed)&lt;/span&gt;&lt;/li&gt;
 	&lt;li&gt;&lt;span&gt;&lt;code&gt;pagew&lt;/code&gt; → &lt;/span&gt;&lt;span&gt;weight, &lt;code&gt;veanz = 1&lt;/code&gt; → one unit, &lt;code&gt;velin = 3&lt;/code&gt;&lt;/span&gt;&lt;span&gt; → item category for &lt;/span&gt;&lt;strong&gt;&lt;span&gt;HU-in-HU&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; (packing a whole HU, not &lt;/span&gt;&lt;span&gt;loose material)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;_chunkWrapper_yu34g_39&quot;&gt;
&lt;p class=&quot;font-claude-response-body break-words whitespace-normal&quot;&gt;&lt;strong&gt;&lt;span&gt;The four SAP standard function modules used:&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;_chunkWrapper_yu34g_39&quot;&gt;
&lt;div class=&quot;overflow-x-auto w-full px-2 mb-6&quot;&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;span&gt; Function Module&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;th&gt;&lt;span&gt;Purpose&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;code&gt;HU_PACKING_REFRESH&lt;/code&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;Clears the HU work buffer for a &lt;/span&gt;&lt;span&gt;clean start&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;code&gt;HU_GET_HUS&lt;/code&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;Reads &lt;/span&gt;&lt;strong&gt;&lt;span&gt;and locks&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span&gt; both HUs for exclusive &lt;/span&gt;&lt;span&gt;access&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;code&gt;HU_PACKING_AND_UNPACKING&lt;/code&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;Performs the actual packing in the &lt;/span&gt;&lt;span&gt;buffer&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;&lt;code&gt;HU_POST&lt;/code&gt; (&lt;code&gt;if_commit = &#039;X&#039;&lt;/code&gt;)&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;Saves and commits the result to &lt;/span&gt;&lt;span&gt;the database&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p class=&quot;font-claude-response-body break-words whitespace-normal&quot;&gt;After each call, &lt;code&gt;sy-subrc&lt;/code&gt; is checked. On failure, the SAP message is captured into the status field and the routine exits; on success, the record is stamped with status, date, time, and user.&lt;/p&gt;

&lt;h4 class=&quot;text-text-100 mt-2 -mb-1 text-base font-bold&quot;&gt;Code&lt;/h4&gt;
&lt;blockquote&gt;ls_pack_req-venum = ls_vekp_pal-venum.
ls_pack_req-exidv = ls_vekp_pal-exidv.

*--Fill Outerbox as lower level HU
ls_pack_req-sub_hu_venum = ls_vekp_out-venum.
ls_pack_req-sub_hu_exidv = ls_vekp_out-exidv.

*--Fill quantity
ls_pack_req-pagew = ls_pallet-pallet_wt.
ls_pack_req-veanz = &#039;1&#039;.
ls_pack_req-velin = &#039;3&#039;.

ls_venom-venum = ls_vekp_out-venum.
append ls_venom to lt_venom.
clear ls_venom.
ls_venom-venum = ls_vekp_pal-venum. &quot;gs_pallet-venum.
append ls_venom to lt_venom.
clear ls_venom.
*--Refresh
call function &#039;HU_PACKING_REFRESH&#039;.
*--Get HU headers
call function &#039;HU_GET_HUS&#039;
exporting
if_object = &#039;04&#039;
if_lock_hus = &#039;X&#039;
it_venum = lt_venom
importing
et_header = lt_header
exceptions
hus_locked = 1
no_hu_found = 2
fatal_error = 3
others = 4.
*--Do the packing
if sy-subrc eq 0.
call function &#039;HU_PACKING_AND_UNPACKING&#039;
exporting
is_packing_request = ls_pack_req
exceptions
missing_data = 1
hu_not_changeable = 2
not_possible = 3
customizing = 4
weight = 5
volume = 6
serial_nr = 7
fatal_error = 8
others = 9.

if sy-subrc = 0.
call function &#039;HU_POST&#039;
exporting
if_synchron = &#039;X&#039;
if_commit = &#039;X&#039;.

&#060;lfs_data&#062;-status = text-020.
&#060;lfs_data&#062;-error_msg = text-s01.
&#060;lfs_data&#062;-idate = sy-datum.
&#060;lfs_data&#062;-itime = sy-uzeit.
&#060;lfs_data&#062;-iuser = sy-uname.
else.
&#060;lfs_data&#062;-status = text-019.
message id sy-msgid
type sy-msgty
number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
into &#060;lfs_data&#062;-error_msg.
lv_error = abap_true.
lv_msg = &#060;lfs_data&#062;-error_msg.
exit.
endif.
else.
&#060;lfs_data&#062;-idate = sy-datum.
&#060;lfs_data&#062;-itime = sy-uzeit.
&#060;lfs_data&#062;-iuser = sy-uname.
&#060;lfs_data&#062;-status = text-019.
message id sy-msgid
type sy-msgty
number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
into &#060;lfs_data&#062;-error_msg.
lv_error = abap_true.
lv_msg = &#060;lfs_data&#062;-error_msg.
exit.
endif.&lt;/blockquote&gt;
&lt;/div&gt;
&lt;/div&gt;]]></description>
			<content:encoded><![CDATA[<div class="_chunkWrapper_yu34g_39">
<h2 class="text-text-100 mt-3 -mb-1 text-[1.375rem] font-bold"><span>How to </span><span>Do Pallet Packing in SAP ECC (Nesting </span><span>an Outer Box HU into a Pallet HU)</span></h2>
</div>
<div class="_chunkWrapper_yu34g_39">
<h3 class="text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold"><span>Question</span><span></span></h3>
</div>
<div class="_chunkWrapper_yu34g_39">
<p class="font-claude-response-body break-words whitespace-normal"><span>I need to pack an </span><span>already-built </span><strong><span>outer box</span><span></span></strong><span> (a </span><span>lower-level Handling Unit) onto a </span><strong><span>pallet</span><span></span></strong><span> HU in SAP ECC using standard </span><span>function modules. What&#8217;s the correct </span><span>sequence, and how do I build the </span><span>packing request so the box gets nested </span><span>inside the pallet? Below is the </span><span>approach I used.</span></p>
</div>
<div class="_chunkWrapper_yu34g_39">
<h3 class="text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold"><span>Answer</span><span></span></h3>
</div>
<div class="_chunkWrapper_yu34g_39">
<p class="font-claude-response-body break-words whitespace-normal"><span>The </span><span>concept here is HU </span><strong><span>nesting</span><span></span></strong><span> — like </span><span>Russian nesting dolls: the product sits </span><span>in a box, and that box (the </span><em><span>outer box HU</span><span></span></em><span>) sits on a pallet (the </span><em><span>pallet HU</span><span></span></em><span>). This routine performs one </span><span>nesting step: placing the outer box </span><strong><span>into</span><span></span></strong><span> the pallet.</span></p>
</div>
<div class="_chunkWrapper_yu34g_39">
<p class="font-claude-response-body break-words whitespace-normal"><span>The key is to </span><span>follow the standard sequence in order — </span><strong><span>Refresh → Get/Lock HUs → Pack → Post</span><span></span></strong><span>. Skipping any step (especially the </span><span>refresh or the lock) is the usual cause </span><span>of packing that &#8220;works once then </span><span>silently fails.&#8221;</span></p>
</div>
<div class="_chunkWrapper_yu34g_39">
<p class="font-claude-response-body break-words whitespace-normal"><strong><span>Building the packing request (<code>ls_pack_req</code>):</span><span></span></strong><span></span></p>
<ul>
<li><span><code>venum</code> / <code>exidv</code> → the </span><strong><span>target</span><span></span></strong><span> pallet HU (what you pack </span><em><span>into</span><span></span></em><span>)</span></li>
<li><span><code>sub_hu_venum</code> / <code>sub_hu_exidv</code></span><span> → the </span><strong><span>content</span><span></span></strong><span> outer </span><span>box HU (what gets packed)</span></li>
<li><span><code>pagew</code> → </span><span>weight, <code>veanz = 1</code> → one unit, <code>velin = 3</code></span><span> → item category for </span><strong><span>HU-in-HU</span><span></span></strong><span> (packing a whole HU, not </span><span>loose material)</span></li>
</ul>
</div>
<div class="_chunkWrapper_yu34g_39">
<p class="font-claude-response-body break-words whitespace-normal"><strong><span>The four SAP standard function modules used:</span><span></span></strong><span></span></p>
</div>
<div class="_chunkWrapper_yu34g_39">
<div class="overflow-x-auto w-full px-2 mb-6">
<table>
<thead>
<tr>
<th><span> Function Module</span><span></span></th>
<th><span>Purpose</span><span></span></th>
</tr>
</thead>
<tbody>
<tr>
<td><span><code>HU_PACKING_REFRESH</code></span><span></span></td>
<td><span>Clears the HU work buffer for a </span><span>clean start</span></td>
</tr>
<tr>
<td><span><code>HU_GET_HUS</code></span><span></span></td>
<td><span>Reads </span><strong><span>and locks</span><span></span></strong><span> both HUs for exclusive </span><span>access</span></td>
</tr>
<tr>
<td><span><code>HU_PACKING_AND_UNPACKING</code></span><span></span></td>
<td><span>Performs the actual packing in the </span><span>buffer</span></td>
</tr>
<tr>
<td><span><code>HU_POST</code> (<code>if_commit = 'X'</code>)</span><span></span></td>
<td><span>Saves and commits the result to </span><span>the database</span></td>
</tr>
</tbody>
</table>
<p class="font-claude-response-body break-words whitespace-normal">After each call, <code>sy-subrc</code> is checked. On failure, the SAP message is captured into the status field and the routine exits; on success, the record is stamped with status, date, time, and user.</p>
<h4 class="text-text-100 mt-2 -mb-1 text-base font-bold">Code</h4>
<blockquote><p>ls_pack_req-venum = ls_vekp_pal-venum.<br />
ls_pack_req-exidv = ls_vekp_pal-exidv.</p>
<p>*&#8211;Fill Outerbox as lower level HU<br />
ls_pack_req-sub_hu_venum = ls_vekp_out-venum.<br />
ls_pack_req-sub_hu_exidv = ls_vekp_out-exidv.</p>
<p>*&#8211;Fill quantity<br />
ls_pack_req-pagew = ls_pallet-pallet_wt.<br />
ls_pack_req-veanz = &#8216;1&#8217;.<br />
ls_pack_req-velin = &#8216;3&#8217;.</p>
<p>ls_venom-venum = ls_vekp_out-venum.<br />
append ls_venom to lt_venom.<br />
clear ls_venom.<br />
ls_venom-venum = ls_vekp_pal-venum. &#8220;gs_pallet-venum.<br />
append ls_venom to lt_venom.<br />
clear ls_venom.<br />
*&#8211;Refresh<br />
call function &#8216;HU_PACKING_REFRESH&#8217;.<br />
*&#8211;Get HU headers<br />
call function &#8216;HU_GET_HUS&#8217;<br />
exporting<br />
if_object = &#8217;04&#8217;<br />
if_lock_hus = &#8216;X&#8217;<br />
it_venum = lt_venom<br />
importing<br />
et_header = lt_header<br />
exceptions<br />
hus_locked = 1<br />
no_hu_found = 2<br />
fatal_error = 3<br />
others = 4.<br />
*&#8211;Do the packing<br />
if sy-subrc eq 0.<br />
call function &#8216;HU_PACKING_AND_UNPACKING&#8217;<br />
exporting<br />
is_packing_request = ls_pack_req<br />
exceptions<br />
missing_data = 1<br />
hu_not_changeable = 2<br />
not_possible = 3<br />
customizing = 4<br />
weight = 5<br />
volume = 6<br />
serial_nr = 7<br />
fatal_error = 8<br />
others = 9.</p>
<p>if sy-subrc = 0.<br />
call function &#8216;HU_POST&#8217;<br />
exporting<br />
if_synchron = &#8216;X&#8217;<br />
if_commit = &#8216;X&#8217;.</p>
<p>&lt;lfs_data&gt;-status = text-020.<br />
&lt;lfs_data&gt;-error_msg = text-s01.<br />
&lt;lfs_data&gt;-idate = sy-datum.<br />
&lt;lfs_data&gt;-itime = sy-uzeit.<br />
&lt;lfs_data&gt;-iuser = sy-uname.<br />
else.<br />
&lt;lfs_data&gt;-status = text-019.<br />
message id sy-msgid<br />
type sy-msgty<br />
number sy-msgno<br />
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4<br />
into &lt;lfs_data&gt;-error_msg.<br />
lv_error = abap_true.<br />
lv_msg = &lt;lfs_data&gt;-error_msg.<br />
exit.<br />
endif.<br />
else.<br />
&lt;lfs_data&gt;-idate = sy-datum.<br />
&lt;lfs_data&gt;-itime = sy-uzeit.<br />
&lt;lfs_data&gt;-iuser = sy-uname.<br />
&lt;lfs_data&gt;-status = text-019.<br />
message id sy-msgid<br />
type sy-msgty<br />
number sy-msgno<br />
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4<br />
into &lt;lfs_data&gt;-error_msg.<br />
lv_error = abap_true.<br />
lv_msg = &lt;lfs_data&gt;-error_msg.<br />
exit.<br />
endif.</p></blockquote>
</div>
</div>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
