<?xml version="1.0" encoding="UTF-8" standalone="no"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title><![CDATA[ERPGenie]]></title><description><![CDATA[ERPGenie - blogging since 1998! - All things ERP with a focus on SAP]]></description><link>https://www.erpgenie.com/blog</link><generator>RSS for Node</generator><lastBuildDate>Tue, 06 Jun 2023 20:42:09 GMT</lastBuildDate><atom:link href="https://www.erpgenie.com/blog-feed.xml" rel="self" type="application/rss+xml"/><xhtml:meta content="noindex" name="robots" xmlns:xhtml="http://www.w3.org/1999/xhtml"/><item><title><![CDATA[Configuring Drop Shipping Within SAP]]></title><description><![CDATA[In order to understand the configuration behind an SAP-related drop shipment, we need to first understand the relevance of this concept...]]></description><link>https://www.erpgenie.com/post/configuring-drop-shipping-within-sap</link><guid isPermaLink="false">5fecacb08c10350017441d22</guid><pubDate>Thu, 31 Dec 2020 06:42:08 GMT</pubDate><enclosure length="0" type="image/png" url="https://static.wixstatic.com/media/669b76_65b4db03b9fe44929494c6f0d02c2852~mv2_d_4272_2848_s_4_2.jpg/v1/fit/w_1000,h_1000,al_c,q_80/file.png"/><dc:creator>ERPGenie</dc:creator><content:encoded><![CDATA[<figure><img src="https://static.wixstatic.com/media/669b76_65b4db03b9fe44929494c6f0d02c2852~mv2_d_4272_2848_s_4_2.jpg/v1/fit/w_1000,h_1000,al_c,q_80/file.png"  ></figure><p>In order to understand the configuration behind an SAP-related drop shipment, we need to first understand the relevance of this concept in the backdrop of today’s digitally connected world. Drop shipping relates to a case where the order placed by a customer is transferred to a third party for fulfillment. Thus, the company which received the order only executes order confirmation and invoicing aspects of the transaction. The other steps associated with procurement, warehouse management and logistics execution is done by the third-party which then raises an invoice for its services. Drop shipping is a natural fit for companies dealing in ecommerce or planning to generate sales via the web.</p>
<p>As you would have probably guessed by now, drop shipment scenario saves the organization from production, inventory management, logistics and handling aspects. The product is not only procured or manufactured by a third-party but also shipped directly to the customer as well. We will discuss the business benefits of drop shipping in the subsequent section of the article. Let’s look at how drop shipping can be configured within SAP.</p><h2>Configuring Drop Shipping Within SAP:</h2><p>Using the below steps, you can configure the drop shipping within SAP. The steps have relevant screenshots along with them. The steps have been listed in a logical sequence for better understanding.</p>

<p><em>Read the full step-by-step process here : </em><a href="https://www.appseconnect.com/configuring-drop-shipping-within-sap/" target="_blank" rel="noopener"><em>Configuring Drop Shipping Within SAP - All You Need To Know (appseconnect.com)</em></a></p>]]></content:encoded></item><item><title><![CDATA[Improve supply chain resiliency, traceability, and predictability with blockchain]]></title><description><![CDATA[Blockchain has distinctive qualities that enable unique item identification, tracking, visibility, and shared logic among multi-tiered SC]]></description><link>https://www.erpgenie.com/post/improve-supply-chain-resiliency-traceability-and-predictability-with-blockchain</link><guid isPermaLink="false">5fdcd966c41c260017227f6b</guid><pubDate>Fri, 18 Dec 2020 16:35:54 GMT</pubDate><enclosure length="0" type="image/png" url="https://static.wixstatic.com/media/a6beaa_a1433eafd0c0479bb61f002ddecd22ab~mv2.jpg/v1/fit/w_768,h_199,al_c,q_80/file.png"/><dc:creator>ERPGenie</dc:creator><content:encoded><![CDATA[<p>Blockchain has distinctive qualities that enable unique item identification, tracking, visibility, and shared logic among multi-tiered supplier relationships across three or more parties. Traditional ERP systems help siloed enterprise systems designers solve for two-party relationships but lose visibility in three or more (n-tier) supplier relationships that are typical in complex supply chains. </p>
<figure><img src="https://static.wixstatic.com/media/a6beaa_a1433eafd0c0479bb61f002ddecd22ab~mv2.jpg/v1/fit/w_768,h_199,al_c,q_80/file.png"  ></figure><p>The data structure of blockchain and n-tier participation in a blockchain network open possibilities previously constrained by current approaches. Due to the immutable nature of the data, blockchain elevates conversations from the morass of data reconciliation to shared business problem solving and unlocks the possibility of shared business logic on that agreed upon data.</p><figure><img src="https://static.wixstatic.com/media/a6beaa_0a41d0e80b914fe8a3407ab7a63aab6b~mv2.jpg/v1/fit/w_236,h_356,al_c,q_80/file.png"  ></figure><p>Read full article at https://cloudblogs.microsoft.com/industry-blog/manufacturing/2020/12/17/improve-supply-chain-resiliency-traceability-and-predictability-with-blockchain/</p>]]></content:encoded></item><item><title><![CDATA[Microsoft joins forces with SAP to accelerate customers’ journey to S/4HANA on Azure]]></title><description><![CDATA[Microsoft has been working with SAP on Project Embrace for more than a year to deliver a joint roadmap with specific integrated reference ar]]></description><link>https://www.erpgenie.com/post/microsoft-joins-forces-with-sap</link><guid isPermaLink="false">5f2c11c687d8e40017324968</guid><category><![CDATA[S/4HANA]]></category><category><![CDATA[Migration]]></category><category><![CDATA[Consulting]]></category><category><![CDATA[Products]]></category><category><![CDATA[IoT]]></category><category><![CDATA[Supply Chain]]></category><pubDate>Thu, 06 Aug 2020 14:28:43 GMT</pubDate><enclosure length="0" type="image/png" url="https://static.wixstatic.com/media/a6beaa_6c7d8c0888ba4fe79f75963ef1bd37bb~mv2.jpg/v1/fit/w_530,h_349,al_c,q_80/file.png"/><dc:creator>ERPGenie</dc:creator><content:encoded><![CDATA[<blockquote>Microsoft has been working with SAP on <em>Project Embrace</em> for more than a year to deliver a joint roadmap with specific integrated reference architecture to run SAP S4/HANA on Microsoft Azure. The collaboration will provide customers with prescriptive guidance that facilitates a move from their current on-premise production landscapes to a digital enterprise in the cloud.</blockquote>
<blockquote>Working hand-in-hand with SAP to make <em>Project Embrace</em> a success, Microsoft is developing an integrated, end-to-end process across product engineering, sales, marketing and support teams. As part of this effort, Microsoft and SAP are also aligning their joint Partner Ecosystem, as well as collaborating closely with the SAP Max Attention team to provide a more seamless customer support experience.</blockquote><p>Read the full report on the Microsoft blog - <a href="https://blogs.microsoft.com/blog/2019/05/09/microsoft-partners-with-sap-as-the-first-global-cloud-provider-to-launch-project-embrace/#:~:text=Microsoft%20will%20be%20the%20first%20global%20cloud%20provider,and%20accelerate%20a%20customer%E2%80%99s%20journey%20to%20the%20cloud."  ><u>https://blogs.microsoft.com/blog/2019/05/09/microsoft-partners-with-sap-as-the-first-global-cloud-provider-to-launch-project-embrace/#:~:text=Microsoft%20will%20be%20the%20first%20global%20cloud%20provider,and%20accelerate%20a%20customer%E2%80%99s%20journey%20to%20the%20cloud.</u></a> </p>
]]></content:encoded></item><item><title><![CDATA[Supply Chain Traceability - Manufacturing and the Blockchain]]></title><description><![CDATA[Understanding whether blockchain is a good fit for Supply Chain traceability from manufacture to end consumer...]]></description><link>https://www.erpgenie.com/post/supply-chain-traceability-manufacturing-and-the-blockchain</link><guid isPermaLink="false">5e8263127d38aa00177a96a5</guid><category><![CDATA[Supply Chain]]></category><category><![CDATA[IoT]]></category><category><![CDATA[Blockchain]]></category><category><![CDATA[Traceability]]></category><pubDate>Wed, 01 Apr 2020 16:28:43 GMT</pubDate><enclosure length="0" type="image/png" url="https://static.wixstatic.com/media/669b76_fbacc91f73f94745b8513a344a45cad7~mv2.jpg/v1/fit/w_1000,h_938,al_c,q_80/file.png"/><dc:creator>ERPGenie</dc:creator><content:encoded><![CDATA[<p>This blog post attempts to give perspective to some of the ideas I have heard being thrown about in the manufacturing industry for Supply Chain traceability. Too many times I've seen folks lobby for a blockchain solution when it clearly doesn't meet the criteria for a blockchain solution to add value.

A simplest of definitions: A Blockchain is a <strong>private</strong>, <strong>secure</strong>, <strong>immutable </strong>(cannot be changed), <strong>distributed ledger</strong> of <strong>transactions</strong>. It is most commonly used to store transactions between "untrusted" parties in such a way that everyone reading the blockchain agrees that these are the transactions that took place and that every transaction is valid. A key point to note here is that the transaction parties need not know each other yet the transaction is still deemed accurate by all participants in the blockchain.</p><figure><img src="https://static.wixstatic.com/media/669b76_fbacc91f73f94745b8513a344a45cad7~mv2.jpg/v1/fit/w_1000,h_938,al_c,q_80/file.png"  ></figure><p>So now let's take a look at the manufacturing industry...

According to the World Bank, manufacturing accounts for nearly 17% of the global GDP. i.e. it is an essential driver for the global economy. This industry has traditionally faced several challenges and here are but a few:</p>
<p>
- Supply Chain <strong>inefficiencies </strong>- disconnected Supply Chains </p>
<p>
- <strong>Quality Control </strong>- Fake and counterfeit products introduced in to the Supply Chain</p>
<p>
- Increasing customer <strong>demand </strong>without compromising <strong>satisfaction </strong>- right product, with the right quality, at the right place, at the right cost, with the right paperwork

A traditional Supply Chain is made up of activities covering Planning, Sourcing, Making, Delivering and Returning. These activities are executed by multiple parties involved in the extended Supply Chain and can be seen as a series of transactions between 2 parties that involves the movement of goods / product in exchange for legal tender.
 
Can the blockchain help with some of these challenges with traceability, where it makes sense? 

Remember, if we don't need a secure, immutable ledger of transactions then we don't need the blockchain... 

<strong>SUPPLY CHAIN TRACEABILITY</strong>
Can we use the blockchain to track and trace our product? What does this even mean?</p>
<p>
Let's take an example: As a manufacturer of bicycles I need to procure rubber from a manufacturer of rubber. I sign a contract with this manufacturer that sets the terms of our agreement (price, quality, quantity, …) We form a "trusted" relationship between us that is legally binding and we perform our transactions electronically via secure FTP. Why would we need a blockchain to store any transactions between these 2 entities if they are bound together legally? It, in itself, does not make for a good Blockchain use case. What about if we sell our finished product (bicycle) to a retailer for resale? Well, we would also set up a legal agreement with the retailer to sell goods to them, so, once again, we have a "trusted" relationship. </p>
<p>
<em>BUT </em>- what if the government wants the retailer to show that all the components of the bicycle are made from countries not on the "not allowed to do business with" list? How would they do this? Well, this is where the blockchain can help. A consortium blockchain, set up independently of any of the Supply Chain partners, provides access to each partner in the Supply Chain to enter their transactions (movement of goods / product) in a secure, immutable, distributed transaction. Each partner, having legal agreements with each of its direct partners, is responsible for loading those transactions to the blockchain. This would create a trusted "chain" genealogy of all transactions that make up the composition of the bicycle. </p>
<p>
<em>NOTE</em>: In today's world the information for each transaction, together with previous transactions, is passed on to the next partner in the Supply Chain. It is then their responsibility to continue to pass this information downstream. With a blockchain solution, this is no longer needed. You merely need to pass the transaction details (together with needed documentation) to the permissioned blockchain.
By reading the blockchain transactions, the authorities can ensure that the product details, entered at the time of the transaction, have not been tampered with and depict a clear and accurate view of what the bicycle is comprised of, and who the partners were that made up the components of the bicycle. </p>

<p><em>NOTE</em>: Leveraging IOT devices to capture movements of the final product can help ensure that there are no gaps in the tracking process</p>
<p>
<em>NOTE</em>: Only the final goods movement between 2 trusted parties are sent to the blockchain and not any intermediate movements. E.g. movements between the production line and warehousing.</p>
<p>
<em>NOTE</em>: An asset (bicycle) needs to be universally, uniquely identified (serialized) in order for it to be tracked properly (a digital twin) </p>
<p>
<strong><u>CLAIM</u></strong>: Blockchain <strong>IS </strong>a good use-case for end-to-end Supply Chain traceability - It can serve as a trusted source for the genealogy of all goods movements / monetary transactions between all participant for a manufactured product. 

<strong><u>CHALLENGES</u></strong> (barriers to implementation):</p>
<p>
- <strong><em>Performance</em></strong>: Volume of transactions that need to be included could be substantial. Blockchain technology has many thoughts on improving the throughput of blochchain transactions but it still remains a concern today.</p>
<p>
<strong><em>- Breaking the traceability: </em></strong>If a Supply Chain partner does not record their transaction then the "chain" is broken and the provenance of the product is ultimately undermined. All partners need to be vested in this process.</p>
<p>
<strong><em>- Proprietary information: </em></strong>Transactions and locations can be sensitive data to partners and therefore should not be shared with others. Securing this data in the blockchain is of paramount importance as well as access to this data - i.e. not a public blockchain but rather a consortium (permissioned) blockchain is needed </p>
<p>
<em><strong>- Mandate: </strong></em>If each partner is not "forced" to enter their transactions there will be some that don't... Regulations may be needed (already in place for some industries) that would enforce the capturing of these transactions to the blockchain</p>
<p>
<strong><em>- Central Authority: </em></strong>Who is going to set up and provide permissions to the blockchain? It can't be any of the Supply Chain partners. It makes sense that it be a regulatory authority but which one? Is it the US government? What about India, China, Brazil, ... Each country, where the finished goods are sold, and that require a traceable genealogy would need access to the blockchain. The forming of global industry "gate-keepers" is maybe in line but then we have a "central authority", which is against blockchain purist's beliefs, controlling the blockchain. Maybe an option for these authorities is to operate them as DAOs (Decentralized Autonomous Organization) - <a href="https://en.wikipedia.org/wiki/Decentralized_autonomous_organization" target="_blank" rel="noopener noreferrer"><u>wiki for details</u></a>.</p>

<p>The discussions and Proof of Concepts are under-way - let the debate continue!!! Please share your thoughts below.</p>]]></content:encoded></item><item><title><![CDATA[SAP S/4HANA Situation Handling - Notify users of issues]]></title><description><![CDATA[SAP Situation Handling is a neat and simple way to pro-actively alert the responsible user of a pending issue.]]></description><link>https://www.erpgenie.com/post/sap-s-4hana-situation-handling-overview</link><guid isPermaLink="false">5e2f5f05f2abf00017206565</guid><category><![CDATA[S/4HANA]]></category><category><![CDATA[Supply Chain]]></category><category><![CDATA[Products]]></category><category><![CDATA[GTT]]></category><pubDate>Tue, 28 Jan 2020 22:26:57 GMT</pubDate><enclosure length="0" type="image/png" url="https://static.wixstatic.com/media/a27d24_42509db9620a432dad4986a2ad8ad1da~mv2.jpg/v1/fit/w_1000,h_1000,al_c,q_80/file.png"/><dc:creator/><content:encoded><![CDATA[<p>Situation Handling is SAP S/4HANA functionality provided to bring certain circumstances (situations) to the attention of a relevant group of business users. This allows for the proactive notification to the needed folks for a situation that has arisen. Situations may be seen as issues or opportunities. </p>

<p>Business users  are provided the notification of a situation, together with the notification status (Open, Resolved, Obsolete, Invalid), contextual information relating to the object pertaining to the situation and lastly, any actions deemed necessary to address the situation. </p>
<p>When a user receives a situation they can see the following (based on configuration):</p><ul>
  <li>Instructions on how to proceed with the situation (situation text)</li>
  <li>Related information to the situation (URL)</li>
  <li>Link to another Fiori App (quick action)</li>
  <li>Manually set the status of the situation</li>
</ul><p>In addition to being shown as a notification in the SAP Fiori Launchpad, situations can be displayed "in-app" as in-app situation messages. </p>
<a href="https://www.youtube.com/watch?v=WFKncdE8MpI">https://www.youtube.com/watch?v=WFKncdE8MpI</a><p><em>SAP S/4HANA Situation Handling – Intelligent & Proactive User Support from the Finance Organization</em></p><h3><strong>What is a situation?</strong></h3><p>A situation could be:</p><ul>
  <li>a deadline is nearing</li>
  <li>an open task needs working</li>
  <li>a demand for a product has deviated</li>
  <li>a shift in turnover rate</li>
  <li>a threshold has been reached</li>
</ul><h3><strong>How do users view situations?</strong></h3><p>Users can view situations that have arisen, and that are applicable to them, using one of the following techniques:</p><ul>
  <li>SAP Fiori launchpad notification</li>
  <li>Email notification</li>
  <li>For specific apps - in-app Situation Management message</li>
  <li>My Situations App: <a href="https://fioriappslibrary.hana.ondemand.com/sap/fix/externalViewer/#/detail/Apps('F4154')/S15OP" target="_blank" rel="noopener"><u>App</u></a></li>
</ul><h3><strong>Components of Situation Handling</strong></h3><figure><img src="https://static.wixstatic.com/media/a6beaa_b821afc14fcf4cefb49c1c0be84e3940~mv2.png/v1/fit/w_1000,h_688,al_c,q_80/file.png" title="Situation Handling Components" alt="Situation Handling Components"></figure><ol>
  <li>Manage Teams and Responsibilities App: <a href="https://fioriappslibrary.hana.ondemand.com/sap/fix/externalViewer/#/detail/Apps('F2412')/S15OP" target="_blank" rel="noopener"><u>App</u></a> - <a href="https://help.sap.com/viewer/8308e6d301d54584a33cd04a9861bc52/1909.000/en-US/73c04858392e9244e10000000a4450e5.html" target="_blank" rel="noopener"><u>Help</u></a></li>
  <li>Manage Situation Type App: <a href="https://fioriappslibrary.hana.ondemand.com/sap/fix/externalViewer/#/detail/Apps('F2947')/S15OP" target="_blank" rel="noopener"><u>App</u></a> - <a href="https://help.sap.com/viewer/8308e6d301d54584a33cd04a9861bc52/1909.000/en-US/60748ea9f37d4692912578b698aaefee.html" target="_blank" rel="noopener"><u>Help</u></a></li>
  <li>Monitor Situations App: <a href="https://fioriappslibrary.hana.ondemand.com/sap/fix/externalViewer/#/detail/Apps('F3264')/S15OP" target="_blank" rel="noopener"><u>App</u></a> - <a href="https://help.sap.com/viewer/8308e6d301d54584a33cd04a9861bc52/1909.000/en-US/1bfaf5c220304709bffa5e05502dbe97.html" target="_blank" rel="noopener"><u>Help</u></a></li>
  <li>My Situations App: <a href="https://fioriappslibrary.hana.ondemand.com/sap/fix/externalViewer/#/detail/Apps('F4154')/S15OP" target="_blank" rel="noopener"><u>App</u></a></li>
  <li>Reuse Library for Situation Handling: <a href="https://fioriappslibrary.hana.ondemand.com/sap/fix/externalViewer/#/detail/Apps('F3201')/S15OP" target="_blank" rel="noopener"><u>Link</u></a></li>
  <li>Manage Date Functions App: <a href="https://fioriappslibrary.hana.ondemand.com/sap/fix/externalViewer/#/detail/Apps('F2595')/S15OP" target="_blank" rel="noopener"><u>App </u></a></li>
</ol><h3><strong>Configure Situation Handing</strong></h3><p>Business Configuration Experts can leverage the "<strong>Manage Situation Types</strong>" Fiori app to modify situation messages and recipients. </p><ul>
  <li>Manage Situation Type App: <a href="https://fioriappslibrary.hana.ondemand.com/sap/fix/externalViewer/#/detail/Apps('F2947')/S15OP" target="_blank" rel="noopener"><u>App</u></a> - <a href="https://help.sap.com/viewer/8308e6d301d54584a33cd04a9861bc52/1909.000/en-US/60748ea9f37d4692912578b698aaefee.html" target="_blank" rel="noopener"><u>Help</u></a></li>
</ul><p>Use the "<strong>Manage Teams and Responsibilities</strong>" Fiori app to define which recipients are going to receive situation notifications. Pre-defined rules may also be leveraged to determine recipients of notifications. </p><ul>
  <li>Manage Teams and Responsibilities App: <a href="https://fioriappslibrary.hana.ondemand.com/sap/fix/externalViewer/#/detail/Apps('F2412')/S15OP" target="_blank" rel="noopener"><u>App</u></a></li>
</ul><p>Enable the required <strong>Notification provider</strong> before notifications can be leveraged.</p><ul>
  <li><em>IMG activity</em>: SAP NetWeaver -> Notification Channel -> Notification Channel Provider Enablement -> Administration -> Notification Provider Settings -> Manage Notification Providers</li>
  <li>Enter notification provider ID: SIT_NOTIF_PROV_EXT and activate</li>
</ul><h3><strong>Operational considerations</strong></h3><p>SAP has provided a "<strong>Monitor Situations</strong>" Fiori app to monitor the status of existing instances of situations. Business Process Experts, managers or process owners would be the ones needing to monitor the status of open situations.</p><ul>
  <li>Monitor Situations App: <a href="https://fioriappslibrary.hana.ondemand.com/sap/fix/externalViewer/#/detail/Apps('F3264')/S15OP" target="_blank" rel="noopener"><u>App</u></a> - <a href="https://help.sap.com/viewer/8308e6d301d54584a33cd04a9861bc52/1909.000/en-US/1bfaf5c220304709bffa5e05502dbe97.html" target="_blank" rel="noopener"><u>Help</u></a></li>
</ul><p><strong>2 jobs are needed</strong> to update and delete situation instance data (transaction SJOBREPO):</p><ul>
  <li>SIT_TECH_JOB_BATCH_DAILY - Trigger batch-based events</li>
  <li>SIT_TECH_JOB_CLEAN_SIT_DATA (weekly run) - deletes situations that are no longer valid</li>
</ul><p>You can extract all the contextual details of the situation using the SAP standard API: <strong>API_BUSINESS_SITUATION_SRV</strong> (Business Situation - Read). Note: "Monitor Instances" needs to be enabled before this data is available. This API is implemented as a synchronous inbound odata web service. This data would then be intended to be used for further analytics.</p><ul>
  <li>See Web service details - <a href="https://help.sap.com/viewer/8308e6d301d54584a33cd04a9861bc52/1909.000/en-US/e31831d5c0934e34a982039cfd389211.html" target="_blank" rel="noopener"><u>Documentation</u></a></li>
</ul>
<h3><strong>Situation Templates</strong></h3><p>SAP delivers situation templates that Business Configuration Experts can adopt and deploy using the "<strong>Manage Situation Types</strong>" Fiori app. It pre-defines a particular business situation. i.e. Not all situations are available to track. For each implementation, make a copy of the standard SAP template and adapt it according to your business needs. NB: You can change the text used in the situation notifications but you cannot change the underlying data available in the situation template.</p>

<p>SAP planned for 31 situation templates in SAP S/4HANA Cloud 1911</p>

<p><u><em>12 Example templates:</em></u></p><ol>
  <li><strong>Errors and Warnings in Allocation Runs</strong> - informs Overhead Accountants of an allocation run that has completed and of any warnings / errors that were generated in the run (<a href="https://help.sap.com/viewer/c56f622a2edf491b9f1b596b55587009/1911.500/en-US/e929d26943b34cc889681e8f9eaadc77.html" target="_blank" rel="noopener"><u>Help</u></a>)</li>
  <li><strong>Check House Bank Account in Payment Configuration</strong> - informs the needed users that a house back a/c is being used yet it is closed (<a href="https://help.sap.com/viewer/186460fdc35a4b64a713da9bb00deb1e/LATEST/en-US/f248dcdb92a646929a0c992aab8f05b3.html" target="_blank" rel="noopener"><u>Help</u></a>)</li>
  <li><strong>GR/IR clearing processor was changed </strong>- clarify differences between quantities or amounts between deliveries / invoices of a purchasing document item (<a href="https://help.sap.com/viewer/0fa84c9d9c634132b7c4abb9ffdd8f06/LATEST/en-US/d08117808e5c414d90c657db0ea49a77.html" target="_blank" rel="noopener"><u>Help</u></a>)</li>
  <li><strong>Invoice Skipped in Payment Advice</strong> - an invoice (with a significant value) was not included in a payment advice run (<a href="https://help.sap.com/viewer/918bca53037f408f91a2295d04ac16bc/LATEST/en-US/f8be445fba48434e98219855fa87596c.html?q=situation" target="_blank" rel="noopener"><u>Help</u></a>)</li>
  <li><strong>MRP Material Exceptions</strong> - E.g. No requirements for a receipt element exist. The planned available stock exceeds the maximum stock. The actual stock and the receipt elements exceed the requirements. (<a href="https://rapid.sap.com/bp/#/browse/scopeitems/J44" target="_blank" rel="noopener"><u>Scope Item J44</u></a>) With these situations the MRP controller would navigate to the "<a href="https://fioriappslibrary.hana.ondemand.com/sap/fix/externalViewer/#/detail/Apps('F0251')/S15OP" target="_blank" rel="noopener"><u>Manage Material Coverage</u></a>" app to modify orders</li>
  <li><strong>Stock Transport Order Overdue</strong> (<a href="https://help.sap.com/viewer/32da8359c8ee4e8b8e8c5e15cacba5aa/LATEST/en-US/9169d427cba44c8e8bd9490d005d2b9f.html" target="_blank" rel="noopener"><u>Help</u></a>)</li>
  <li><strong>Quantity Deficit in Supplier‘s Delivery</strong> - Triggered if receiving quantity is less than the confirmed quantity. Notification is sent to the applicable buyer. (<a href="https://rapid.sap.com/bp/#/browse/scopeitems/2TX" target="_blank" rel="noopener"><u>Scope Item 2TX</u></a>)</li>
  <li><strong>Sales Quotation Is Close to Expiring</strong> (<a href="https://help.sap.com/viewer/a630d57fc5004c6383e7a81efee7a8bb/LATEST/en-US/54cd72be18c64683af462c4fc0d55662.html" target="_blank" rel="noopener"><u>Help</u></a>)</li>
  <li><strong>Cash Discount at Risk </strong>- If a supplier invoice is blocked for payment and the terms are nearing (<a href="https://rapid.sap.com/bp/#/browse/scopeitems/2TX" target="_blank" rel="noopener"><u>Scope Item 2TX</u></a>) - Also see "<strong>Due Date Reach Soon</strong>" (<a href="https://rapid.sap.com/bp/#/browse/scopeitems/J13" target="_blank" rel="noopener"><u>Scope Item J13</u></a><u>)</u></li>
  <li><strong>Low Number of Quotations Received </strong>- The deadline for an RFQ is fast approaching and we haven't reached the minimum threshold for submissions (<a href="https://help.sap.com/viewer/a630d57fc5004c6383e7a81efee7a8bb/LATEST/en-US/2c87cc850674448290923c2092b72436.html" target="_blank" rel="noopener"><u>Help</u></a>)</li>
  <li><strong>Output Item Processing Error </strong>- a daily check on processed output is performed - any errors trigger a corresponding situation. This is equivalent to checking for NAST errors in traditional R/3. (<a href="https://rapid.sap.com/bp/#/browse/scopeitems/1LQ" target="_blank" rel="noopener"><u>Scope Item 1LQ</u></a>)</li>
  <li><strong>Unavailable Team Member in Resp. Mgmt </strong>- Inform a user's manager that a user responsible for a task is unavailable (<a href="https://rapid.sap.com/bp/#/browse/scopeitems/1NT" target="_blank" rel="noopener"><u>Scope Item 1NT</u></a>)</li>
</ol><h3><strong>SAP Best Practices</strong></h3><p>The following scope items in the SAP Best Practices Explorer are using this app - SAP Best Practices Explorer - Situation Handling <a href="https://rapid.sap.com/bp/scopeitems/31N" target="_blank" rel="noopener"><u>Scope item 31N</u></a><u>:</u></p><ul>
  <li><a href="https://rapid.sap.com/bp/scopeitems/J59" target="_top" rel="noopener">Accounts Receivable (J59)</a></li>
  <li><a href="https://rapid.sap.com/bp/scopeitems/J77" target="_top" rel="noopener">Advanced Bank Account Management (J77)</a></li>
  <li><a href="https://rapid.sap.com/bp/scopeitems/2ME" target="_top" rel="noopener">Central Purchase Contracts (2ME)</a></li>
  <li><a href="https://rapid.sap.com/bp/scopeitems/2TX" target="_top" rel="noopener">Direct Procurement with Inbound Delivery (2TX)</a></li>
  <li><a href="https://rapid.sap.com/bp/scopeitems/J45" target="_top" rel="noopener">Procurement of Direct Materials (J45)</a></li>
  <li><a href="https://rapid.sap.com/bp/scopeitems/2XW" target="_top" rel="noopener">Proposal of New Catalog Item (2XW)</a></li>
  <li><a href="https://rapid.sap.com/bp/scopeitems/BMD" target="_top" rel="noopener">Purchase Contract (BMD)</a></li>
  <li><a href="https://rapid.sap.com/bp/scopeitems/18J" target="_top" rel="noopener">Requisitioning (18J)</a></li>
</ul><h3><strong>Conclusion</strong></h3><p>In conclusion, SAP Situation Handling is a neat and simple way to pro-actively alert the responsible user of a pending issue. It combines text on how the user needs to proceed to correct the situation (i.e. you can build in to your process your previous knowledge and learnings of how to correct issues). You can also direct users on the actions they need to perform and also link to any needed additional info to help them make quality decisions in resolving the situation. </p>

<p>On the downside, I see that this functionality is created and published by SAP and is not available for objects of our choosing. As time goes, more and more scenarios will be enabled but it would be nice to allow customers and partners to create and deploy their own custom templates. </p>

<p>In general this functionality is a great add-on to helping to smooth out the discrepancies in your Supply Chain. With the ever-increasing need to collapse the Supply Chain cycle time, organizations have to react quickly to deviations (or situations) that could disrupt your on-time delivery promise to your customer... This functionality goes a long way towards providing you this capability. <a href="https://www.erpgenie.com/sap-global-track-and-trace" target="_top" rel="noopener"><u>SAP Global Track and Trace</u></a> is another complimentary piece of functionality looking at filling in this space.</p>

<p>Let me know if you have any additional questions of comments on SAP Situation Handling.</p>]]></content:encoded></item><item><title><![CDATA[Tools used for migrating to SAP S/4HANA on-prem edition]]></title><description><![CDATA[Various system conversion tools are offered to help with your migration to SAP S/4HANA on-premise edition 1511]]></description><link>https://www.erpgenie.com/post/tools-used-for-migrating-to-sap-s-4hana-on-prem-edition</link><guid isPermaLink="false">5e1f3b726106f60017918144</guid><category><![CDATA[S/4HANA]]></category><category><![CDATA[Tips]]></category><category><![CDATA[Migration]]></category><pubDate>Thu, 16 Jan 2020 07:42:01 GMT</pubDate><enclosure length="0" type="image/png" url="https://static.wixstatic.com/media/a6beaa_0641dc7e5a95494a815b9a415d660b3a~mv2.jpg/v1/fit/w_1000,h_1000,al_c,q_80/file.png"/><dc:creator/><content:encoded><![CDATA[<p>Various system conversion tools are offered  to help with your migration to SAP S/4HANA on-premise edition 1511. The tools are split in to 2 categories, namely technical tasks and adoption tasks. These are covered seperately and in detail below.</p>
<h3>TECHNICAL TASKS - Lifecycle management tools</h3><ul>
  <li><strong>Maintenance Planner </strong>- checks the system with regards to business functions, industry solutions, and add-ons.  If there is no valid path for the conversion it prevents the conversion. (View <a href="http://help.sap.com/maintenanceplanner" target="_blank" rel="noopener"><u>SAP Help</u></a> for more details)</li>
  <li><strong>Software Update Manager</strong> (SUM) - is a technical tool for system conversion to on-premise SAP S/4HANA, applying support packages / stacks, implementing Enhancement Packages and applying new releases - The Maintenance Planner must be run before SUM. (<a href="https://support.sap.com/en/tools/software-logistics-tools/software-update-manager.html" target="_blank" rel="noopener"><u>View details here</u></a>)</li>
</ul><p>2 versions are currently available (<a href="http://support.sap.com/sltoolset" target="_blank" rel="noopener"><u>SAP Support</u></a> -> "System Maintenance") :
a) <em>Software Update Manager 1.0 SP 24</em> -  <a href="https://launchpad.support.sap.com/#/notes/2690361" target="_blank" rel="noopener noreferrer">SAP Note 2690361</a>- (<a href="https://help.sap.com/viewer/c4ebc2b5d928446180d9ad2667f11faa/1.0/en-US/1953fc1a7abc407ea1cd6f828f16583b.html" target="_blank" rel="noopener noreferrer">Guides</a>)
    - DMO with SUM:  <a href="https://launchpad.support.sap.com/#/notes/2743782" target="_blank" rel="noopener noreferrer">SAP Note 2743782</a> - (<a href="https://help.sap.com/viewer/c4ebc2b5d928446180d9ad2667f11faa/1.0/en-US/8b1d697dac2c4e92a62e8dd492f49ccc.html" target="_blank" rel="noopener noreferrer">Guides</a>)  
b) <em>Software Update Manager 2.0 SP 06</em> -  <a href="https://launchpad.support.sap.com/#/notes/2742706" target="_blank" rel="noopener noreferrer">SAP Note 2742706</a> - (<a href="https://help.sap.com/viewer/c4ebc2b5d928446180d9ad2667f11faa/1.0/en-US/a151c8571e0c46b0a4098eda8d34303a.html" target="_blank" rel="noopener noreferrer">Guides</a>), (<a href="https://blogs.sap.com/2017/08/10/sum-in-the-family-way/" target="_blank" rel="noopener"><u>Blog</u></a>)
    - DMO with SUM: <a href="https://launchpad.support.sap.com/#/notes/2798588" target="_blank" rel="noopener noreferrer">SAP Note 2798588</a> - (<a href="https://help.sap.com/viewer/c4ebc2b5d928446180d9ad2667f11faa/1.0/en-US/404d4617367948f0be1c41ec2254ae37.html" target="_blank" rel="noopener noreferrer">Guides</a>)
    - System Conversion: <a href="https://launchpad.support.sap.com/#/notes/2798643" target="_blank" rel="noopener noreferrer">SAP Note 2798643</a> - (<a href="https://help.sap.com/viewer/c4ebc2b5d928446180d9ad2667f11faa/1.0/en-US/6ce1b4a6de244606bdddcfb101e55f75.html" target="_blank" rel="noopener noreferrer">Guides</a>)</p><ul>
  <li><strong>Database Migration Option</strong> (DMO) - is a one-step-migration to SAP HANA database for SAP systems. It brings together the installation of the SAP S/4HANA, on-premise software and database migration to SAP HANA. (See <a href="https://blogs.sap.com/2013/11/29/database-migration-option-dmo-of-sum-introduction/" target="_blank" rel="noopener"><u>intro to DMO blog</u></a>, <a href="https://blogs.sap.com/?p=96067" target="_blank" rel="noopener"><u>Overview Video</u></a>)</li>
</ul><figure><img src="https://static.wixstatic.com/media/a6beaa_0641dc7e5a95494a815b9a415d660b3a~mv2.jpg/v1/fit/w_1000,h_1000,al_c,q_80/file.png"  ></figure><h3>ADOPTIONTASKS</h3><ul>
  <li><strong>Simplification List</strong> (<a href="https://help.sap.com/doc/PRODUCTION/pdfa4322f56824ae221e10000000a4450e5/1511%20002/en-US/SIMPL_OP1511_FPS02.pdf" target="_blank" rel="noopener"><u>download here</u></a>) - Allows for better planning and estimation of your path to SAP S/4HANA - Provides functional-level descriptions of the required changes to transactions and solution capabilities in SAP S/4HANA. </li>
  <li><strong>Conversion Pre-Checks</strong> - are shipped as SAP Notes to the customer and allows customers to find out what mandatory steps they have to carry out before converting to S/4HANA.  Customers must implement <a href="https://launchpad.support.sap.com/#/notes/2182725" target="_blank" rel="noopener"><u>SAP Note 2182725</u></a>, and all the related notes attached to it. Run report R_S4_PRE_TRANSITION_CHECKS on every system that you want to convert to SAP S/4HANA, on-premise edition 1511. </li>
  <li><strong>Custom Code Migration Worklist</strong> -  These are based on the Simplification list concept. Before converting you will need to check your custom code against the SAP S/4HANA simplifications. These simplifications are loaded into the Custom Code Check Tool and, after running the tool, you obtain a list of instances where your custom code does not comply with the scope and data structure of SAP S/4HANA 1511, on-premise edition. (View <a href="http://help.sap.com/saphelp_nw75/helpdata/en/0b/b83ef76fbf46c89fd9fa5f3af8c0c6/content.htm?frameset=/en/0b/b83ef76fbf46c89fd9fa5f3af8c0c6/frameset.htm&#38;current_toc=/en/d1/802cfc454211d189710000e8322d00/plain.htm&#38;node_id=5&#38;show_children=false"  >SAP Help</a>, <a href="http://scn.sap.com/docs/DOC-70417"  >Blog</a>)</li>
</ul><h3><strong><u>Dedicated Blogs on Simplification Items</u></strong></h3><p> </p><h3>Master Data</h3><ul>
  <li>Business Partner Approach / Customer-Vendor Integration (CVI) - <a href="http://scn.sap.com/community/s4hana/blog/2016/04/29/simplification-item-business-partner-approach-customer-vendor-integration-cvi"  >Link</a></li>
  <li>Material Field Length Extension - <a href="http://scn.sap.com/community/s4hana/blog/2016/05/19/simplification-item-material-field-length-extension"  >Link</a></li>
</ul>
<h3>Sales & Distribution</h3><ul>
  <li>Data Model Changes in SD Pricing - <a href="http://scn.sap.com/community/s4hana/blog/2016/05/19/simplification-item-simplified-data-model-in-pricing-and-condition-technique"  >Link</a></li>
  <li>Rebate Management Replaced by Condition Contract Settlement - <a href="http://scn.sap.com/community/s4hana/blog/2016/08/26/simplification-item-rebate-management-replaced-by-condition-contract-settlement"  >Link</a></li>
  <li>Credit Management - <a href="http://scn.sap.com/community/s4hana/blog/2016/05/19/simplification-item-sd-fin-credit-management"  >Link</a></li>
</ul>
<h3>PLM</h3><ul>
  <li>PLM Enterprise Search - <a href="http://scn.sap.com/community/s4hana/blog/2016/05/25/simplification-item-plm-enterprise-search"  >Link</a></li>
  <li>Easy Document Management (Easy DMS) - <a href="http://scn.sap.com/community/s4hana/blog/2016/06/06/simplification-item-plm--easy-document-management"  >Link</a></li>
  <li>BOM, Routing, Production Version - <a href="http://scn.sap.com/community/s4hana/blog/2016/06/06/simplification-item-bom-routing-production-version-simplification"  >Link</a></li>
</ul>
<h3>PP</h3><ul>
  <li>PP-MRP - Subcontracting - <a href="http://scn.sap.com/community/s4hana/blog/2016/05/18/simplification-item-subcontracting-in-mrp"  >Link</a></li>
  <li>Storage Location MRP - <a href="http://scn.sap.com/community/s4hana/blog/2016/05/18/simplification-item-storage-location-mrp"  >Link</a></li>
  <li>Simplified Sourcing - <a href="http://scn.sap.com/community/s4hana/blog/2016/05/17/simplification-item-pp--simplified-sourcing"  >Link</a></li>
</ul>
<h3>Financials</h3><ul>
  <li>Technical Changes in Controlling - <a href="http://scn.sap.com/community/s4hana/blog/2016/06/06/simplification-item-technical-change-in-controlling"  >Link</a></li>
  <li>Credit Management - <a href="http://scn.sap.com/community/s4hana/blog/2016/05/19/simplification-item-sd-fin-credit-management"  >Link</a></li>
</ul>
<h3>Cross Topics</h3><ul>
  <li>Output Management - <a href="http://scn.sap.com/community/s4hana/blog/2016/05/11/simplification-item-output-management"  >Link</a></li>
</ul>]]></content:encoded></item><item><title><![CDATA[Business Context Viewer (BCV) overview]]></title><description><![CDATA[The BCV is a framework that enables SAP applications to integrate various types of information into the context of their application]]></description><link>https://www.erpgenie.com/post/business-context-viewer-bcv-overview</link><guid isPermaLink="false">5e17ac0d17f3610017280ec5</guid><category><![CDATA[S/4HANA]]></category><category><![CDATA[Development]]></category><category><![CDATA[Analytics]]></category><pubDate>Mon, 13 Jan 2020 11:20:57 GMT</pubDate><enclosure length="0" type="image/png" url="https://static.wixstatic.com/media/a6beaa_66bdc82a72884b87b05ce3a9c9fa49d3~mv2_d_3072_2048_s_2.jpg/v1/fit/w_1000,h_1000,al_c,q_80/file.png"/><dc:creator/><content:encoded><![CDATA[<p>The BCV is a framework that enables SAP Business Suite applications to integrate various types of extra information into the context of their current application.  BCV appears in the side panel of your application. The side panel is the starting point for analyzing your business data using BCV.</p>

<p>Various components are needed to enable BCV:</p><ul>
  <li><strong>Configuration Center </strong>- Central point of entry for BCV Configuration and Administration</li>
  <li><strong>BCV Configuration</strong> - You can configure BCV only if the following applies: You have activated the <strong>FND, Business Context Viewer Main Application</strong> (/BCV/MAIN) business function. Secondly, that you have the necessary authorizations (Role:  SAP_BCV_ADMIN ). On the SAP NetWeaver portal you have the role  com.sap.pct.bs_fnd.BCV_ADMIN .</li>
  <li><strong>Data Providers</strong> and <strong>Data Provision Technologies</strong> - Closely tied to Search Connectors. E.g. Searching through Workflows would use Search Connector "WF search connector" (Data Provision Technology: "Workflow") to search data from the Data Provider "Workflow Object Type".</li>
</ul><h3><em>BCV Objects</em></h3><ul>
  <li><strong>Search Connectors</strong> - establishes the connection between the data provision technology and the BCV by providing search access to a specific data provider at a specific destination (logical system) or list of destinations. </li>
  <li><strong>BCV Queries</strong> - Anaytical tool that collects data from Data Providers (multiple) -> Pass this data to the UI in the form of a query view.  
The system processes queries every time you perform one of the following actions:</li>
</ul><ol>
  <li>Opening the side panel</li>
  <li>Changing the focus object in the hosting application</li>
  <li>Enlarging a quick view from the side panel</li>
  <li>Starting a query view or dashboard from the side panel</li>
  <li>Changing the input data of a query view</li>
  <li>Performing a drill-down on a query view</li>
  <li>Testing a query, query view, or dashboard</li>
</ol><ul>
  <li><strong>Query View</strong> - format of the query result to present to the user - e.g. list, chart, form</li>
  <li><strong>BCV Dashboard</strong> - used to display several Query Views to "tell a story" / visualize a problem or opportunity</li>
  <li><strong>Overview </strong>- list of query views displayed in the side panel </li>
  <li><strong>Query view hierarchy</strong> - links Query View in a hierarchy</li>
  <li><strong>Meanings </strong>- Meanings describe the content of a field of a search connector, query, and query view</li>
  <li><strong>User Group </strong>- groups that can be used in access control lists </li>
  <li><strong>Access Control Lists</strong> (ACL) - assign authorization to perform specific activities on objects in BCV to users, user groups, roles, or organizational units. An advantage of using access control lists (ACL ) is that they provide a flexible authorization framework. There is no need for a central administrator to grant and deny authorizations - users can do this themselves. </li>
  <li><strong>Launchpad </strong>- </li>
</ul><h3><em>User Interface</em></h3><ul>
  <li><strong>User Interface </strong>(UI) - BCV leverages ABAP Web Dynpro UI - Note: Side Panel - provides additional context-sensitive analytic and supplementary information to the main application</li>
</ul>]]></content:encoded></item><item><title><![CDATA[S/4 HANA SAP Application Link Enabling (ALE), IDocs mapped to EDI]]></title><description><![CDATA[ALE is a standard integration service that enables business processes developed and deployed across several separate SAP or non-SAP systems]]></description><link>https://www.erpgenie.com/post/s-4-hana-sap-application-link-enabling-ale-idocs-mapped-to-edi</link><guid isPermaLink="false">5e178219c65a0300177aef33</guid><category><![CDATA[EDI]]></category><category><![CDATA[Tips]]></category><category><![CDATA[Development]]></category><category><![CDATA[Supply Chain]]></category><category><![CDATA[Data]]></category><category><![CDATA[S/4HANA]]></category><pubDate>Fri, 10 Jan 2020 12:39:02 GMT</pubDate><enclosure length="0" type="image/png" url="https://static.wixstatic.com/media/669b76_695710361ef2488f83318f1f5e11db27~mv2_d_5399_3599_s_4_2.jpg/v1/fit/w_1000,h_1000,al_c,q_80/file.png"/><dc:creator/><content:encoded><![CDATA[<p>ALE is a standard integration service that enables business processes developed and deployed across several separate SAP or non-SAP systems to be integrated.</p>

<p>Master Data records and Transaction Data are able to be distributed. You would leverage master data distribution to allow for the central control of certain master data attributes. E.g. The material master number and description can be maintained by the corporate master data team and distributed to all downstream systems that could then extended to included their plant specific data.</p>
<h2><strong>S/4HANA ALE enabled master data</strong></h2><ol>
  <li>Change numbers (IDoc: ECMMAS)</li>
  <li><a href="https://help.sap.com/viewer/9905622a5c1f49ba84e9076fc83a9c2c/1909.000/en-US/042fc153d01cb64ce10000000a174cb4.html" target="_blank" rel="noopener"><u>Article master</u></a> record (IDoc: ARTMAS, BO:  BUS1001001)</li>
  <li>User master record - CUA - Central user administration (IDoc: USERCLONE)</li>
  <li><a href="https://help.sap.com/viewer/af9ef57f504840d2b81be8667206d485/1909.000/en-US/487fb65334e6b54ce10000000a174cb4.html" target="_blank" rel="noopener"><u>Purchasing info record</u></a> (PIR) (IDoc: INFREC)</li>
  <li>Classification (IDoc: CLFMAS)</li>
  <li>Class (IDoc: CLSMAS)</li>
  <li>Characteristics (IDoc: CHRMAS)</li>
  <li>Conditions (IDoc: COND_A)</li>
  <li>Cost center (IDoc: COSMAS)</li>
  <li>Cost center group (IDoc: COGRP)</li>
  <li>Cost element group (IDoc:  COGRP2)</li>
  <li>Cost element (IDoc: COELEM)</li>
  <li>Customer master record</li>
  <li>Activity type (IDoc: COAMAS)</li>
  <li>Activity master record</li>
  <li>Activity type group (IDoc: COGRP5)</li>
  <li>Vendor master record (IDoc: CREMAS)</li>
  <li>Material master record (IDoc: MATMAS)</li>
  <li>Address Master (IDoc: ADRMAS)</li>
  <li>Unit of measure for cost center and cost element combination (Doc: COCOKA )</li>
  <li>Source list (IDoc: SRCLST)</li>
  <li>Human Resources: HR Master Data, Organizational Data (IDoc: HRMD_A)</li>
  <li>Profit center (IDoc: PRCMAS)</li>
  <li>G/L account (IDoc: GLMAST)</li>
  <li>Bill of material (materials and documents) (IDoc: BOMMAT)</li>
  <li>Activity price of cost center and cost element combination (IDoc: COACTV)</li>
  <li>Value scale and quota scale</li>
</ol><figure><img src="https://static.wixstatic.com/media/a6beaa_bd4e0abbb702448ba891cc08ad80540a~mv2_d_6016_4044_s_4_2.jpg/v1/fit/w_1000,h_1000,al_c,q_80/file.png"  ></figure><h3><strong>S/4HANA ALE enabled cross-application processes</strong></h3><ol>
  <li><strong>Bank Distribution</strong> - bank data and associated organizational addresses</li>
  <li><strong>Central User Administration</strong> (CUA) - maintain user master records centrally in one system and CUA distributes changes automatically to the child systems</li>
  <li><strong>Integrated Distributed Product Development Management</strong> (PDM) Solution -  All master data from PDM environment, for example, materials, BOMs, document, change master record, or class, can all be distributed to other systems via ALE standard functions </li>
  <li><strong>Document Management System</strong> (DMS) - DOCMAS is used to link the document to the object in the DMS. ECMMAS is used to update the change master record in the DMS.</li>
  <li><strong>Configuration Data  Variant config</strong>: Use IDocs CHRMAS (Characteristic), CLFMAS (Classification), CLSMAS (Class) as well as VTAMAS (Variant Table Structure), VTMMAS (Variant Table Contents), VFNMAS( Variant Functions), KNOMAS (Object Dependencies, Constraints), DEPNET (Constraint Nets), CNPMAS (Configuration Profiles), MATAMS (Material Variant)</li>
  <li><strong>Work Break-down structures and Internal Order </strong>(IDoc: INTERNAL_ORDER)</li>
  <li><strong>Cross-System Planning Situation </strong>- wish to evaluate the planning for a material on a cross-system basis.  The evaluation shows the planning situation based on the data in the stock/requirements lists in the systems involved. </li>
  <li><strong>Sales and Operations Planning</strong> - covers various activities including the specification of medium term and long term sales volumes and the approximate planning of the production activities that are required to meet these volumes. In the ALE distribution scenario for SOP there is both a central planning system and decentral systems that can also perform planning tasks</li>
  <li><strong>SAP Retail Space Management Interface</strong> - You can use this ALE Business Process in the following variants: Variant 1: Space Management for Information Only, Variant 2: New Placement for an Article, Variant 3: Moving an Article to a New Location, Variant 4: Manual Shelf Space Maintenance, Variant 5: Discontinuing an Article</li>
  <li><a href="https://help.sap.com/viewer/61af834e09164854993e81aa39be576d/1909.000/en-US/9328bd534f22b44ce10000000a174cb4.html" target="_blank" rel="noopener"><u><strong>Interface Between the WMS and External Systems</strong></u></a><strong> </strong>- connect Automated warehouse systems, Fork lift control systems or carousels, Decentralized warehouse management systems</li>
  <li><strong>Separate Sales and Shipping </strong>- based on the business process "Stock Transfer between Distributed Systems". The idea of it is that several decentral operating sales units initiate sales orders directly at a central shipping point</li>
  <li><strong>Distribution of Contracts</strong> - Contracts negotiated by a central purchasing organization are distributed to local purchasing organizations to allow the latter to utilize the more favorable conditions they contain for the procurement of materials or external services. Each local purchasing organization sends information on its own release orders back to the central purchasing organization.</li>
  <li><strong>Stock Transfer Between Distributed Systems</strong> - SAP Systems can obtain goods from other SAP systems through Purchasing. The latter SAP systems sell the goods to Purchasing.</li>
  <li><strong>Decentralized Warehouse Management</strong> - describes the SAP Warehouse Management System (WMS) as a decentralized stand-alone system that is operated separately from a centrally operated S/4HANA (Enterprise Resource Planning) system.</li>
  <li><strong>Quality Management</strong> - Leverages ALE to distribute Master Inspection Characteristics, Inspection Methods, Codes Groups, Codes, and Inspection Setup</li>
  <li><strong>Central Accounting, Decentral Logistics </strong>- Central financial and cost accounting, decentralized inventory management, purchasing, sales, plant maintenance, production</li>
  <li><strong>Decentral Accounting, Central Logistics </strong>- E.g. Global sales but decentral financial accounting for each SAP system (1 per country as an example)</li>
  <li><strong>Several Accounting Systems - Several SAP Logistics Systems</strong></li>
  <li><strong>Information Flow to the Accounting Department</strong> - Uses IDocs FIROLL, FIDCCH, FIDCMT</li>
  <li><strong>Data Transfer Between Accounting and Logistics</strong> - Each logistics application calls the accounting interface with the relevant data. The accounting document is checked there, completed, and then forwarded to the various accounting applications for further processing.</li>
  <li><strong>HR Org. Model </strong>- IDoc: HRMD_A</li>
  <li><strong>Logistics Information Systems</strong> - This scenario supports the distribution of actual data between information systems in logistics. Process-related data exchange: This means that each document is sent individually to the interested systems.The complete information relating to the document posting is contained in the data – thus in the central system it is possible to define how this data has to be updated and analyzed. Accumulative data exchange: This means that the information is summarized and is transported with the help of information structures. There is no direct access to individual documents in the receiving system.</li>
</ol><figure><img src="https://static.wixstatic.com/media/669b76_fd6a074f90024d12b3fe1499cad0d17d~mv2.png/v1/fit/w_1000,h_1000,al_c,q_80/file.png" title="EDI PTP Process" ></figure><p><strong>EDI mapping to IDocs</strong></p><ol>
  <li>Shipment (IDoc: SHPMNT, EDI X12 204, 856)</li>
  <li>Transportation Status (IDoc: TRXSTA, EDI X12 214)</li>
  <li>Shipping Order (IDoc: SHPORD, EDI X12 940)</li>
  <li>Shipping Confirmation (IDoc: SHPCON, EDI X12 945)</li>
  <li>Warehouse Order (IDoc: WHSORD, EDI X12 940)</li>
  <li>Stock Confirmation (IDoc: WHSCON, EDI X12 945)</li>
  <li>Invoice (IDoc: INVOIC, EDI X12 810, 880)</li>
  <li>Delivery (IDoc: DESADV EDI X12 856)</li>
  <li>Order (IDoc: ORDERS EDI X12 850)</li>
  <li>Order Change (IDoc: ORDCHG EDI X12 860)</li>
  <li>Order Confirmation (IDoc: ORDRSP, EDI X12 855)</li>
  <li>Order Change Confirmation (IDoc: ORDRSP, EDI X12 865)</li>
  <li>Quote Request (IDoc: REQOTE, EDI X12 840)</li>
  <li>Quote (IDoc: QUOTES, EDI X12 843)</li>
  <li>Stock and Sale Data (IDoc: PROACT, EDI X12 852)</li>
  <li>Credit or Debit Advice (IDoc: CREADV, DEBADV, EDI X12 812)</li>
  <li>Payment Order (IDoc: PAYEXT, EDI X12 820)</li>
  <li>Credit Advice Evaluated Receipt Settlement (IDoc: GSVERF, EDI X12 861)</li>
  <li>Lock Box (IDoc: LOCKBX, EDI X12 823)</li>
  <li>Delivery Schedule - Scheduling Agreements (IDoc: DELINS, DELFOR, EDI X12 830, 862)</li>
  <li>Pricing Catalog (IDoc: PRICAT, EDI X12 832)</li>
  <li>Benefit Enrollment and Maintenance (IDoc: BENREP, EDI X12 834)</li>
  <li>Text Message (IDoc: TXTRAW, EDI X12 864)</li>
  <li>Application Advice (IDoc: TXTRAW, EDI X12 812)</li>
  <li><a href="https://www.erpgenie.com/post/idoc_status_management" target="_blank" rel="noopener"><u>IDoc Status Update</u></a> (IDoc: STATUS, EDI X12 997)</li>
</ol>]]></content:encoded></item><item><title><![CDATA[SAP Process Observer Detail]]></title><description><![CDATA[Process observer provides functionality to manage Processes across multiple applications allowing for the management of end-to-end processes]]></description><link>https://www.erpgenie.com/post/sap-process-observer-detail</link><guid isPermaLink="false">5e0f9cb453d0d5001795f602</guid><category><![CDATA[Supply Chain]]></category><category><![CDATA[Analytics]]></category><pubDate>Fri, 03 Jan 2020 21:21:24 GMT</pubDate><enclosure length="0" type="image/png" url="https://static.wixstatic.com/media/a6beaa_e2f3a6d724e742629b51c532f01ab550~mv2_d_7148_4770_s_4_2.jpg/v1/fit/w_1000,h_1000,al_c,q_80/file.png"/><dc:creator/><content:encoded><![CDATA[<p>SAP's Process observer provides functionality to manage Processes across multiple applications allowing for the management of an end-to-end business process lifecycle.</p>
<p>(Application area: CA-EPT-POC)</p>

<p>These phases can be described as:</p><ul>
  <li>Process <strong>design </strong>- Which  "built-in processes" do we need to leverage? </li>
  <li>Process <strong>implementation </strong>-  Solution Manager IMG (Cross-Application Components -> Processes and Tools for Enterprise Applications -> Process Observer) and/or blueprinting functionality of SAP’s solution manager to enable "built-in processes"</li>
  <li><strong>Run </strong>/ <strong>monitor </strong>- The Process Monitor and Process Definition Viewer can be used to view a process </li>
  <li><strong>Analysis </strong>- Analyzing results provides for the opportunity to optimize a business process. Focus in on preventing process disruptions or maximizing the ability to leverage opportunities to improve the process.</li>
</ul><figure><img src="https://static.wixstatic.com/media/a6beaa_e2f3a6d724e742629b51c532f01ab550~mv2_d_7148_4770_s_4_2.jpg/v1/fit/w_1000,h_1000,al_c,q_80/file.png"  ></figure><p>Most processes in the SAP Business Suite are implemented as “built-in processes” based on implemented business logic. No explicit process definition or process engine is required in order to execute which is in contrast to how workflows, implemented through <a href="https://www.erpgenie.com/post/scoping-out-a-sap-business-workflow-requirement" target="_top" rel="noopener"><u>SAP Business Workflow</u></a>, are executed.  </p>

<p>Process Observer is concerned with built-in processes.  Unlike workflows, the execution order of activities can be different from process instance to process instance. </p>

<p>Previously a major disadvantage of built-in processes was the absence of logging capability. This implied that process execution status was not visible to anyone. The process monitor has been provided to enable process visibility for SAP’s built-in processes. The process monitor allows the logging of built-in processes – this had previously only been possible for workflows. </p>

<p>Processes are made up of activities and parameters (E.g. the system(s) the process is running in, predecessor and subsequent activities, key performance indicators).</p>
<h3><strong>Difference from Workflow</strong></h3><p>Process orchestration based on business workflow depends on <strong>all possible combinations</strong> in the process definition being <strong>defined in advance</strong>. This is a complex and somewhat inflexible approach to managing your process.</p>
<h3><strong>Process Monitoring Setup</strong></h3><p>The following activities are needed in order to set up Process Monitoring.</p><ol>
  <li><em>Activating Settings </em>- Customizing activity Activate Process Observer - Background job SAP_POC_PROCESS_EVENT_QUEUES for processing business events from the event queue and for updating the process instances in the process log</li>
  <li><em>Creating Process Definitions</em> - Transaction: POC_MODEL</li>
  <li><em>Configuring End-to-End Federation</em> - Local federation — process in local system, Remote federation - process occurs across several systems - Transaction: POC_MODEL</li>
  <li><em>Configuring Key Performance Indicators</em> (KPIs) - 3 types of KPIs can be defined for a process: <strong>Count:</strong> number of times an activity is executed, <strong>Duration:</strong> amount of time that elapses between activity executions, <strong>Classification:</strong> Calculates a classification code, based on a user-defined rule, for the process instance. </li>
  <li><em>Enhancing the Setup of Process Definitions</em> - You can create custom tasks for process monitoring. </li>
</ol><h3><strong>Process Thresholds</strong></h3><p>Certain thresholds can be defined to alert process actors of an issue. (E.g. processing time for a process may not exceed 10 minutes). Thresholds are assigned KPIs (count, duration and classification KPIs). If a threshold is reached a BOR event (POCPROCESS-> Threshold_Reached ) is triggered (i.e. you can tie a workflow, alert, email as a recipient of this BOR event - proactive exception management in motion...) </p>
<p><em>Note</em>: A threshold value can be different for process <strong>instances</strong> of a process definition.</p>
<h3><strong>Analytics</strong></h3><p>The following queries for process monitoring are available (<em>Note</em>: data returned by these queries can be used to create customized dashboards):</p><ol>
  <li>0POC_MP01_Q0005: Generic Query</li>
  <li>0POC_MP01_Q0001: KPI with Process Details</li>
  <li>0POC_MP01_Q0003: KPIs by Month</li>
  <li>0POC_MP01_Q0002: KPIs by Quarter</li>
  <li>0POC_MP01_Q0004: KPIs by Week</li>
</ol><h3><strong>Operations</strong></h3><p>Key reports and transactions:</p><ol>
  <li>Transaction: POC_WRITE_API_TEST (<em>Note</em>:  All process definition Ids are prefixed with the word POC_SIM)</li>
  <li>Background job: Technical Name: POC_JOB_SCHEDULER_<CLIENT> </li>
  <li>Background job: SAP_POC_PROCESS_EVENT_QUEUES is scheduled automatically as soon as Process Observer is activated. Default schedule is very 1 minute.</li>
  <li>Transaction: POC_UPDATE_REG (Report: POC_UPDATE_MASTER_REG) Update the master registry tables with data from the local system. This report is automatically executed from the view cluster when you create a new process definition</li>
  <li>Report: POC_CROSS_CHECK_MASTER_REG - check if the registry in the local system is consistent with the master registry</li>
  <li>Report: POC_MODEL_CHECK - check for inconsistencies in process definitions </li>
  <li>Report: POC_CHECK_SETUP - check whether or not the system has been configured for process logging. The system does this by raising Business Object Repository (BOR) events. </li>
  <li>Report: POC_SIMULATION - simulate processes for monitoring and analytics</li>
  <li>Report: POC_DISPLAY_BA - generate a task-centric view of the process log (E.g. Tasks and whether or not they are assigned to process definitions, Tasks executed on a specific instance of a business object, Process instances assigned to a task, Tasks executed by a specific user)</li>
  <li>Report: POC_DISPLAY_BA_ORPHANS - generate a list of logged tasks that do not have a process binding </li>
  <li>Report: SAPLPOC_DELETION_LOG - delete, using a generated list, unwanted runtime entries stored in the process log (<em>Note</em>: You cannot delete entries that are in an incomplete state)</li>
  <li>Report: POC_MASS_DELETE - efficiently delete huge sets of unwanted runtime entries stored in the process log </li>
</ol><h3><strong>Authorizations</strong></h3><p>All roles used in Process Monitoring and Analytics use the authorization object POC_AUTH. Attribute detail:</p><ul>
  <li>PROCDEFID :  Process Definition ID </li>
  <li>POC_SCOPE : Process Scope for User (My Process or All Processes) </li>
  <li>E2E_SCOPE : Process Scope (End-to-End or Local) </li>
  <li>POC_USER : User Information for Authorization (X — User information can be seen, “ “ (blank) — No user information visible)</li>
  <li> POC_ACTVT : Authorization Activity (01 — Monitoring display, 02 — Analytics display, 03 — Delete)</li>
</ul><p><a href="mailto:kevin@erpgenie.com" target="_top" rel="noopener"><u>Ping me</u></a> if you are interested in implementing Process Observer.</p>]]></content:encoded></item><item><title><![CDATA[Update SAP EM Visibility Processes for SAP S/4HANA long Material Numbers]]></title><description><![CDATA[A guide for existing SAP Event Management customers who wish to migrate toSAP S/4 HANA where the Material Number (MATNR) length has beenexte]]></description><link>https://www.erpgenie.com/post/s4hana-and-sapem-long-matnr</link><guid isPermaLink="false">5e0f98a37ca3f00017c12274</guid><category><![CDATA[EM]]></category><category><![CDATA[S/4HANA]]></category><pubDate>Fri, 03 Jan 2020 19:53:28 GMT</pubDate><enclosure length="0" type="image/png" url="https://static.wixstatic.com/media/a6beaa_73fc14640ec349ee9f8cf8aa34c629ef~mv2.jpg/v1/fit/w_800,h_600,al_c,q_80/file.png"/><dc:creator/><content:encoded><![CDATA[<p>A guide for existing SAP Event Management users who wish to migrate to</p>
<p>SAP S/4 HANA where the Material Number (MATNR) length has been</p>
<p>extended from 18 to 40 chars is available for download in the <a href="http://wix.to/0cAeBZw" target="_top" rel="noopener"><u>Document Repository SAP EM folder</u></a>.</p>]]></content:encoded></item><item><title><![CDATA[Merry Christmas]]></title><description><![CDATA[Merry Christmas to all our ERPGenie users and clients.]]></description><link>https://www.erpgenie.com/post/merry-christmas</link><guid isPermaLink="false">5e02dcf959008e00171103b0</guid><pubDate>Wed, 25 Dec 2019 03:53:55 GMT</pubDate><enclosure length="0" type="image/png" url="https://static.wixstatic.com/media/a6beaa_24ebb5d38da547ec8adcc18c606e7079~mv2.jpg/v1/fit/w_1000,h_702,al_c,q_80/file.png"/><dc:creator>ERPGenie</dc:creator><content:encoded><![CDATA[<figure><img src="https://static.wixstatic.com/media/a6beaa_24ebb5d38da547ec8adcc18c606e7079~mv2.jpg"></figure><p>Merry Christmas to all our ERPGenie users and clients. </p>]]></content:encoded></item><item><title><![CDATA[Migrate to S/4HANA with MuleSoft’s S/4HANA Cloud connector]]></title><description><![CDATA[Migrating to S/4HANA using MuleSoft's S/4HANA cloud connector]]></description><link>https://www.erpgenie.com/post/migrate-to-s-4hana-with-mulesoft-s-s-4hana-cloud-connector</link><guid isPermaLink="false">5dea7f7f0f8c1200174358ca</guid><category><![CDATA[S/4HANA]]></category><category><![CDATA[Products]]></category><pubDate>Fri, 06 Dec 2019 16:25:21 GMT</pubDate><enclosure length="0" type="image/png" url="https://static.wixstatic.com/media/669b76_52897643a45b4e07b9234742848ea9db~mv2_d_3600_2400_s_4_2.jpeg/v1/fit/w_1000,h_1000,al_c,q_80/file.png"/><dc:creator/><content:encoded><![CDATA[<blockquote>In my never-ending quest for more knowledge I came across this great nugget from MuleSoft. I thought I would share with our users another tool to help migrate to S/4HANA. 2025 is 6 years away still but don't wait until the last minute to come up with a migration plan...</blockquote><p>Read the article on the MuleSoft blog <a href="https://blogs.mulesoft.com/dev/connectivity-dev/sap-s4hana-cloud-connector/" target="_blank" rel="noopener"><u>here</u></a>.</p>]]></content:encoded></item><item><title><![CDATA[SAP Business Event Handling in S/4HANA - An Overview]]></title><description><![CDATA[SAP Business Event Handling is SAP S/4HANAs solution to providing generic events to all SAP S/4HANA business objects.]]></description><link>https://www.erpgenie.com/post/sap-business-event-handling-in-s-4hana-an-overview</link><guid isPermaLink="false">5dc31612c18feb0017e60ae4</guid><category><![CDATA[EM]]></category><category><![CDATA[GTT]]></category><category><![CDATA[Supply Chain]]></category><category><![CDATA[Traceability]]></category><category><![CDATA[S/4HANA]]></category><pubDate>Wed, 06 Nov 2019 19:51:30 GMT</pubDate><enclosure length="0" type="image/png" url="https://static.wixstatic.com/media/a27d24_9d6fe63bb9d24193b16ad3dd7e74dbec~mv2_d_7360_4912_s_4_2.jpg/v1/fit/w_1000,h_1000,al_c,q_80/file.png"/><dc:creator/><content:encoded><![CDATA[<p>In SAP ERP there was standard functionality provided across most business objects that allowed for the creation of certain events, against those business objects, when their status changed. E.g. When a sales order is created the event "CREATED" for business object "BUS2032" was created.</p><figure><img src="https://static.wixstatic.com/media/a27d24_15fca9d9fc8649e0894b08057ff17850~mv2.png/v1/fit/w_1000,h_757,al_c,q_80/file.png" title="BUS2032 - Sales Order - Business Object Event" alt="BUS2032 - Sales Order - Business Object Event"></figure><p>Using transaction SWEL we could browse the events that were triggered by the various business objects. In the screenshot below we can see that a sales order was created on 3/26/2019 @ 14:48:39. We can also see that we can tie a receiver to an event (See BUS2012 - Purchase Order - Event "RELEASESTEPCREATED" is tied to workflow WS20000075) This is key functionality because we can leverage these events to trigger subsequent / follow-on functionality without impacting the transaction processing of the original document.</p><figure><img src="https://static.wixstatic.com/media/a27d24_687f76a1ec6540039f7a0c6bc22b83f1~mv2.png/v1/fit/w_1000,h_1000,al_c,q_80/file.png" title="Transaction SWEL to view the Business Object Event Trace" alt="Transaction SWEL to view the Business Object Event Trace"></figure><p>So now the question is...</p><blockquote>Does this standard Business Object Event functionality exist in the SAP S/4HANA Cloud Application?</blockquote><p>Yes, SAP does provide for this in the form of <strong>Business Event Handling</strong>.</p>
<p>SAP provides a catalog of Business Events for all objects on the SAP S/4HANA cloud application. Customers and partners can then leverage \ consume these events much like I described above with Business Object events in SAP ERP.</p>

<p>Customers and partners can leverage <strong>Event Activation Management</strong> to propagate subscribed events to the messaging infrastructure. A subscriber to an event is much like the receiver of an event described above for SAP ERP. These subscribed events can then be consumed in side-by-side extensions, to SAP S/4HANA cloud, allowing you to provide enhanced functionality without disrupting the core SAP S/4HANA transaction. An example use case: On order creation you could send an event to an email extension which could wrap up the order data and send a copy to an interested party.</p>
<h2><strong>So how can we access these events?</strong></h2>
<p>Firstly, as an administrator, we access the applications via the SAP Fiori Launchpad. The administrator needs the role SAP_BR_ADMINISTRATOR to access the apps below.</p>
<h3><strong>Business Event Subscription - Subscription Manager App</strong></h3><ul>
  <li>The administrator can view the list of current event subscriptions. </li>
  <li>They can create (activate), update or delete (deactivate) a subscription. </li>
  <li>They can also change the priority (1 to 10) of a subscription.</li>
  <li>Results can be filtered by various fields as shown in the filter section in the screenshot below.</li>
</ul><figure><img src="https://static.wixstatic.com/media/a27d24_7e658f9a775f4e9eaf2721171f3d7ee9~mv2.png/v1/fit/w_1000,h_463,al_c,q_80/file.png" title="Business Event Subscription - Subscription Manager" alt="Business Event Subscription - Subscription Manager"></figure><h3><strong>Business Event Queue App </strong></h3><ul>
  <li>The administrator can view the number of events that are in the queue. </li>
  <li>The results can be filtered by various dimensions. E.g. By Business Object Type and Subscriber.</li>
</ul><figure><img src="https://static.wixstatic.com/media/a27d24_3fbb23ee7e82448c8ad60dda45eafa29~mv2.png/v1/fit/w_1000,h_992,al_c,q_80/file.png"  ></figure><p>This functionality is not to be confused by what is provided by <a href="https://www.erpgenie.com/sap-em" target="_top" rel="noopener"><u>SAP Event Management</u></a> or <a href="https://www.erpgenie.com/sap-global-track-and-trace" target="_top" rel="noopener"><u>SAP Global Track and Trace</u></a>. This functionality is equivalent to the Business Object Repository events of SAP ERP. There is no functionality provided to correlate these events in to a business process, match the event with the plan for that event or capture extra information on an event when it occurs (e.g. the temperature at the time of the event). The intention for this functionality is to be an input provider for the likes of other applications that include SAP EM, SAP GTT, ...</p>

<p>If you have any further questions please feel free to reach out to me at <a href="mailto:kevin@erpgenie.com" target="_top" rel="noopener"><u>kevin@erpgenie.com</u></a>.</p>]]></content:encoded></item><item><title><![CDATA[TIP: A couple of key ABAP tips]]></title><description><![CDATA[ABAP Tips and Tricks from Kevin]]></description><link>https://www.erpgenie.com/post/abap-tips</link><guid isPermaLink="false">5db76bf6a05b680017f5e660</guid><category><![CDATA[Development]]></category><pubDate>Wed, 30 Oct 2019 11:00:23 GMT</pubDate><enclosure length="0" type="image/png" url="https://static.wixstatic.com/media/a6beaa_73fc14640ec349ee9f8cf8aa34c629ef~mv2.jpg/v1/fit/w_800,h_600,al_c,q_80/file.png"/><dc:creator/><content:encoded><![CDATA[<p><strong>TIP 1: </strong>Avoid a SQL dump with the following pattern:</p><blockquote>try.
  update zship_table
  set sto_no = wa_table-sto_no
        dlv        = wa_table-dlv_no
  where  vbeln  = wa_table-vbeln.
  catch cx_sy_dynamic_osql_error.
endtry.</blockquote>
<p><strong>TIP 2:</strong> Format a message for printing</p><blockquote>call function 'FORMAT_MESSAGE'
  exporting
    id     = msg-msgid   "Message ID
    lang = sy-langu
    no    = msg-msgnr  "Message number
    v1    = msg-msgv1   "Message variable 1
    v2    = msg-msgv2   "Message variable 2
    v3    = msg-msgv3   "Message variable 3
    v4    = msg-msgv4   "Message variable 4
  importing
    msg  = outmsg .       "String variable containing the 
                                       "message in printable format
  exceptions
   not_found = 1
   others        = 2.</blockquote>
<p><strong>TIP 3:</strong> Avoid short dumps due to data conversion errors - Strings not being able to be converted to a number</p><blockquote>catch system-exceptions conversion_errors = 1.
     lv_n5 = lv_string
endcatch.
if sy-subrc ne 0.
  " Value cannot be converted to a number.
else. 
" Good value
endif.</blockquote><p>  </p>
<p><strong>TIP 4: </strong>Debugging a popup</p><ol>
  <li>In the system you wish to debug</li>
  <li>Click the “Customize Local Layout Icon” and select “Create Shortcut” </li>
  <li>Give a Good title “Development Debugging”</li>
  <li>Select “System Command” as the Type</li>
  <li>Type /H as the Command </li>
  <li>Click Finish </li>
</ol><p>Now when you want to debug those popup messages just drag the shortcut on to the popup window and click to continue which will open the debug session.</p>

<p><strong>TIP 5: </strong>Dynamic Tables with field symbols</p>
<p>This code will  show you how to make use of field-symbols for dynamic tables and fields. Sometimes we are not aware of the table structure before hand and therefore we do not know how to handle such tables in code.</p>
<p>This example makes use of field-symbols to achieve the desired outcome.</p><blockquote>REPORT Z_DYNAMIC_TABLE.
types : begin of itab,
         vbeln type vbrk-vbeln,
end of itab.
data : itab type standard table of itab.
data : wa type itab.
data : obj1 type ref to data,
      obj2 type ref to data.
field-symbols : <fs_table> type any table,
               <fs_line> type any,
               <fs_field> type any.

<em>* Internal table is ITAB.
</em>wa-vbeln = '33'.
append wa to itab.

<em>*Create a DATA object which will be like ITAB.
</em>create data obj1 like itab.

<em>* This assigns the structure of ITAB to the field-symbols <FS_TABLE>. <FS_TABLE> has a structure and it is a table.
</em>assign obj1->* to <fs_table>.

if <fs_table> is assigned.
<em>* Assigns the values if ITAB to the field symbol <FS_TABLE>
</em> <fs_table> = itab[].

<em>* In order to read the contents of the table, we need a work area. Create a data object which has the same structure as line of ITAB and then assign it to <FS_LINE>. <FS_LINE> has a work area with a structure like ITAB
</em>create data obj2 like line of <fs_table>.
assign obj2->* to <fs_line>.

loop at <fs_table> assigning <fs_line>.
<em>* In order to access the individual fields of the work area we will have to use the Assign Component statement. This component can be either named if we know the fieldname or we can give the column position if we do not know the name
  </em>assign component 'VBELN' of structure <fs_line> to 
  <fs_field>.
  <em>* or ASSIGN COMPONENT 1 OF STRUCTURE <fs_line> TO 
  <fs_field>.
  </em>if <fs_field> is assigned.
    write <fs_field>.
  endif.
endloop.
endif. </blockquote><p><strong>TIP 6</strong>: Evaluate Customizing Changes</p>
<p>It's easy to see changes to ABAP but customizing changes are a little harder to track down. Use transaction <strong>SCU3</strong> to check up on customizing change logs. In addition you could use transaction OY19 to evaluate / compare cross-system customizing objects (i.e. Check if the config in your current systems differs from that in a remote system)</p>]]></content:encoded></item><item><title><![CDATA[SAP Global Track and Trace - Part 2]]></title><description><![CDATA[Part 2 on SAP Global Track and Trace dealing with the GTT apps, architecture, integration, processing functionality]]></description><link>https://www.erpgenie.com/post/sap-global-track-and-trace-part-2</link><guid isPermaLink="false">5db7b97d90404100175bbd9f</guid><category><![CDATA[GTT]]></category><category><![CDATA[Supply Chain]]></category><category><![CDATA[IoT]]></category><pubDate>Tue, 29 Oct 2019 20:34:47 GMT</pubDate><enclosure length="0" type="image/png" url="https://static.wixstatic.com/media/669b76_e29a241f0a9d4cd9be9c188128bd0237~mv2_d_2715_1809_s_2.jpg/v1/fit/w_1000,h_1000,al_c,q_80/file.png"/><dc:creator/><content:encoded><![CDATA[<p>In <a href="https://www.erpgenie.com/post/understanding-sap-global-track-and-trace" target="_top" rel="noopener"><u>my first blog on SAP Global Track and Trace</u></a> (GTT) I went through what Track and Trace means, business drivers and key capabilities of SAP GTT. In addition I went through SAP's vision for SAP GTT, use cases and the SAP GTT application portfolio. It's a comprehensive start to understanding SAP GTT so if you have read it start there and then come back... </p>

<p>As promised, in the first article, let me take you through some of the key details surrounding <a href="https://www.erpgenie.com/sap-global-track-and-trace" target="_top" rel="noopener"><u>SAP GTT</u></a>.</p>
<h3><strong>1 - Event-to-Action Engine</strong></h3><figure><img src="https://static.wixstatic.com/media/a6beaa_7970710337204dff8ee6fd303f20b5d2~mv2.png/v1/fit/w_1000,h_983,al_c,q_80/file.png"  ></figure><p>The SAP GTT Event-to-Action Engine provides you the ability to define Rules, much like the Rule Set functionality of SAP Event Management (EM), to automatically trigger actions, based on certain conditions, when events are processed for a tracked process instance. These actions could, for example:</p><ul>
  <li>send notifications to specified users</li>
  <li>update the status of the tracked process instance</li>
  <li>trigger a generic message to a SAP Cloud Platform Integration (CPI) scenario for a follow on action to be performed (e.g. communicated with SAP ECC or SAP TM) </li>
</ul><p>The Event-to-Action Engine is part of the key functionality that enables a proactive approach to exception management - It is the enabler to reducing the "Event-to-Insight" and "Insight-to-Action" cycle times.</p>
<h3><strong>2 - Overdue Event Monitor</strong></h3><figure><img src="https://static.wixstatic.com/media/a6beaa_231a2a4303aa45758c1515a5849e34c4~mv2.png/v1/fit/w_498,h_905,al_c,q_80/file.png"  ></figure><p>The Overdue Event Monitor is a tool used to detect, on a predetermined periodic basis, planned or expected events (milestones as they were known as in SAP EM) that are overdue. </p>

<p>If a milestone event is determined to be overdue, its status is set to “Overdue” and the Event-to-Action Engine can then be used to trigger additional follow-on actions to address the issue.</p>

<p>The Overdue Event Monitor leverages the Planned Business and Technical Timestamps to evaluate whether an event is overdue or not. It first checks the Technical Timestamp to see if it is populated - If it is then it leverages that for the overdue calculation otherwise it uses the Business Timestamp. The definition of both timestamps are described below.</p>
<p> </p>


<p><strong>3 - Difference between Business and Technical Timestamp</strong></p><figure><img src="https://static.wixstatic.com/media/a6beaa_dfe7e48124584216b7ae75a1822fb109~mv2.png/v1/fit/w_1000,h_1000,al_c,q_80/file.png"  ></figure><p>SAP GTT allows for the tracking of 2 distinct Timestamps:</p><ol>
  <li>Business Timestamp refers to the date and times surrounding the event itself. E.g. A delivery PGI business timestamp refers to the date and timestamp of the delivery PGI event itself</li>
  <li>Technical Timestamp refers to the date and times surrounding the message that tells us about the event. E.g. A delivery PGI technical timestamp refers to the date and timestamp of the message communicating the delivery PGI event to SAP GTT - Note: This could be minutes, to several hours, to several days after the actual event has occurred. </li>
</ol><p>The difference between the Technical Timestamp and the Business Timestamp is determined by the business. E.g. The business can allow a 1 hour offset between receiving the message about a PGI and the PGI event itself. This allows for latency between the communication of several disparate systems in the process as well as contractual obligations in the process, often involving 3rd parties. E.g. A PO acknowledgement could be contractually agreed to be received 24 hrs after receipt of the PO. This implies that the Technical Timestamp for POA = Business Timestamp of PO Sent to Supplier + 24 hrs. </p><figure><img src="https://static.wixstatic.com/media/a6beaa_5a8d5fda3dd644438ed64e01fb61df05~mv2.png/v1/fit/w_624,h_470,al_c,q_80/file.png"  ></figure><p><strong><em>Business Timestamp</em></strong></p><ul>
  <li>Planned business timestamp = date / time the event is expected to happen.</li>
  <li>Actual business timestamp = date / time the event took place.</li>
</ul><p><strong><em>Technical Timestamp</em></strong></p><ul>
  <li>Planned technical timestamp = date / time the message, which reports the event, is expected to be received.</li>
  <li>The Latest planned technical timestamp is used in detecting overdue events.</li>
  <li>Actual technical timestamp = date / time the event message was processed.</li>
</ul><h3><strong>4 - SAP GTT architecture</strong></h3><figure><img src="https://static.wixstatic.com/media/a6beaa_65bd05c6767749bdac147289cde1b840~mv2.png/v1/fit/w_1000,h_1000,al_c,q_80/file.png"  ></figure><p>The above diagram highlights the components making up the SAP GTT architecture.</p>
<h3><strong>5 - ERP to SAP GTT integration</strong></h3><figure><img src="https://static.wixstatic.com/media/a6beaa_7b817d770b074caa85235b13ae63e55d~mv2.png/v1/fit/w_1000,h_870,al_c,q_80/file.png"  ></figure><p>The integration of ECC master data to SAP GTT is accomplished via IDocs and change pointers:</p><ul>
  <li>DEBMAS - Customer Master</li>
  <li>CREMAS - Vendor Master</li>
  <li>MATMAS - Material Master </li>
  <li>ADRMAS - Address Master</li>
</ul><p>The integration of ECC transaction data (tracked process instance initialization and event creation) to SAP GTT is accomplished via IDocs and BaDI integration (SAP GTT Application Interface similar to that provided for SAP EM):</p><ul>
  <li>EHPOST - Tracked Process Creation (Equivalent to EH creation in SAP EM)</li>
  <li>EVMSTA - Event Creation (Equivalent to event message creation in SAP EM)</li>
</ul><h3><strong>6 - App overviews</strong></h3><p>See Slideshow below for screenshots of the apps</p>
<p>  </p>
<p><strong><em>A) Global Track and Trace App</em></strong></p><ul>
  <li>For business end users</li>
  <li>Track business processes and objects that are created as models in the Metadata Modeling app</li>
  <li>The GTT app provides three track and trace samples: Outbound Delivery, Shipment, and EPCIS (Electronic Product Code Information Services)</li>
</ul><p><strong><em>B) SAP GTT Meta Data Modeling App</em></strong></p><ul>
  <li>Plugin for SAP Web IDE</li>
  <li>Generate metadata models</li>
  <li>Include tracked processes or objects</li>
</ul><p><strong><em>C) SAP GTT Model Management App</em></strong></p><ul>
  <li>Manage GTT Models - Monitor & Manage run-time GTT metadata models</li>
  <li>Manage Business Rules - Define and Activate rules</li>
  <li>Delete Personal Data</li>
</ul><p><strong><em>D) Manage Business Partners App</em></strong></p><ul>
  <li>Manage Business Partner Master Data</li>
</ul><p><strong><em>E) Manage Locations App</em></strong></p><ul>
  <li>Manage Location Master Data</li>
</ul><p><strong><em>F) Manage Product App</em></strong></p><ul>
  <li>Manage Product Master Data</li>
</ul><p><strong><em>G) Manage GTT Users App</em></strong></p><ul>
  <li>Manage user access: Solution Owners, Solution Participants </li>
</ul><p><strong><em>H) Manage Solution Participants App</em></strong></p><ul>
  <li>Managing member organizations of a solution: Administrators -> invite business partners of the solution owner</li>
</ul><p><strong><em>I) Manage Personal Data App</em></strong></p><ul>
  <li>Data protection -> legal requirements, privacy concerns - Provides compliance with general data privacy regulation (EUs <a href="https://eugdpr.org/" target="_blank" rel="noopener"><u>GDPR</u></a> - General Data Protection Regulation)</li>
  <li>Provides privacy specialists with the tools to protect personal data used in master data </li>
</ul><figure><img src="https://static.wixstatic.com/media/a6beaa_e56299da0c6642869948b1a8ee754f98~mv2.png"></figure>
<figure><img src="https://static.wixstatic.com/media/a6beaa_b8ef707ebe1c438da373842be71e7538~mv2.png"></figure>
<figure><img src="https://static.wixstatic.com/media/a6beaa_3257818651d2434992bcbf51b247ea1d~mv2.png"></figure>
<figure><img src="https://static.wixstatic.com/media/a6beaa_c4f5eb5e2bd246e493b6eaa9c8cb30c4~mv2.png"></figure>
<figure><img src="https://static.wixstatic.com/media/a6beaa_20e1d97e46af4fcf9ebe91bfc1258d80~mv2.png"></figure>
<figure><img src="https://static.wixstatic.com/media/a6beaa_38032cdfd54444828a064e38aa630c28~mv2.png"></figure>
<figure><img src="https://static.wixstatic.com/media/a6beaa_4eb522c102714b1291c6d27a6d047552~mv2.png"></figure>
<figure><img src="https://static.wixstatic.com/media/a6beaa_270a7e4668894301bbc2eb480ed04a5e~mv2.png"></figure><p><em>The above screenshots provided with consent from SAP.</em></p>

<p><strong>7 - SAP GTT and Leonardo IOT Bridge</strong></p><figure><img src="https://static.wixstatic.com/media/a6beaa_5a551def1d0848929b0193d1f95c6632~mv2.png/v1/fit/w_1000,h_638,al_c,q_80/file.png"  ></figure><p>GTT provides the possibility to integrate with different sensor types, measuring a wide range of parameters. E.g. Temperature and Vibration sensors. It is becoming more and more important to get Supply Chain events closer to the point of occurrence and as near real-time as possible. Often this implies having a sensor on a truck or in a shipped package. This allows for the best and most accurate, up-to-date way of gathering timely data for Supply Chain events.</p>
<h3><strong>8 - SAP GTT 1802 Capabilities</strong></h3>
<p><strong><em>Pro-active exception management</em></strong></p><ul>
  <li>Event-to-Action Engine: Rule Engine (Design), Update Status of Tracked Process, Fiori Notifications, SAP CPI messaging / integration</li>
  <li>Overdue Event Monitor: Periodic monitoring, Trigger follow-on actions -> Event-to-Action Engine</li>
</ul><p><strong><em>Services for Data Protection and Privacy</em></strong></p><ul>
  <li>Audit Log</li>
  <li>Personal Data Manager</li>
  <li>Retention Management</li>
</ul><p><strong><em>Geographical Map</em></strong></p><ul>
  <li>Using Here services the integration with geo maps is supported. This allows a user to track planned / actual events visually on a map. Different color codes are used for event statuses and event context information. </li>
</ul><p><strong><em>Enhanced Modeling and Model Management</em></strong></p>

<p><strong><em>EPCIS (Electronic Product Code Information Services)</em></strong></p><ul>
  <li>With the May 2018 release of GTT object tracking and EPCIS support were incorporated into the Core Data Model together with the EPCIS Capture interface supporting various events. </li>
</ul><p>ERPGenie are leaders in the SAP Process Track and Trace space - Please feel free to <a href="https://www.erpgenie.com/services" target="_top" rel="noopener"><u>reach out to us</u></a> for any questions or contact the author (<a href="mailto:kevin@erpgenie.com" target="_top" rel="noopener"><u>Kevin Wilson</u></a>) directly.</p>]]></content:encoded></item><item><title><![CDATA[Tips and Tricks]]></title><description><![CDATA[A living list of transactions, parameters, OSS Notes and quick shortcut keys]]></description><link>https://www.erpgenie.com/post/tips-and-tricks</link><guid isPermaLink="false">5db74f277f803300178c6efc</guid><category><![CDATA[Development]]></category><category><![CDATA[Tips]]></category><category><![CDATA[Consulting]]></category><pubDate>Tue, 29 Oct 2019 11:00:18 GMT</pubDate><enclosure length="0" type="image/png" url="https://static.wixstatic.com/media/669b76_2a1a22f4594d4645815e3a9d80ed992d~mv2_d_4881_2938_s_4_2.jpg/v1/fit/w_1000,h_1000,al_c,q_80/file.png"/><dc:creator/><content:encoded><![CDATA[<p>Please feel free to comment and add to this list</p>
<h3><strong><u>Useful Transactions</u></strong></h3><ul>
  <li><strong>SO21</strong> is used to specify the default download file location</li>
  <li><strong>SU53</strong> is used to display the latest failures in to authorization objects</li>
  <li><strong>SU3</strong> is used to set the current user's defaults (time, date format, timezone, decimal notation) - In addition this is where the user sets their Parameter values</li>
  <li><strong>SBWP</strong> - SAP Business Workplace - SAP mail and workflow</li>
  <li><strong>AL11</strong> - Display SAP directories</li>
  <li><strong>RZ12</strong> - RFC Server Group maintenance</li>
  <li><strong>SALE</strong> - ALE customizing</li>
  <li><strong>SARA</strong> - Archiving</li>
  <li><strong>SCC1</strong> - Client copy - Customizing, <strong>SE10</strong> - Customizing Organizer (Transports)</li>
  <li><strong>STMS</strong> - Transport Management System</li>
  <li><strong>SE16</strong> - Table data browser</li>
  <li><strong>SM37</strong> - Job Overview</li>
  <li><strong>SMGW</strong> - Gateway Monitor</li>
  <li><strong>SMQ1</strong> - Outbound qRFC, <strong>SMQ2</strong> - Inbound qRFC</li>
  <li><strong>ST05</strong> - SQL Trace</li>
  <li><strong>ST22</strong> - ABAP Dumps, <strong>SM21</strong> - System Log</li>
  <li><strong>SM50</strong> - Instance processes, <strong>SM66</strong> - Cross system process view</li>
  <li><strong>SU01</strong> - Maintain users</li>
</ul><h3><strong><u>Parameter Values</u></strong></h3><p>Use SU3 to set your default parameter values. To see if there is a parameter that can be defaulted in a transaction simply click on the field and press F1 -> Technical Information -> Parameter ID (E.g. In VA01 for field Sales Org the Parameter is VKO)</p><ul>
  <li><strong>/SAPTRX/EE_MON_SEL</strong> - Display monitor fields</li>
  <li><strong>/SAPTRX/NOPERFPOPUP</strong> - Disable performance warning</li>
  <li><strong>SD_SWU_ACTIVE</strong> - Activate Workflow Box (VA02, VA03)</li>
</ul>
<h3><strong><u>Shortcuts</u></strong></h3><ul>
  <li>To select text on on an SAP screen use <strong>Ctrl&Y</strong> - Use <strong>Ctrl&C</strong> (copy) and <strong>Ctrl&V</strong> (paste) to copy and paste</li>
  <li><strong>ctrl&?</strong> to go to the tcode dialog box</li>
  <li><strong>/i</strong> deletes the current session</li>
  <li><strong>/n<tcode> </strong>Launch <tcode> in current session</li>
  <li><strong>/o<tcode></strong> Launch <tcode> in new session</li>
  <li><strong>/nex</strong> closes all your sessions for the specific application server that you are logged in to</li>
  <li><strong>/nend</strong> cancels all SAP sessions and logs off </li>
  <li><strong>ALT&F -> W</strong> (download) and <strong>ALT&F -> U(upload)</strong> in SAP Easy Access Screen to download and upload the user favorites within/across systems</li>
  <li><strong>Ctrl&+</strong> to open new SAP session, <strong>Ctrl&N</strong> Creates a new session</li>
  <li><strong>Ctrl&P</strong> Print</li>
  <li><strong>Ctrl&S</strong> Save</li>
  <li><strong>Ctrl&F</strong> Find</li>
  <li><strong>Ctrl&F11</strong> SAP Menu, <strong>Ctrl&F10</strong> User Menu</li>
  <li>In most transactions: <strong>F8</strong> - Execute, <strong>F4</strong> - Display dropdown menu</li>
  <li><strong>F12</strong> Cancel</li>
  <li><strong>F3</strong> Back</li>
</ul><h3><strong><u>OSS Notes</u></strong></h3><ol>
  <li><a href="https://service.sap.com/sap/support/notes/757964"  >Note 757964 - Additional information in the SAP GUI window title</a> a must, if you have several systems open at the same time in order to show the client for each system - To fix this issue you need to go to the regedit in your windows system -> Navigate to: [HKEY_CURRENT_USER\Software\SAP\SAPGUI Front\SAP Frontend Server\Administration] -> Add the value as DWORD “ShowAdditionalTitleInfo” entry with the value 1</li>
  <li><a href="https://service.sap.com/sap/support/notes/205487"  >Note 205487 - Own text on SAPGui logon screen</a> -> Go to Transaction SE61 and select the document class 'General Text' (selection using F4 help), and create a        text with the name ZLOGIN_SCREEN_INFO in the system language determined        with the profile parameter zcsa/system_language.  </li>
</ol><h3><strong><u>Fun Stuff</u></strong></h3><ol>
  <li>To change <strong>transport</strong> job class to "A": Run report RDDNEWPP from transaction SE38 in the client 000.</li>
  <li>Multiple logons on to SAP are stored in table: <strong>USR41_MLD</strong>  </li>
</ol>]]></content:encoded></item><item><title><![CDATA[TIP: Upload an Excel file into an internal table and display in ALV format]]></title><description><![CDATA[The following sample code can be used to upload an excel file in to an internal table and have the results displayed in a simple ALV List Di]]></description><link>https://www.erpgenie.com/post/sap-upload-excel</link><guid isPermaLink="false">5db347402e46320017983a31</guid><category><![CDATA[Tips]]></category><category><![CDATA[Development]]></category><pubDate>Mon, 28 Oct 2019 11:24:17 GMT</pubDate><enclosure length="0" type="image/png" url="https://static.wixstatic.com/media/a6beaa_73fc14640ec349ee9f8cf8aa34c629ef~mv2.jpg/v1/fit/w_800,h_600,al_c,q_80/file.png"/><dc:creator/><content:encoded><![CDATA[<p>The following sample code can be used to upload an excel file in to an internal table and have the results displayed in a simple ALV List Display.</p>

<p>*&---------------------------------------------------------------------*</p>
<p>*& Report ZSAMPLE</p>
<p>*&---------------------------------------------------------------------*</p>
<p>*& AUTHOR: Kevin Wilson</p>
<p>* Sample Spreadsheet</p>
<p>*               COL1  COL2                                COL3</p>
<p>* ROW1: 10        Data in Row 1 colum 2  Data in Row 1 colum 3</p>
<p>* ROW2: 20        Data in Row 2 colum 2  Data in Row 2 colum 3</p>
<p>* ROW3: 30        Data in Row 3 colum 2  Data in Row 3 colum 3</p>
<p>* ROW4: 40        Data in Row 4 colum 2  Data in Row 4 colum 3</p>
<p>*&---------------------------------------------------------------------*</p>
<p>REPORT zsample_excel_upload.</p>

<p>*** Data Declarations ***</p>
<p>TYPE-POOLS: slis,</p>
<p>                        ole2.</p>

<p>* zalsmex_tabline is a structure with 3 fields:</p>
<p>*  ROW         Types        KCD_EX_ROW_N</p>
<p>*  COL          Types        KCD_EX_COL_N</p>
<p>*  VALUE      Types        CHAR50</p>
<p>TYPES: ty_d_itabvalue TYPE zalsmex_tabline-value,</p>
<p>*  internal table containing the excel data</p>
<p> ty_t_itab  TYPE STANDARD TABLE OF zalsmex_tabline,</p>
<p>*  line type of sender table</p>
<p> BEGIN OF ty_s_senderline,</p>
<p>        line(4096) TYPE c,</p>
<p> END OF ty_s_senderline,</p>
<p>*  sender table</p>
<p> ty_t_sender TYPE STANDARD TABLE OF ty_s_senderline.</p>

<p>CONSTANTS:  gc_esc  VALUE '"'.</p>

<p>TYPES: BEGIN OF lty_table,</p>
<p>      col1 TYPE ztable-col1,</p>
<p>      col2 TYPE  ztable-col2,</p>
<p>      col3 TYPE  ztable-col3,</p>
<p> END OF lty_table.</p>

<p>DATA: </p>
<p>      lt_fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,</p>
<p>      ls_gd_layout  TYPE slis_layout_alv,</p>
<p>      lt_itab_table  TYPE STANDARD TABLE OF lty_table,</p>
<p>      ls_itab_table  TYPE lty_table.</p>

<p>DATA: </p>
<p>      excel_tab  TYPE  ty_t_sender,</p>
<p>      intern  TYPE STANDARD TABLE OF zalsmex_tabline,</p>
<p>      ls_excel_tab TYPE ty_s_senderline,</p>
<p>      ls_string  TYPE string,</p>
<p>      ld_separator TYPE  c,</p>
<p>      application  TYPE  ole2_object,</p>
<p>      workbook  TYPE  ole2_object,</p>
<p>      range  TYPE  ole2_object,</p>
<p>      worksheet  TYPE  ole2_object,</p>
<p>      h_cell  TYPE  ole2_object,</p>
<p>      h_cell1  TYPE  ole2_object,</p>
<p>      ld_rc  TYPE i,</p>
<p>      lv_filename  TYPE rlgrap-filename.</p>

<p>DEFINE m_message.</p>
<p>  CASE sy-subrc.</p>
<p>    WHEN 0.</p>
<p>    WHEN 1.</p>
<p>       MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno</p>
<p>           WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.</p>
<p>    WHEN OTHERS. </p>
<p>        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno</p>
<p>           WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.</p>
<p>  ENDCASE.</p>
<p>END-OF-DEFINITION.</p>

<p>PARAMETERS: </p>
<p>     p_file  TYPE rlgrap-filename OBLIGATORY,      "Filename</p>
<p>     p_row_st TYPE i DEFAULT 1 OBLIGATORY,       "1st Row</p>
<p>     p_row_en TYPE i DEFAULT 100 OBLIGATORY, "Last Row</p>
<p>     p_col_st TYPE i DEFAULT 1 OBLIGATORY,        "1st Column</p>
<p>     p_col_en TYPE i DEFAULT 3 OBLIGATORY.      "Last Column</p>

<p>AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.</p>
<p>  CALL FUNCTION 'KD_GET_FILENAME_ON_F4'</p>
<p>    EXPORTING</p>
<p>       program_name  = syst-repid</p>
<p>       dynpro_number = syst-dynnr</p>
<p>   CHANGING</p>
<p>      file_name  = p_file</p>
<p>   EXCEPTIONS</p>
<p>     mask_too_long = 1</p>
<p>     OTHERS  = 2.</p>

<p> IF sy-subrc <> 0.</p>
<p>    MESSAGE e999(b1) WITH 'Issue with getting filename:' sy-subrc.</p>
<p> ENDIF.</p>

<p>START-OF-SELECTION.</p>
<p>* Get TAB-sign for separation of fields</p>
<p> CLASS cl_abap_char_utilities DEFINITION LOAD.</p>
<p> ld_separator = cl_abap_char_utilities=>horizontal_tab.</p>

<p>* open file in Excel</p>
<p> IF application-header = space OR application-handle = -1.</p>
<p>    CREATE OBJECT application 'Excel.Application'.</p>
<p>    m_message.</p>
<p> ENDIF.</p>
<p> CALL METHOD OF application 'Workbooks' = workbook.</p>
<p> m_message.</p>
<p> lv_filename = p_file.</p>
<p> CALL METHOD OF workbook 'Open' EXPORTING #1 = lv_filename.</p>
<p> m_message.</p>
<p> GET PROPERTY OF  application 'ACTIVESHEET' = worksheet.</p>
<p> m_message.</p>

<p>* Get top left cell</p>
<p> CALL METHOD OF worksheet 'Cells' = h_cell</p>
<p>     EXPORTING #1 = p_row_st #2 = p_col_st.</p>
<p> m_message.</p>

<p>* Get bottom right cell</p>
<p> CALL METHOD OF worksheet 'Cells' = h_cell1</p>
<p>     EXPORTING #1 = p_row_en #2 = p_col_en.</p>
<p> m_message.</p>

<p>* Mark range from top left to bottom right</p>
<p> CALL METHOD  OF worksheet 'RANGE' = range</p>
<p>     EXPORTING #1 = h_cell #2 = h_cell1.</p>
<p> m_message.</p>

<p>* Select range</p>
<p> CALL METHOD OF range 'SELECT'.</p>
<p> m_message.</p>

<p>* copy range into Clipboard</p>
<p> CALL METHOD OF range 'COPY'.</p>
<p> m_message.</p>

<p>* read clipboard into ABAP</p>
<p> CALL METHOD cl_gui_frontend_services=>clipboard_import</p>
<p>     IMPORTING</p>
<p>       data  = excel_tab</p>
<p>     EXCEPTIONS</p>
<p>       cntl_error  = 1</p>
<p>       error_no_gui  = 2</p>
<p>       not_supported_by_gui = 3</p>
<p>       OTHERS  = 4.</p>
<p> IF sy-subrc <> 0.</p>
<p>     MESSAGE e999(b1) WITH 'Issue importing clipboard:' sy-subrc.</p>
<p> ENDIF.</p>

<p> PERFORM convert_excel TABLES excel_tab intern</p>
<p>     USING  ld_separator.</p>

<p> IF excel_tab[] IS NOT INITIAL.</p>
<p>     CLEAR: lt_itab_table[].</p>
<p>     LOOP AT excel_tab INTO ls_excel_tab.</p>
<p>         ls_string = ls_excel_tab.</p>
<p>         SPLIT ls_string AT ld_separator </p>
<p>             INTO ls_itab_table-col1 ls_itab_table-col2 ls_itab_table-col3.  </p>
<p>                   "Hard-coded for easy reading - Make dynamic</p>
<p>        APPEND ls_itab_table TO lt_itab_table.</p>
<p>        CLEAR: ls_itab_table.</p>
<p>     ENDLOOP.</p>
<p> ENDIF.</p>

<p>* clear clipboard</p>
<p> REFRESH excel_tab.</p>
<p> CALL METHOD cl_gui_frontend_services=>clipboard_export</p>
<p>     IMPORTING</p>
<p>         data  = excel_tab</p>
<p>     CHANGING</p>
<p>          rc  = ld_rc</p>
<p>     EXCEPTIONS</p>
<p>         cntl_error  = 1</p>
<p>         error_no_gui  = 2</p>
<p>         not_supported_by_gui = 3</p>
<p>         OTHERS  = 4.</p>

<p>END-OF-SELECTION.</p>

<p>*** Main program</p>
<p> IF lt_itab_table IS NOT INITIAL.</p>
<p>     REFRESH lt_fieldcatalog.</p>
<p>     CLEAR lt_fieldcatalog.</p>
<p>     lt_fieldcatalog-fieldname  = 'Col1'.</p>
<p>     lt_fieldcatalog-seltext_m  = 'Column 1'.</p>
<p>     lt_fieldcatalog-col_pos  = 1.</p>
<p>     APPEND lt_fieldcatalog.</p>
<p>     CLEAR  lt_fieldcatalog.</p>

<p>     lt_fieldcatalog-fieldname  = 'Col2'.</p>
<p>     lt_fieldcatalog-seltext_m  = 'Column 2'.</p>
<p>     lt_fieldcatalog-col_pos  = 2.</p>
<p>     APPEND lt_fieldcatalog.</p>
<p>     CLEAR  lt_fieldcatalog.</p>

<p>     lt_fieldcatalog-fieldname  = 'Col3'.</p>
<p>     lt_fieldcatalog-seltext_m  = 'Column 3'.</p>
<p>     lt_fieldcatalog-col_pos  = 3.</p>
<p>     APPEND lt_fieldcatalog.</p>
<p>     CLEAR  lt_fieldcatalog.</p>

<p>     CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'</p>
<p>         EXPORTING</p>
<p>             i_callback_program = sy-repid</p>
<p>             is_layout  = ls_gd_layout</p>
<p>             it_fieldcat  = lt_fieldcatalog[]</p>
<p>         TABLES</p>
<p>             t_outtab  = lt_itab_table</p>
<p>         EXCEPTIONS</p>
<p>             program_error  = 1</p>
<p>             OTHERS  = 2.</p>
<p>     IF sy-subrc NE  0.</p>
<p>         WRITE:/ sy-subrc.</p>
<p>     ENDIF.</p>
<p>* quit excel and free ABAP Object - unfortunately, this does not kill the excel process</p>
<p>     CALL METHOD OF application 'QUIT'.</p>
<p>     m_message.</p>
<p>* to kill the Excel process it's necessary to free all used objects</p>
<p>     FREE OBJECT h_cell.  m_message.</p>
<p>     FREE OBJECT h_cell1.  m_message.</p>
<p>     FREE OBJECT range.  m_message.</p>
<p>     FREE OBJECT worksheet.  m_message.</p>
<p>     FREE OBJECT workbook.  m_message.</p>
<p>     FREE OBJECT application.  m_message.</p>
<p> ENDIF.</p>

<p>*&---------------------------------------------------------------------*</p>
<p>*&  Form  CONVERT_EXCEL</p>
<p>*&---------------------------------------------------------------------*</p>
<p>FORM convert_excel TABLES i_tab TYPE ty_t_sender</p>
<p>                                                   i_intern  TYPE ty_t_itab</p>
<p>                                     USING  i_separator TYPE c.</p>

<p> DATA: </p>
<p>    l_sic_tabix LIKE sy-tabix,</p>
<p>    l_sic_col    TYPE kcd_ex_col,</p>
<p>    l_fdpos     LIKE sy-fdpos.</p>

<p> REFRESH i_intern.</p>

<p> LOOP AT i_tab.</p>
<p>     l_sic_tabix = sy-tabix.</p>
<p>     l_sic_col = 0.</p>

<p>     WHILE i_tab CA i_separator.  "#EC CI_NESTED</p>
<p>         l_fdpos = sy-fdpos.</p>
<p>         l_sic_col = l_sic_col + 1.</p>
<p>         PERFORM line_to_cell_separat TABLES i_intern</p>
<p>                                                               USING  i_tab l_sic_tabix l_sic_col</p>
<p>                                                                             i_separator l_fdpos.</p>
<p>     ENDWHILE.</p>

<p>     IF i_tab <> space.</p>
<p>         CLEAR i_intern.</p>
<p>         i_intern-row = l_sic_tabix.</p>
<p>         i_intern-col = l_sic_col + 1.</p>
<p>         i_intern-value = i_tab.</p>
<p>         APPEND i_intern.</p>
<p>     ENDIF.</p>
<p> ENDLOOP.</p>

<p>ENDFORM.</p>

<p>*&---------------------------------------------------------------------*</p>
<p>FORM line_to_cell_separat TABLES i_intern  TYPE ty_t_itab</p>
<p>                                                USING  i_line</p>
<p>                                                              i_row  LIKE sy-tabix</p>
<p>                                                             ch_cell_col TYPE kcd_ex_col</p>
<p>                                                             i_separator TYPE c</p>
<p>                                                             i_fdpos  LIKE sy-fdpos.</p>

<p> DATA: l_string  TYPE ty_s_senderline,</p>
<p>            l_sic_int  TYPE i.</p>

<p> CLEAR i_intern.</p>
<p> l_sic_int = i_fdpos.</p>
<p> i_intern-row = i_row.</p>
<p> l_string = i_line.</p>
<p> i_intern-col = ch_cell_col.</p>

<p> IF ( i_separator = ';' OR  i_separator = ',' ) AND l_string(1) = gc_esc.</p>
<p>     PERFORM line_to_cell_esc_sep USING l_string l_sic_int i_separator</p>
<p>                                                                         i_intern-value.</p>
<p> ELSE.</p>
<p>     IF l_sic_int > 0.</p>
<p>         i_intern-value = i_line(l_sic_int).</p>
<p>     ENDIF.</p>
<p> ENDIF.</p>

<p> IF l_sic_int > 0.</p>
<p>     APPEND i_intern.</p>
<p> ENDIF.</p>
<p> l_sic_int = l_sic_int + 1.</p>
<p> i_line = i_line+l_sic_int.</p>

<p>ENDFORM.</p>

<p>*&---------------------------------------------------------------------*</p>
<p>FORM line_to_cell_esc_sep USING i_string</p>
<p>                                                             i_sic_int  TYPE i</p>
<p>                                                             i_separator  TYPE c</p>
<p>                                                             i_intern_value TYPE ty_d_itabvalue.</p>
<p> </p>
<p>DATA: </p>
<p>    l_int  TYPE i,</p>
<p>    l_cell_end(2).</p>

<p> FIELD-SYMBOLS: <l_cell>.</p>

<p> l_cell_end = gc_esc.</p>
<p> l_cell_end+1 = i_separator .</p>

<p> IF i_string CS gc_esc.</p>
<p>      i_string = i_string+1.</p>
<p>      IF i_string CS l_cell_end.</p>
<p>           l_int = sy-fdpos.</p>
<p>           ASSIGN i_string(l_int) TO <l_cell>.</p>
<p>           i_intern_value = <l_cell>.</p>
<p>           l_int = l_int + 2.</p>
<p>           i_sic_int = l_int.</p>
<p>           i_string = i_string+l_int.</p>
<p>     ELSEIF i_string CS gc_esc.</p>
<p>           l_int = sy-fdpos.</p>
<p>          ASSIGN i_string(l_int) TO <l_cell>.</p>
<p>          i_intern_value = <l_cell>.</p>
<p>          l_int = l_int + 1.</p>
<p>          i_sic_int = l_int.</p>
<p>          i_string = i_string+l_int.</p>
<p>          l_int = strlen( i_string ).</p>
<p>          IF l_int > 0 . </p>
<p>               MESSAGE x001(zapo) . </p>
<p>         ENDIF.</p>
<p>     ELSE.</p>
<p>          MESSAGE x001(zapo) .</p>
<p>     ENDIF.</p>
<p> ENDIF.</p>
<p>ENDFORM.</p>]]></content:encoded></item><item><title><![CDATA[5 Key issues found in the Food Supply Chain!]]></title><description><![CDATA[This in-depth article covers the 5 key issues that the Food Supply Chain faces in today's economy. Insightful commentary and suggestions...]]></description><link>https://www.erpgenie.com/post/5-key-issues-found-in-the-food-supply-chain</link><guid isPermaLink="false">5db228da6758db0017047c44</guid><category><![CDATA[Supply Chain]]></category><category><![CDATA[EM]]></category><category><![CDATA[GTT]]></category><category><![CDATA[EDI]]></category><category><![CDATA[GBT]]></category><category><![CDATA[TM]]></category><category><![CDATA[IoT]]></category><category><![CDATA[Blockchain]]></category><category><![CDATA[Traceability]]></category><pubDate>Thu, 24 Oct 2019 23:56:05 GMT</pubDate><enclosure length="0" type="image/png" url="https://static.wixstatic.com/media/a6beaa_ad2a69bec84343fca84cc6dae4c5806e~mv2.png/v1/fit/w_1000,h_742,al_c,q_80/file.png"/><dc:creator/><content:encoded><![CDATA[<p>With every Supply Chain we are striving to provide for the following:</p><ul>
  <li>The <strong>right product</strong> in</li>
  <li>The <strong>right quantity</strong> at</li>
  <li>The <strong>right time</strong> with </li>
  <li>The <strong>right paperwork</strong> at </li>
  <li>The <strong>lowest possible cost</strong> with</li>
  <li>The <strong>least impact</strong> to the environment and people</li>
</ul><p>The Food Supply Chain is no different and is getting more and more challenging as consumer expectations continue to grow. The internet coupled with the global marketplace has led to these increased consumer expectations and there is no slowing of these increasing expectations.</p>

<p>What are these current consumer expectation for their food needs?</p><ul>
  <li>WHAT - They want worldwide exotic food, not just their locally produced product</li>
  <li>GOOD QUALITY: They want freshly picked or harvested product</li>
  <li>WHEN: Available throughout the year - Avocado on your toast every morning!</li>
  <li>HOW MUCH: Low cost, it needs to fit within their budget</li>
  <li>FEEL GOOD, DO GOOD: Be sustainably, legally and responsibly grown and serviced - Consumers are increasingly becoming better custodians of the planet</li>
  <li>SAFETY: Foods are what they claim to be and are from where they claim to be from - Consumers would like to know what they are putting in their body is safe</li>
</ul><p>These expectations have the following impact on the Supply Chain:</p><ul>
  <li>Geographical boundaries are being forced to expand. E.g. If you supply avocados to a retailer then you need a grower from Peru to provide avocados between April and September, but then you need a grower from Columbia or Chile who will produce between September and June. </li>
  <li>Different geographies imply different regulations, skillsets, support services, currencies, languages, cultures all of which play a role in further complicating an already complicated Supply Chain - How can you keep everyone happy and still make a profit? This is the challenge…</li>
  <li>Determining what the "right" product is for the consumer implies that organizations need to "test" consumer adoption by quickly setting up a new Supply Chain to get the product on to shelves to begin measuring success / failure ASAP - Time to market is critical</li>
  <li>To get the right quantity of product to the consumer implies that organizations need to quickly adjust to changes in demand and supply - Balancing Demand with the Supply is the key to having the right quantity at the right time for the consumer - In a global Supply Chain this is far easier said than done</li>
  <li>Paperwork / traceability of the transactions that have taken place between farm and fork are often overlooked but are becoming increasingly more important and even legal requirements in certain counties</li>
  <li>As a Supply Chain extends so does the number of "touches" to a product. More participants are involved and each participant adds to the cost of the end product due to transportation, handling and storage costs</li>
</ul><p><em>A 2015 published study "Addressing Food Supply Chain and Consumption Inefﬁciencies: Potential for Climate Change Mitigation"  by Stephen D Porter and David S Reay (available at Springer via: </em><a href="http://dx.doi.org/10.1007/s10113-015-0783-4" target="_top" rel="noopener"><em>http://dx.doi.org/10.1007/s10113-015-0783-4</em></a><em>) said:</em></p><blockquote>"Globally, more than 30 % of all food that is produced is ultimately lost and/or wasted through inefficiencies in the food supply chain" </blockquote>
<blockquote>"In the developed world this wastage is centred on the last stage in the supply chain; the end-consumer throwing away food that is purchased but not eaten. In contrast, in the developing world the bulk of lost food occurs in the early stages of the supply chain (production, harvesting and distribution)." </blockquote><p>Before we tackle some of the top 5 issues (in our opinion) that face the Supply Chain today, we first need to understand what we are looking at. The Food Chain typically comprises of the following phases:</p><ul>
  <li>Sourcing raw materials - Buyer</li>
  <li>Producing raw materials - Farmer</li>
  <li>Processing of raw materials in to ingredients - Processor</li>
  <li>Manufacturer of food product - Food Manufacturer</li>
  <li>Packaging and Further Processing - Packager / Processor</li>
  <li>Storage / Refrigeration - Warehousing / Cold storage</li>
  <li>Wholesale distribution to retailers - Wholesaler</li>
  <li>Retail redistribution to consumers - Retailer</li>
  <li>Consumer</li>
</ul><figure><img src="https://static.wixstatic.com/media/a6beaa_ad2a69bec84343fca84cc6dae4c5806e~mv2.png/v1/fit/w_1000,h_742,al_c,q_80/file.png" title="Simple Food Supply Chain" alt="Simple Food Supply Chain"></figure><p>Between each phase is a process of transporting and storage of the product in exchange for currency.  In addition, quality control is required at several points in the process. Full documentation of all financial transactions, product movements, inspections etc… needs to accompany the product on its journey through the Supply Chain. </p>

<p>A disruption in any one of these phases could ultimately impact one of the consumer expectations mentioned above. The organization that manages their Food Chain in the most efficient way will lead the way in their market.</p>

<p>Now that we understand some of the players and the requirements of the food chain it's time to delve in to the 5 key issues that face the Food Supply Chain today…</p>

<h2><strong>#1 - Lack of Supply Chain visibility and traceability</strong></h2><hr><p>First let's tackle visibility as an issue across the extended Supply Chain. As a product moves through the Supply Chain certain "events" may be attributed to it. E.g. Planted, Harvested, Packed, Sold, Purchased, Scrapped, Issued, Received, Inspected, Produced, … These Supply Chain events can be "Expected" events (i.e. events that a product would normally be expected to go through - E.g. Planted or Harvested) or "Unexpected" (i.e. events that a typical product would not normally be expected to go through - E.g. Scrapped or Quality Inspection Failed).</p>
<p>Visibility of the end-to-end Supply Chain can be described as having a view of the Supply Chain events pertaining to a particular product (<a href="https://www.erpgenie.com/post/sap-track-and-trace-inbound-logistics" target="_blank" rel="noopener"><u>inbound</u></a> and <a href="https://www.erpgenie.com/post/sap-track-and-trace-outbound-logistics" target="_blank" rel="noopener"><u>outbound</u></a> logistics). This visibility is what the consumer is demanding in today's world and it is also what is needed by the product provider to ensure the <strong>right produc</strong>t is delivered in the <strong>right quantity</strong> at the <strong>right time</strong> with the <strong>right paperwork</strong> at the <strong>lowest possible cost</strong> with the <strong>least impact</strong> to the environment and people.</p>

<p>Next let's tackle traceability, which is the ability to track and trace a product through the entire Supply Chain process (i.e. Farm to Fork process). What is the difference, if any, between "Track" and "Trace"?</p><ul>
  <li><strong>Track</strong> - Represents the current or <strong>present status</strong> of a product - Where is it now, What condition is it in, Who has it, Where is it going to, …</li>
  <li><strong>Trace</strong> - Represents the historical or <strong>past statuses</strong> of a product - Where has it been, What conditions has it been in, Who has handled it, … This represents the genealogy of a product and is of most interest to the consumer and the regulatory authorities requiring this detail</li>
</ul><p>Consumers are demanding to know where all their products, and their ingredients, have come from and want to know that they were responsibly, safely and securely handled along their journey in the Supply Chain.</p>
<h3><em>THE ISSUE:</em></h3><ul>
  <li>There are "holes" in the reporting of Supply Chain events from the Supply Chain partners - Not knowing of a potential Supply Chain disruption does not provide an opportunity to recover from the situation - Partners are not reporting all the needed Supply Chain events either because they don't have the technology to do so or it is time or cost prohibitive. Traceability could ultimately be broken if there are Supply Chain events that are not reported</li>
  <li>The timeliness of the reporting of these events is a concern - The late reporting of issues or product status leads to a delay in responding to potential Supply Chain disruptions or exceptions</li>
  <li>The accuracy of the data reporting in each Supply Chain event is a concern - Responses to Supply Chain deviations from the plan are only as good as the data provided in the plan and the data reported against the plan (i.e. Supply Chain events). These issues could lead to risks that have legal consequences.</li>
  <li>If a consumer does not trust the data and product provided they could lose confidence in the product brand leading to reduced sales and profits.</li>
</ul><h3><em>THE SOLUTION:</em></h3><ul>
  <li>Extract all relevant Supply Chain events from your ERP system (E.g. SAP ERP) for both planning and execution data</li>
  <li>Contract with all your partners to require the timely, accurate reporting of all relevant Supply Chain events at the needed level (i.e. either batch or serialized level)</li>
  <li>Measure partner compliance for against the plan at Supply Chain execution time</li>
  <li><a href="https://www.erpgenie.com/post/17-edi-messages-critical-to-deploying-a-best-in-class-procure-to-pay-process" target="_blank" rel="noopener"><u>Enable electronic transfer of data</u></a> to record transactions between Supply Chain partners (E.g. EDI, Supply Chain marketplace)</li>
  <li>Consume this data in a solution designed to process Supply Chain events (E.g. <a href="https://www.erpgenie.com/sap-em" target="_blank" rel="noopener"><u>SAP Event Management</u></a> or <a href="https://www.erpgenie.com/post/understanding-sap-global-track-and-trace" target="_blank" rel="noopener"><u>SAP Global Track and Trace</u></a>, <a href="https://www.erpgenie.com/post/what-is-sap-global-batch-tractability-sap-gbt" target="_blank" rel="noopener"><u>SAP Global Batch Traceability</u></a>) - Enable visibility reporting and Exception Management to proactively address and make visible Supply Chain disruptions</li>
  <li>Consider adopting several emerging technologies to ease the process and improve efficiency and accuracy - <a href="https://www.erpgenie.com/post/the-internet-of-things-changes-the-game-for-hamburg-port-authority" target="_blank" rel="noopener"><u>IOT</u></a> devices to track movements and product conditions, Consortium <a href="https://www.erpgenie.com/post/sap-and-the-blockchain" target="_blank" rel="noopener"><u>Blockchain</u></a> solutions (an immutable ledger of transactions) for sharing and reporting industry common transactions that are of interest to regulatory authorities</li>
</ul><figure><img src="https://static.wixstatic.com/media/a6beaa_fbcd49d3133d4fc88b8df80e4354abc0~mv2.png/v1/fit/w_1000,h_946,al_c,q_80/file.png" title="Supply Chain Visibility and Traceability" alt="Supply Chain Visibility and Traceability"></figure><p>In the above diagram you can see how each partner sends their Supply Chain events to a solution containing Visibility and Traceability functionality. This enables the consumer and regulatory authorities to view this data at any stage within the Supply Chain. This is powerful...</p>
<h3><em>THE BENEFITS OF A TRACEABLE SUPPLY CHAIN:</em></h3><ul>
  <li>Enhances food safety</li>
  <li>Enables regulatory compliance</li>
  <li>Collapses the Supply Chain by allowing for the prompt reaction and potential correction to Supply Chain disruptions</li>
  <li>Improves brand integrity</li>
  <li>Increases customer satisfaction and loyalty</li>
</ul>
<h2><strong>#2 - Challenges with maintaining food safety</strong></h2><hr><p>It is only natural that consumers are wanting to consume high-quality safe products and not inferior. The consumer also needs enough information to know that what they are consuming is actually what they are expecting to consume. Fake products or ingredients could be ingested in to the Supply Chain at many points along the way. These could prove harmful to the consumer.</p><figure><img src="https://static.wixstatic.com/media/669b76_e4aec64242fa4da7940e7d95f57e377c~mv2.jpg/v1/fit/w_398,h_398,al_c,q_80/file.png"  ></figure><h3><em>THE ISSUE:</em></h3><ul>
  <li>Counterfeiting practices insert fake products or ingredients in to the Supply Chain without detection</li>
  <li>Bad warehousing practices allows for the deterioration of the quality of product - non-refrigeration, mis-handling product, … </li>
  <li>Poor transportation practices also allow for the deterioration of the quality of product - Delays in transport, non-refrigeration, mis-handling product, … </li>
  <li>Poor weather can adversely affect the quality of the product</li>
  <li>Any impact to product quality that could impact food safety concerns could lead to a product recall</li>
</ul><h3><em>THE SOLUTION:</em></h3><ul>
  <li>Source and select the best quality raw materials from reputable suppliers (<a href="https://www.erpgenie.com/post/17-edi-messages-critical-to-deploying-a-best-in-class-procure-to-pay-process" target="_blank" rel="noopener"><u>SAP Procure to Pay process</u></a>)</li>
  <li>Implement production processes according to best practice international standards - Test and prove out these processes - Be able to demonstrate that you have tested and proven the process (SAP Manufacturing process)</li>
  <li>Ensure quality inspections are conducted by accredited laboratories (<a href="https://www.erpgenie.com/post/sap-quality-management-faqs" target="_blank" rel="noopener"><u>SAP Quality Management</u></a>)</li>
  <li>Capture all the plan and execution detail for the above processes in your Supply Chain visibility solutions (SAP Event Management or SAP Global Track and Trace) </li>
  <li>Select the correct packaging to ensure product freshness and safety - Ensure labeling of the product is accurate and complete (SAP Auto-ID Infrastructure )</li>
  <li>Ensure the logistics (transportation and storage) of the product is handled by folks that are experienced in food handling (SAP Extended Warehouse Management, <a href="https://www.erpgenie.com/post/highlights-of-sap-transportation-management-9-5" target="_blank" rel="noopener"><u>SAP Transportation Management</u></a>, <a href="https://www.erpgenie.com/post/sap-global-trade-services-gts-an-overview" target="_blank" rel="noopener"><u>SAP Global Trade Services</u></a>)</li>
</ul><h3><em>THE BENEFITS OF A SAFE SUPPLY CHAIN:</em></h3><ul>
  <li>Reduction in product recalls - recalls can be very costly. If a recall is unavoidable then having a fully traceable Supply Chain will allow for a targeted recall (i.e. just recall the product that is actually effected and not ALL the product)</li>
  <li>Enhanced food safety</li>
  <li>Improves brand integrity</li>
  <li>Increases customer satisfaction and loyalty</li>
</ul>
<h2><strong>#3 - Challenges with partner collaboration</strong></h2><hr><p>The extended Supply Chain can involve many partners across many regions who speak many languages, use various currencies, operate under diverse cultures and legal requirements. This is a serious challenge for any Supply Chain that is trying to plug the "holes" and receive ALL Supply Chain related events accurately, on time and with all the needed documentation. In order to achieve that elusive efficient Supply Chain, ALL applicable partners need to collaborate in a timely, transparent manner.</p><figure><img src="https://static.wixstatic.com/media/a6beaa_42218185ae7f42c5b47daffe5fcf2293~mv2_d_5361_2523_s_4_2.jpg/v1/fit/w_1000,h_1000,al_c,q_80/file.png"  ></figure><h3><em>THE ISSUE:</em></h3><ul>
  <li>Partners do not communicate in full or accurately about their part of the Supply Chain process</li>
  <li>Partners are slow to be on-boarded in order to be able to participate in the Supply Chain</li>
  <li>Legal requirements for partners, if applicable, are hard to enforce</li>
  <li>Partner responsiveness to questions or issues is slow</li>
</ul><h3><em>THE SOLUTION:</em></h3><ul>
  <li>Provide a partner collaboration portal (E.g. SAP Ariba Network or SAP Supplier Relationship Management) for partners to register Supply Chain events manually</li>
  <li>Enable automation for all Supply Chain events to and from partners (E.g. SAP EDI with Workflow enabled error handling) for automated handling</li>
  <li>Leverage Blockchain technology to capture key Supply Chain events between partners - These are typically only the transactions that involve change of ownership or change of location - Partners can freely interact with the Blockchain from within their own ERP systems</li>
</ul><h3><em>THE BENEFITS OF COLLABORATION:</em></h3><ul>
  <li>A complete end-to-end view of the Supply Chain is attainable which allows for the provision of a complete traceability record for food product</li>
  <li>Improved quality of food is a by-product of good collaborative communication between you and your suppliers</li>
  <li>Minimizes the occurrence of shortages or overages in the different phases of the Supply Chain</li>
  <li>Minimizes the impact of Supply Chain disruptions due to the early awareness of the issue - This is often termed "Time to Insight" - The time between when an issue occurs and when it is discovered. A company would naturally want to minimize this time.</li>
</ul>
<h2><strong>#4 - Poor or lack of Inventory Management practices</strong></h2><hr><p>All along the extended Supply Chain each partner is having to deal with inventory - Receiving deliveries, storing it, consuming it, delivering it. The ultimate challenge for inventory management is to thread the needle between Supply and Demand. Best case scenario is matching Supply to the Demand - This is a well-balanced Supply Chain.</p>
<p>Timing is critical in the food industry because too much inventory could invariably lead to food that goes off / rotten leading to waste. Off course having too little stock on hand will lead to lower customer satisfaction and if you try to expedite inventory to meet your demand this will invariably lead to increased freight costs.</p><figure><img src="https://static.wixstatic.com/media/669b76_4fa372276e604eac9531b6e27e24d7c8~mv2_d_5779_2084_s_2.jpeg/v1/fit/w_1000,h_1000,al_c,q_80/file.png"  ></figure><h3><em>THE ISSUE:</em></h3><ul>
  <li><a href="https://www.erpgenie.com/post/retailers-balancing-supply-chain" target="_blank" rel="noopener"><u>Too little stock</u></a> on hand to meet the consumer demand</li>
  <li><a href="https://www.erpgenie.com/post/retailers-balancing-supply-chain" target="_blank" rel="noopener"><u>Too much stock</u></a> on hand leading to product wastage</li>
  <li>Increased costs to expedite receiving of goods to match demand</li>
</ul><h3><em>THE SOLUTION:</em></h3><ul>
  <li>Deploy good inventory management best practices to match Supply and Demand up and down the Supply Chain</li>
  <li>Manage your master data and business rules in the system - let your ERP system do the work for you (E.g. SAP ERP MRP)</li>
  <li>Establish cross-functional teams to deal with daily, weekly and ad-hoc exceptions</li>
  <li>Automate inbound and outbound communication with partners (Carriers and Suppliers) - <a href="https://www.erpgenie.com/post/leverage-sap-em-and-edi-to-track-shipments" target="_blank" rel="noopener"><u>SAP EDI</u></a> - This gives accurate visibility in to when product will be arriving at the warehouse or factory</li>
</ul><h3><em>BENEFITS OF GOOD INVENTORY MANAGEMENT:</em></h3><ul>
  <li>Reduction in lead time</li>
  <li>Reduction of inventory (quantity and value) - Less warehouse space required</li>
  <li>Improved supplier relationships - Suppliers do want to provide good quality on time (in general) and providing them with timely accurate forecast data goes a long way to easing their pain in the Supply Chain - The can do better capacity planning</li>
</ul>
<h2><strong>#5 - Rising Costs</strong></h2><hr><p>As consumer expectations for better product at lower costs grow, the desire to minimize your costs increases. Supply Chain costs account for a large portion of the costs associated with a product sale. </p><figure><img src="https://static.wixstatic.com/media/669b76_c3a77082ebec4d6eab8ebd6854dc2689~mv2_d_4912_3264_s_4_2.jpg/v1/fit/w_1000,h_1000,al_c,q_80/file.png"  ></figure><p>These costs include:</p><ul>
  <li>Transportation costs: fuel, trucks, services</li>
  <li>Logistics: warehousing / storage, freight handling</li>
  <li>Employees and contractors: technicians, warehouse clerks, drivers, buyers</li>
  <li>Energy and utilities</li>
  <li>Technology: hardware, software - IOT, blockchain, robotics, 3D printing, ERP</li>
</ul><h3><em>THE ISSUE:</em></h3><ul>
  <li>In order to be profitable in a highly competitive, global economy companies have to sell the best product at the lower cost than it takes to provide the product. In order to make more profit a company must either generate more revenue or reduce the costs. The Supply Chain is focused on the latter. Reducing operating costs will ultimately lead to a more profitable product line - The Supply Chain costs are significant and reducing them are a challenge</li>
</ul><h3><em>THE SOLUTION:</em></h3><ul>
  <li>Understand all the costs in detail - Capture the planned cost and then measure the actuals against that plan - Evaluate and adjust accordingly for future runs (e.g. SAP ERP - FICO)</li>
  <li>Use technology for your benefit - IOT can play a significant role in understanding the logistics execution part of the Supply Chain which will allow you to accurately apportion costs to each phase</li>
  <li>Invest wisely in technology - Don't adopt every new technology - Do a Proof of Concept - Prove it out and only adopt that which shows benefit. Note that a good backbone of technology will help companies reduce time-to-market and withstand competition over time</li>
</ul><h3><em>THE BENEFITS OF LOWERING OPERATING COST:</em></h3><ul>
  <li>Increased profit margin</li>
  <li>Increased customer satisfaction (if this cost saving is passed on to the consumer)</li>
</ul><h2><strong>IN CONCLUSION</strong></h2><hr><p>There are a couple of key takeaways here that are worth mentioning and then also a few suggestions for expert resources that can help in each of these areas:</p><ul>
  <li>To gain full control of your Food Supply Chain you will need ALL Supply Chain events reported from ALL your partners in a timely, accurate and complete way
<em>- SAP technologies to leverage:</em> SAP EDI, SAP ERP, SAP Event Management / SAP Global Track and Trace, SAP Global Batch Traceability
<em>- SAP experts related to this field:</em> ERPGenie, the SAP visibility and traceability experts - <a href="http://www.erpgenie.com/" target="_blank" rel="noopener"><u>www.erpgenie.com</u></a></li>
  <li>To ensure food safety source the best quality from the best partners - Inspect and measure compliance up and down the Supply Chain
<em>- SAP technologies to leverage: </em>SAP Quality Management
<em>- SAP experts related to this field: </em>Quality Management Solutions - <a href="http://www.qmsinc.com/" target="_blank" rel="noopener"><u>www.qmsinc.com</u></a></li>
  <li>Ensure that Supply meets your Demand
<em>- SAP technologies to leverage: </em>SAP MRP (Material Requirements Planning), APO (Advanced Planning and Optimization) or SAP IBP (Integrated Business Planning)
<em>- SAP experts related to this field: </em>Transform - <a href="https://www.transformval.com/" target="_blank" rel="noopener"><u>www.transformval.com</u></a></li>
</ul><h2><strong>ABOUT THE AUTHOR</strong></h2><hr><figure><img src="https://static.wixstatic.com/media/a6beaa_ba112c18034d43c6a0b2d6ae7275e9ca~mv2.png/v1/fit/w_812,h_877,al_c,q_80/file.png"  ></figure><p>A 25 year SAP solution veteran and life-long student of Supply Chain, Computer Science and Emerging Technologies. Kevin is an evangelist in the Supply Chain Visibility  & Traceability areas and regularly gives talks on the topic at conferences around the world. He is a published author with a core focus on SAP Solution Architecture and Design. </p>

<p><em>See short bio</em> <a href="https://docs.wixstatic.com/ugd/a6beaa_87f6ca50883c44acac58b0def178d513.pdf" target="_blank" rel="noopener"><em><u>here</u></em></a> <em>and full resume</em> <a href="https://www.erpgenie.com/kevin-wilson" target="_top" rel="noopener"><em><u>here</u></em></a><em>.</em></p>]]></content:encoded></item><item><title><![CDATA[TIP: Parallel Processing Background Jobs]]></title><description><![CDATA[SAP reports that would otherwise run for a LONG time can implement parallel processing to help alleviate the issue.]]></description><link>https://www.erpgenie.com/post/tip-parallel-processing-background-jobs</link><guid isPermaLink="false">5d8cbdc7fb083c0017d3a132</guid><category><![CDATA[Tips]]></category><category><![CDATA[Development]]></category><pubDate>Thu, 26 Sep 2019 13:38:45 GMT</pubDate><enclosure length="0" type="image/png" url="https://static.wixstatic.com/media/a27d24_e959e26a72774199b83ac545bdc024c4~mv2_d_6000_4000_s_4_2.jpg/v1/fit/w_1000,h_1000,al_c,q_80/file.png"/><dc:creator/><content:encoded><![CDATA[<p>SAP reports that would otherwise run for a LONG time can implement parallel processing to help alleviate the issue. Parallel processing groups up chunks of work that is then executed by the available dialog work processes in SAP. It then also has the ability to collect the results and process accordingly. I used this technique to greatly speed up a time-sensitive revenue recognition process for a client of mine and it worked like a charm...</p>
<p>Parallel processing is implemented in ABAP  as a special variant of asynchonous RFC, not in the background processing system itself. </p>
<p>Note: It’s critical to use the correct variant for your parallel processing applications, namely CALL FUNCTION STARTING NEW TASK DESTINATION IN GROUP. Using any other variants of the asynchronous RFC circumvents the built-in safeguards and can lead to serious performance issues.</p>
<h3>How do you implement your own parallel processing report?</h3><ol>
  <li>Function Module: <strong>SPBT_INITIALIZE</strong> (Optional) - Used to determine the availability of resources (available work processes) for parallel processing. It can also be used to validate the parallel processing group that was specified (and set up using transaction RZ12)</li>
  <li>Decide on how many processes to use in parallel - <strong>Distribute your data evenly across the number of parallel threads</strong> you will use (ensuring not to use all the work processes). <strong>Loop through your data</strong> and create packets of data to pass to the Function Module in the manner described below. 
<em>Note</em>:  your RFC calls are processed in work processes of type DIALOG. The DIALOG limit on processing of one dialog step (by default 300 seconds, system profile parameter rdisp/max_wprun_time) applies to these RFC calls. Keep this limit in mind when you divide up data for parallel processing calls.
<em>Note</em>: only perform parallel processing if your data can be logically separated. i.e. data in one thread is not dependent on another thread's processing. 
<em>Note</em>: There is no guarantee that the threads will be executed in a particular order.</li>
  <li>Use ABAP pattern to call your Function Module (marked as externally callable) in parallel: <strong>CALL FUNCTION <your function> STARTING NEW TASK <your taskname> DESTINATION IN GROUP</strong> - The ABAP keyword implements parallel processing by dispatching asynchronous RFC calls to the servers that are available in the RFC server group specified for the processing. 
Note: This Function Module can not contain SUBMIT or CALL TRANSACTION calls within the code.</li>
  <li>Use ABAP keyword <strong>WAIT</strong>: This is needed if you wish to wait for all the asynchronous parallel tasks created with CALL FUNCTION to return their data. This is normally a requirement for orderly background processing. May be used only if the CALL FUNCTION includes the <strong>PERFORMING ON RETURN addition</strong>.</li>
  <li>ABAP keyword <strong>RECEIVE</strong>: This is needed if you wish to receive the results from each of the parallel RFCs. RECEIVE retrieves IMPORT and TABLE parameters as well as messages and return codes.</li>
</ol><p>The following functions are useful to enhance operational support for the solution - Making it production ready...</p><ul>
  <li>Call Function Module <strong>SPBT_GET_PP_DESTINATION</strong> (Optional) - Call immediately after the CALL FUNCTION keyword, in STEP 3 above, to get the name of the server on which the parallel processing task will be run.</li>
  <li>Call Function Module <strong>SPBT_DO_NOT_USE_SERVER</strong> (Optional) - Excludes a particular server from further use for processing parallel processing tasks. Note: This is better used in conjunction with function module SPBT_GET_PP_DESTINATION if it returns a failure (e.g. a server is not available for parallel processing due to a COMMUNICATION FAILURE).</li>
</ul><h3><strong>Here is a sample report from SAP to describe the process in detail</strong></h3><p> REPORT PARAJOB.
* Data declarations
DATA: GROUP LIKE RZLLITAB-CLASSNAME VALUE ' ',
    "Parallel processing group.
    "SPACE = group default (all servers)
  WP_AVAILABLE TYPE I,  "Number of dialog work processes available for parallel processing (free work processes)
  WP_TOTAL TYPE I,  "Total number of dialog work processes in the group
  MSG(80) VALUE SPACE,  "Container for error message in case of remote RFC exception.
  INFO LIKE RFCSI, C,  "Message text 
  JOBS TYPE I VALUE 10,  "Number of parallel jobs 
  SND_JOBS TYPE I VALUE 1,  "Work packets sent for processing   
  RCV_JOBS TYPE I VALUE 1,  "Work packet replies received
  EXCP_FLAG(1) TYPE C,  "Number of RESOURCE_FAILUREs 
  TASKNAME(4) TYPE N VALUE '0001',  "Task name (name of parallel processing work unit)
 </p>
<p> BEGIN OF TASKLIST OCCURS 10,  "Task administration
    TASKNAME(4) TYPE C,
    RFCDEST  LIKE RFCSI-RFCDEST,
    RFCHOST  LIKE RFCSI-RFCHOST, 
  END OF TASKLIST. 
* Optional call to SBPT_INITIALIZE to check the group in which parallel processing is to take place. Could be used to optimize sizing of work packets work / WP_AVAILABLE).
<strong>CALL FUNCTION 'SPBT_INITIALIZE'</strong>   
  <strong>EXPORTING</strong>    
     <strong>GROUP_NAME</strong>  <strong>= GROUP</strong> 
  "Name of group to check
  <strong>IMPORTING</strong>   
     <strong>MAX_PBT_WPS</strong>  <strong>= WP_TOTAL</strong>
  "Total number of dialog work processes available in group for parallel processing
     <strong>FREE_PBT_WPS</strong>   <strong>= WP_AVAILABLE</strong> 
  "Number of work processes available in group for parallel processing at this moment
  <strong>EXCEPTIONS</strong>   
     <strong>INVALID_GROUP_NAME</strong>  <strong>= 1</strong>
   "Incorrect group name; RFC group not defined. See transaction RZ12
     <strong>INTERNAL_ERROR</strong>  <strong>= 2</strong>
  "SAP system error; see the system log (transaction SM21) for diagnostic info 
     <strong>PBT_ENV_ALREADY_INITIALIZED</strong>  <strong>= 3</strong>
  "Function module may be called only once; is called automatically by the SAP system if you do not call before starting parallel processing 
     <strong>CURRENTLY_NO_RESOURCES_AVAIL = 4</strong>
  "No dialog work processes in the group are available; they are busy or server load is too high 
     <strong>NO_PBT_RESOURCES_FOUND</strong>  <strong>= 5</strong>
  "No servers in the group met the criteria of > two work processes defined. 
     <strong>CANT_INIT_DIFFERENT_PBT_GROUPS = 6</strong>
  "You have already initialized one group and have now tried initialize a different group.
     <strong>OTHERS</strong>  <strong>= 7..</strong> 
</p>
<p>CASE SY-SUBRC.
  WHEN 0.
  "Everything’s ok. Optionally set up for optimizing size of work packets.
  WHEN 1.
  "Non-existent group name.  Stop report.
      MESSAGE E836. "Group not defined.
  WHEN 2.
  "System error.  Stop and check system log for error analysis.
  WHEN 3.
  "Programming error.  Stop and correct program.
     MESSAGE E833. "PBT environment was already initialized.
  WHEN 4.
  "No resources: this may be a temporary problem.  You may wish to pause briefly and repeat the call.  Otherwise check your RFC group administration:  Group defined in accordance with your requirements?
     MESSAGE E837. "All servers currently busy.
  WHEN 5.
  "Check your servers, network, operation modes. 
  WHEN 6.
* Do parallel processing.  Use CALL FUNCTION STARTING NEW TASK
* DESTINATION IN GROUP to call the function module that does the
* work.  Make a call for each record that is to be processed, or
* divide the records into work packets.  In each case, provide the
* set of records as an internal table in the CALL FUNCTION
* keyword (EXPORT, TABLES arguments). 
DO.   
  <strong>CALL FUNCTION 'RFC_SYSTEM_INFO'</strong>  "Function module to perform in parallel 
    <strong>STARTING NEW TASK TASKNAME</strong>  "Name for identifying this RFC call
    <strong>DESTINATION IN GROUP group</strong>  "Name of group of servers to use for parallel processing. Enter group name exactly as it appears in transaction RZ12 (all caps).  You may use only one group name in a particular ABAP program.
    <strong>PERFORMING RETURN_INFO ON END OF TASK</strong>
  "This form is called when the RFC call completes. It can collect IMPORT and TABLES parameters from the called function with RECEIVE.
    <strong>EXCEPTIONS</strong> 
       <strong>COMMUNICATION_FAILURE = 1 MESSAGE msg</strong>
  "Destination server not reached or communication interrupted.  MESSAGE msg captures any message returned with this exception (E or A messages from the called FM, for example.  After exception 1 or 2, instead of aborting your program, you could use SPBT_GET_PP_DESTINATION and SPBT_DO_NOT_USE_SERVER to exclude this server from further parallel processing. You could then re-try this call using a different server.
       <strong>SYSTEM_FAILURE</strong>  <strong>= 2</strong>  <strong>MESSAGE msg</strong>
  "Program or other internal SAP error.  MESSAGE msg captures any message returned with this exception. 
       <strong>RESOURCE_FAILURE</strong>  <strong>= 3.</strong>  "No work processes are currently available.  Your program MUST handle this exception.
       <strong>YOUR_EXCEPTIONS</strong>  <strong>= X.</strong> "Add exceptions generated by the called function module here.  Exceptions are returned to you and you can respond to them here.
 
  CASE SY-SUBRC.   
  WHEN 0. 
  "Administration of asynchronous RFC tasks Save name of task...
     TASKLIST-TASKNAME = TASKNAME. 
  "... and get server that is performing RFC call.
  CALL FUNCTION 'SPBT_GET_PP_DESTINATION' 
    EXPORTING 
       RFCDEST = TASKLIST-RFCDEST 
    EXCEPTIONS 
       OTHERS  = 1.   </p>
<p>
  APPEND TASKLIST. 
  WRITE: /  'Started task: ', TASKLIST-TASKNAME COLOR 2. 
 
  TASKNAME = TASKNAME + 1. 
  SND_JOBS = SND_JOBS + 1. </p>
<p>
  "Mechanism for determining when to leave the loop.  Here, a simple counter of the number of parallel processing tasks.  In production use, you would end the loop when you have finished dispatching the data that is to be processed.</p>
<p>
  JOBS  = JOBS - 1.  "Number of existing jobs 
  IF JOBS = 0. 
     EXIT.  "Job processing finished 
  ENDIF. 
  WHEN 1 OR 2.
  "Handle communication and system failure.  Your program must catch these exceptions and arrange for a recoverable termination of the background processing job.  Recommendation:  Log the data that has been processed when an RFC task is started and when it returns, so that the job can be restarted with unprocessed data. 
  WRITE msg. 
  "Remove server from further consideration for parallel processing tasks in this program. Get name of server just called...
  CALL FUNCTION 'SPBT_GET_PP_DESTINATION' 
    EXPORTING   
        RFCDEST = TASKLIST-RFCDEST 
    EXCEPTIONS 
       OTHERS  = 1. 
  "Then remove from list of available servers.
  CALL FUNCTION 'SPBT_DO_NOT_USE_SERVER'
   IMPORTING
       SERVERNAME = TASKLIST-RFCDEST
   EXCEPTIONS
       INVALID_SERVER_NAME  = 1 
       NO_MORE_RESOURCES_LEFT  = 2 
  "No servers left in group.
       PBT_ENV_NOT_INITIALIZED_YET = 3
       OTHERS  = 4.</p>
<p>
  WHEN 3. 
  "No resources (dialog work processes) available at present.  You need to handle this exception, waiting and repeating the CALL FUNCTION until processing can continue or it is apparent that there is a problem that prevents continuation. 
  MESSAGE I837. "All servers currently busy. Wait for replies to asynchronous RFC calls.  Each reply should make a dialog work process available again.
  IF EXCP_FLAG = SPACE. 
      EXCP_FLAG = 'X'. 
  "First attempt at RESOURCE_FAILURE handling.  Wait until all RFC calls have returned or up to 1 second. Then repeat CALL FUNCTION. 
     WAIT UNTIL RCV_JOBS >= SND_JOBS UP TO '1' SECONDS. 
  ELSE. 
  "Second attempt at RESOURCE_FAILURE handling   
  WAIT UNTIL RCV_JOBS >= SND_JOBS UP TO '5' SECONDS. 
  "SY-SUBRC 0 from WAIT shows that replies have returned. 
  "The resource problem was therefore probably temporary
  "and due to the workload.  A non-zero RC suggests that
  "no RFC calls have been completed, and there may be
  "problems. 
  IF SY-SUBRC = 0. 
  CLEAR EXCP_FLAG.
  ELSE.  "No replies   
  "Endless loop handling 
  ... 
  ENDIF. 
  ENDIF.
  ENDCASE.   
ENDDO. 
... 
*
* Wait for end of job:  replies from all RFC tasks.
* Receive remaining asynchronous replies 
WAIT UNTIL RCV_JOBS >= SND_JOBS. 
LOOP AT TASKLIST. 
  WRITE:/  'Received task:', TASKLIST-TASKNAME COLOR 1, 
  30  'Destination: ', TASKLIST-RFCDEST COLOR 1. 
ENDLOOP. 
...
*
* This routine is triggered when an RFC call completes and
* returns.  The routine uses RECEIVE to collect IMPORT and TABLE
* data from the RFC function module. 
*
* Note that the WRITE keyword is not supported in asynchronous
* RFC.  If you need to generate a list, then your RFC function
* module should return the list data in an internal table.  You
* can then collect this data and output the list at the conclusion
* of processing. 
*
FORM RETURN_INFO USING TASKNAME. 
</p>
<p> DATA:  INFO_RFCDEST LIKE TASKLIST-RFCDEST.
</p>
<p> RECEIVE RESULTS FROM FUNCTION 'RFC_SYSTEM_INFO' 
  IMPORTING RFCSI_EXPORT = INFO  
  EXCEPTIONS 
  COMMUNICATION_FAILURE = 1 
  SYSTEM_FAILURE  = 2. 
   
  RCV_JOBS = RCV_JOBS + 1.  "Receiving data 
  IF SY-SUBRC NE 0. 
  * Handle communication and system failure 
  ...   
  ELSE. 
  READ TABLE TASKLIST WITH KEY TASKNAME = TASKNAME. 
  IF SY-SUBRC = 0.  "Register data 
  TASKLIST-RFCHOST = INFO_RFCHOST. 
  MODIFY TASKLIST INDEX SY-TABIX. 
  ENDIF. 
  ENDIF.   
... 
ENDFORM </p>]]></content:encoded></item><item><title><![CDATA[Understand which team does what in an EDI enabled process]]></title><description><![CDATA[Undertanding what roles the EDI and the busines team play in an EDI process. Described in detail.]]></description><link>https://www.erpgenie.com/post/understand-which-team-does-what-in-an-edi-enabled-process</link><guid isPermaLink="false">5d7b21cb994a440017d545c9</guid><category><![CDATA[Supply Chain]]></category><category><![CDATA[EDI]]></category><pubDate>Fri, 13 Sep 2019 05:55:08 GMT</pubDate><enclosure length="0" type="image/png" url="https://static.wixstatic.com/media/a6beaa_38c43596bf0946e3b155ea749c8d9de2~mv2_d_1547_1287_s_2.png/v1/fit/w_1000,h_1000,al_c,q_80/file.png"/><dc:creator>ERPGenie</dc:creator><content:encoded><![CDATA[<p>There is often confusion and misunderstanding around who is responsible for the various parts of an EDI enabled process.</p><blockquote>There is a common misperception that EDI is "technical" and that functional folks or the business are not involved. Nothing could be further from the truth...</blockquote><p>We will use a customer and supplier enable EDI process to describe who should do what... First up, a customer facing process.</p><figure><img src="https://static.wixstatic.com/media/a6beaa_38c43596bf0946e3b155ea749c8d9de2~mv2_d_1547_1287_s_2.png/v1/fit/w_1000,h_1000,al_c,q_80/file.png"  ></figure><h3>An <strong>outbound EDI message</strong> to a Customer (E.g. Customer Invoice - 810 message)</h3>
<p>(1) The <strong>EDI technical team</strong> is responsible for the following:</p><ul>
  <li>Developing the mapping template.</li>
  <li>Mapping of the IDoc (e.g. INVOIC) to the corresponding X12 (e.g. 810) or EDIFACT message.</li>
  <li>Transmitting the EDI message to the partner via a VAN, AS2, sFTP, ...)</li>
  <li>Receiving the EDI acknowledgement (997) back from the customer and processing it back to SAP (via STATUS IDoc)</li>
  <li>Process any technical issues while trying to communicate the message to the partner. E.g. syntax errors, communication error</li>
</ul><p>(2) The responsible <strong>business team</strong> (e.g. Accounts receivable for the Invoice) is responsible for the following:</p><ul>
  <li>Understand the needs of the customer in terms of EDI - Note: A customer typically dictates the format and content needed in the EDI process. They communicate their needs to us by means of a published EDI implementation guide.</li>
  <li>Process any functional errors that are received (typically via workflow) for the outbound message (IDoc in status 51). These are functional issues and relate to the requirements set out by the customer in their EDI specs (Log in to our <a href="https://www.erpgenie.com/file-share" target="_top" rel="noopener"><u>Documents</u></a> section to see example templates and guides)</li>
</ul><h3>An <strong>inbound EDI message</strong> from a Customer (E.g. Customer PO - 850 message)</h3>
<p>(1) The <strong>EDI technical team</strong> is responsible for the following:</p><ul>
  <li>Developing the mapping template.</li>
  <li>Mapping of the IDoc (e.g. ORDERS) from the corresponding X12 (e.g. 850) or EDIFACT message.</li>
  <li>Receiving the EDI message from the partner via a VAN, AS2, sFTP, ...)</li>
  <li>Sending the EDI acknowledgement (997) to the customer</li>
  <li>Process any technical issues while trying to post the message to SAP. E.g. syntax errors, bad partner profile.</li>
</ul><p>(2) The responsible <strong>business team</strong> (e.g. Sales rep for the Sales Order) is responsible for the following:</p><ul>
  <li>Understand the needs of the customer in terms of EDI</li>
  <li>Process any functional errors (E.g. missing PO number) that are encountered (typically via workflow) for the inbound message (IDoc in status 51). These are functional issues and relate to the requirements set out by the customer in their EDI specs.</li>
</ul><hr><p><em>And for a supplier process it is somewhat similar...</em></p>
<h3>An <strong>outbound EDI message</strong> to a Supplier (E.g. Purchase Order - 850 message)</h3>
<p>(1) The <strong>EDI technical team</strong> is responsible for the following:</p><ul>
  <li>Develop the implementation guide together with the business to encapsulate all the requirements for a smooth EDI process. Note: A good EDI process is only as good as the manual execution of the process in the system. i.e. If you have a poor business process then EDI won't fix it! In fact it may make it worse because it will highlight the issues more frequently. (Log in to our <a href="https://www.erpgenie.com/file-share" target="_top" rel="noopener"><u>Documents</u></a> section to see example templates and guides)</li>
  <li>Developing the mapping template.</li>
  <li>Mapping of the IDoc (e.g. ORDERS) to the corresponding X12 (e.g. 850) or EDIFACT message.</li>
  <li>Transmitting the EDI message to the partner via a VAN, AS2, sFTP, ...)</li>
  <li>Receiving the EDI acknowledgement (997) back from the customer and processing it back to SAP (via STATUS IDoc)</li>
  <li>Process any technical issues while trying to communicate the message to the partner. E.g. syntax errors, communication error</li>
</ul><p>(2) The responsible <strong>business team</strong> (e.g. Procurement for the PO) is responsible for the following:</p><ul>
  <li>Understand the EDI process and what was asked for in the EDI implementation guide - Note: We typically dictate the format and content needed in the EDI process to a supplier.</li>
  <li>Process any functional errors that are received (typically via workflow) for the outbound message (IDoc in status 51). These are functional issues and relate to the requirements set out in our EDI specs. E.g. missing terms or carrier</li>
</ul><h3>An <strong>inbound EDI message</strong> from a Supplier (E.g. Supplier ASN - 856 message)</h3>
<p>(1) The <strong>EDI technical team</strong> is responsible for the following:</p><ul>
  <li>Develop the implementation guide together with the business to encapsulate all the requirements for a smooth EDI process. </li>
  <li>Developing the mapping template.</li>
  <li>Mapping of the IDoc (e.g. DESADV) from the corresponding X12 (e.g. 856) or EDIFACT message.</li>
  <li>Receiving the EDI message from the partner via a VAN, AS2, sFTP, ...)</li>
  <li>Sending the EDI acknowledgement (997) to the customer</li>
  <li>Process any technical issues while trying to post the message to SAP. E.g. syntax errors, bad partner profile.</li>
</ul><p>(2) The responsible <strong>business team</strong> (e.g. WH rep for the Inbound Delivery) is responsible for the following:</p><ul>
  <li>Understand the EDI process and what was asked for in the EDI implementation guide</li>
  <li>Process any functional errors (E.g. missing tracking number or SCAC code) that are encountered (typically via workflow) for the inbound message (IDoc in status 51). These are functional issues .</li>
</ul><figure><img src="https://static.wixstatic.com/media/a6beaa_9170c511e96143018c21d84718781cb4~mv2_d_1547_1285_s_2.png/v1/fit/w_1000,h_1000,al_c,q_80/file.png"  ></figure><p>That was easy :)</p><hr><p>Note that the business folks are the most qualified to address functional issues found in the EDI process. The EDI team should not be responsible for correcting functional errors as they relate to business transactions. If the business is truly engaged and take ownership of the EDI process then there should be no problems addressing any issues.</p>

<p>With that being said you may begin to get a sense that EDI is far less technical than you would expect. I would suggest that 80% of the EDI process is business related. Business owns the partner relationship, executes the contracts, has the power to enforce compliance, decides on what functionality to provide to partners, verifies the validity of transactions, and finally.... they are the ones who hurt more if the EDI process does not work! Business should own the EDI process and the EDI team is an enabler for the process.</p>]]></content:encoded></item></channel></rss>