<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic ISU Function Module in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/isu-function-module/m-p/1475552#M223029</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;This is related to a function module in ISU.&lt;/P&gt;&lt;P&gt;Please tell me how the function module works -&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;" BAPI_BUS2002_SET_STATUS "&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What shall me the input parameters to get the output( the output will me changed status of the service order)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thx...&lt;/P&gt;&lt;P&gt;Paul&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 25 Aug 2006 10:52:08 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2006-08-25T10:52:08Z</dc:date>
    <item>
      <title>ISU Function Module</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/isu-function-module/m-p/1475552#M223029</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;This is related to a function module in ISU.&lt;/P&gt;&lt;P&gt;Please tell me how the function module works -&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;" BAPI_BUS2002_SET_STATUS "&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What shall me the input parameters to get the output( the output will me changed status of the service order)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thx...&lt;/P&gt;&lt;P&gt;Paul&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 25 Aug 2006 10:52:08 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/isu-function-module/m-p/1475552#M223029</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-08-25T10:52:08Z</dc:date>
    </item>
    <item>
      <title>Re: ISU Function Module</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/isu-function-module/m-p/1475553#M223030</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;check the Documentation of this BAPI in se37.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;FU BAPI_BUS2002_SET_STATUS
____________________________________________________
Text
Set/Reset Status for BUS2002 (Network)

Functionality
You can use the BAPI BAPI_BUS2002_SET_STATUS to revoke one system status (UNDO_SYSTEM_STATUS) and one user status (UNDO_USER_STATUS) respectively, or to set one system status (SET_SYSTEM_STATUS) and one user status (SET_USER_STATUS) respectively, in the network header(NUMBER).

At the same time, you can revoke one system status and one user status, or set one system status and one user status in a list of activities for the network.

The following system statuses are supported for the network header:

'REL' Released (I0002) set
'LKD' Locked (I0043) set/revoke
'TECO' Technically completed (I0045) set/revoke
'CLSD' Closed (I0046) set/revoke
'AALK' Account Assignment locked (I0064) set/revoke
'DLFL' Deletion flag (I0076) set/revoke
The following system statuses are supported for the network operations:

'REL' Released (I0002) set
'TECO' Technically completed (I0045) set/revoke
'CLSD' Closed (I0046) set/revoke
'AALK' Account Assignment locked (I0064) set/revoke
'DLFL' Deletion flag (I0076) set/revoke
'DSEX' Dates set by external system (I0029) set/revoke
User statuses can be set or revoked in accordance with the status profile assigned to the network header or network activities. They must be transferred via the key in the relevant log-on language.

The processing sequence is as follows:

1. Network header:
a) Revoke system status
b) Revoke user status
c) Set system status
d) Set user status
2. Network operations:
a) Revoke system status
b) Revoke user status
c) Set system status
d) Set user status
If you cannot set/revoke a system/user status, all of the other activities will still be executed.

The inheritance of statuses is not integrated between the project and the network. A status change only affects the current network and not any other assigned projects/WBS elements.

Milestone functions are not supported.

The call of the BAPI can be repeated until a LUW (Logical Unit of Work) is completed with the BAPIs BAPI_PS_PRECOMMIT and BAPI COMMIT WORK.


Notes
1. Definition "Processing Unit"
In the following, the term "processing unit" refers to a series of related processing steps.

The first step in a processing unit is initialization, which is done by calling the BAPI BAPI_PS_INITIALIZATION.
Afterwards, the individual BAPIs listed below can be used several times, if required.
The processing unit ends when the final precommit (call BAPI BAPI_PS_PRECOMMIT) is executed with a subsequent COMMIT WORK (for example, the statement COMMIT WORK, the BAPI "BAPI_TRANSACTION_COMMIT" or the BapiService.TransactionCommit method).

After the final COMMIT WORK, the next initialization opens a new processing unit via the BAPI "BAPI_PS_INITIALIZATION".

In principal, the following applies to each individual processing unit.


2. Creation of a Processing Unit
Each processing unit must be initialized by calling the BAPI "BAPI_PS_INITIALIZATION" once.

Afterwards, the following individual BAPIs can be used within a processing unit - they can also be used more than once, taking into account the "One-Project-Principle" explained below. This also means that an object created in the current processing unit by a CREATE-BAPI can be changed by a CHANGE-BAPI or STATUS-BAPI.

Except for the BAPIs explicitly named below, you can only call up BAPIs that execute GET methods or READ methods only. In particular, the BAPIs for confirming a network may not be used with the individual BAPIs named below!

Business Object ProjectDefinitionPI

BAPI Method 
BAPI_BUS2001_CREATE ProjectDefinitionPI.CreateSingle 
BAPI_BUS2001_CHANGE ProjectDefinitionPI.Change 
BAPI_BUS2001_DELETE ProjectDefinitionPI.Delete 
BAPI_BUS2001_SET_STATUS ProjectDefinitionPI.SetStatus 
BAPI_BUS2001_PARTNER_CREATE_M ProjectDefinitionPI.PartnerCreateMultiple 
BAPI_BUS2001_PARTNER_CHANGE_M ProjectDefinitionPI.PartnerChangeMultiple 
BAPI_BUS2001_PARTNER_REMOVE_M ProjectDefinitionPI.PartnerRemoveMultiple 

Business Object WBSPI

BAPI Method 
BAPI_BUS2054_CREATE_MULTI WBSPI.CreateMultiple 
BAPI_BUS2054_CHANGE_MULTI WBSPI.ChangeMultiple 
BAPI_BUS2054_DELETE_MULTI WBSPI.DeleteMultiple 
BAPI_BUS2001_SET_STATUS WBSPI.SetStatus 

Business Object NetworkPI

BAPI Method 
BAPI_BUS2002_CREATE NetworkPI.CreateFromData 
BAPI_BUS2002_CHANGE NetworkPI.Change 
BAPI_BUS2002_DELETE NetworkPI.Delete 
BAPI_BUS2002_ACT_CREATE_MULTI NetworkPI.ActCreateMultiple 
BAPI_BUS2002_ACT_CHANGE_MULTI NetworkPI.ActChangeMultiple 
BAPI_BUS2002_ACT_DELETE_MULTI NetworkPI.ActDeleteMultiple 
BAPI_BUS2002_ACTELEM_CREATE_M NetworkPI.ActElemCreateMultiple 
BAPI_BUS2002_ACTELEM_CHANGE_M NetworkPI.ActElemChangeMultiple 
BAPI_BUS2002_ACTELEM_DELETE_M NetworkPI.ActElemDeleteMultiple 
BAPI_BUS2002_SET_STATUS NetworkPI.SetStatus 

The processing unit must be finished by calling the BAPIs BAPI_PS_PRECOMMIT and BAPI_TRANSACTION_COMMIT (in that order).


3. One-Project Principle
For technical reasons, only the project definition and the WBS elements of one project can be processed in a processing unit.

More than one project is used, for example, if

You create or change more than one project
You have changed a project and want to change a network to which WBS elements from a different project are assigned
You want to change various networks to which WBS elements from different projects are assigned
You create or change a WBS assignment in a network so that a WBS element from a second project is used
WBS elements from different projects are already assigned to a network (note: this type of network cannot be processed with the network BAPIs named above).
If you define a report for calling BAPIs, this means that:
The report may use a maximum of one project per processing unit. The individual BAPI calls must be distributed between more than one processing unit, which use a maximum of one project per processing unit.


4. All-Or-Nothing Principle
If an error occurs in a processing unit in an individual BAPI or in the BAPI "BAPI_PS_PRECOMMIT" (that is, the return table ET_RETURN contains at least one message of the type "E" (error), "A" (abnormal end) or "X" (exit), posting is not possible.

If an error occurs in an individual BAPI and despite this you call the BAPI "BAPI_PS_PRECOMMIT", message CNIF_PI 056 is issued with message type I (information).

If an error occurs in an individual BAPI or in the BAPI "BAPI_PS_PRECOMMIT", but despite this you execute a COMMIT WORK, the program that is currently in process is terminated and message CNIF_PI 056 is issued with message type X.

This is to ensure data consistency for all objects created, changed, and/or deleted in the processing unit.

Note that the processing unit to which this happens can no longer be successfully closed and therefore, no new processing unit can be started.

However, you can set the current processing unit back to an initialized status by using a rollback work (for example, statement ROLLBACK WORK, the BAPI "BAPI_TRANSACTION_ROLLBACK" or the method BapiService.TransactionRollback). Technically speaking, this means that the previous LUW is terminated and a new LUW is started in the current processing unit.
Note that in this case, the current processing unit does not have to be re-initialized.
Also note that the rollback also takes place according to the "all-or-nothing" principle, that therefore all individual BAPIs carried out up to the rollback are discarded. After a rollback, you can, therefore, no longer refer to an object that was previously created in the current processing unit using a CREATE-BAPI.

However, you can close the processing unit again after a rollback, using a PRECOMMIT and COMMIT WORK, as long as all individual BAPIs, and the precommit carried out after the rollback, finish without errors.

You can carry out several rollbacks in a processing unit (technically: start a new LUW several times).


5. Procedure in the Case of Errors
As soon as an error occurs in an individual BAPI or in the BAPI "BAPI_PS_PRECOMMIT", you have the following options:

Exit the report or the program that calls the BAPIs, the PRECOMMIT and the COMMIT WORK.
Execute a rollback in the current processing unit.

6. Rules for Posting
After you have successfully called the individual BAPIs of a processing unit, you must call the PRECOMMIT "BAPI_PS_PRECOMMIT".

If the PRECOMMIT is also successful, the COMMIT WORK must take place directly afterwards.

In particular, note that after the PRECOMMIT, you cannot call other individual BAPIs again in the current processing unit.
It is also not permitted to call the PRECOMMIT more than once in a processing unit.


7. Recommendation "COMMIT WORK AND WAIT"
If an object created in a processing unit is to be used in a subsequent processing unit (for example, as an account assignment object in a G/L account posting) it is recommended to call the commit work with the supplement "AND WAIT" or to set the parameters for the BAPI "BAPI_TRANSACTION_COMMIT" accordingly.


8. Field Selection
The field selection is a tool for influencing the user interface (that is, for the dialog). In the BAPIs, the settings from the field selection (for example, fields that are not ready for input or required-entry) are not taken into account.


9. Using a date in the BAPI interface
The BAPI must be provided with the date in the internal format YYYYMMDD (year month day). No special characters may be used.

As a BAPI must work independent of user, the date cannot and should not be converted to the date format specified in the user-specific settings.






10. Customer Enhancements of the BAPIs
For the BAPIs used to create and change project definitions, WBS elements, networks, activities, and activity elements, you can automatically fill the fields of the tables PROJ, PRPS, AUFK, and AFVU that have been defined for customer enhancements in the standard system.

For this purpose, help structures that contain the respective key fields, as well as the CI include of the table are supplied. The BAPIs contain the parameter ExtensionIN in which the enhancement fields can be entered and also provide BAdIs in which the entered values can be checked and, if required, processed further.


CI Include Help Structure   Key 
CI_PROJ BAPI_TE_PROJECT_DEFINITION   PROJECT_DEFINITION 
CI_PRPS BAPI_TE_WBS_ELEMENT   WBS_ELEMENT 
CI_AUFK BAPI_TE_NETWORK   NETWORK 
CI_AFVU BAPI_TE_NETWORK_ACTIVITY   NETWORK ACTIVITY 
CI_AFVU BAPI_TE_NETWORK_ACT_ELEMENT   NETWORK ACTIVITY ELEMENT 
 

Procedure for Filling Standard Enhancements
Before you call the BAPI for each object that is to be created or changed, for which you want to enter customer-specific table enhancement fields, add a data record to the container ExtensionIn:

STRUCTURE:    Name of the corresponding help structure
VALUEPART1:   Key of the object + start of the data part
VALUEPART2-4: If required, the continuation of the data part
VALUPART1 to VALUPART4 are therefore filled consecutively, first with the keys that identify the table rows and then with the values of the customer-specific fields. By structuring the container in this way, it is possible to transfer its content with one MOVE command to the structure of the BAPI table extension.

Note that when objects are changed, all fields of the enhancements are overwritten (as opposed to the standard fields, where only those fields for which the respective update indicator is set are changed). Therefore, even if you only want to change one field, all the fields that you transfer in ExtensionIn must be filled.


Checks and Further Processing
Using the methods ...CREATE_EXIT1 or. ...CHANGE_EXIT1 of the BAdI BAPIEXT_BUS2001, BAPIEXT_BUS2002, and BAPIEXT_BUS2054, you can check the entered values (and/or carry out other checks).

In the BAdI's second method, you can program that the data transferred to the BAPI is processed further (if you only want to transfer the fields of the CI includes, no more action is required here).


For more information, refer to the SAP Library under Cross-Application Components -&amp;gt; Business Framework Architecture -&amp;gt; Enhancements, Modifications ... -&amp;gt; Customer Enhancement and Modification of BAPIs -&amp;gt; Customer Enhancement of BAPIs (CA-BFA).

The return parameter RETURN will contain an error message if an error occurred during processing. After the call, the table E_MESSAGE_TABLE contains all messages that were created during processing.

Further Information
You  can find additional information in the SAP Library under Project System -&amp;gt; Structures -&amp;gt; Project System Interfaces -&amp;gt; PS-EPS Interface to External Project Management Systems.

Parameters
NUMBER
UNDO_SYSTEM_STATUS
UNDO_USER_STATUS
SET_SYSTEM_STATUS
SET_USER_STATUS
RETURN
I_ACTIVITY_SYSTEM_STATUS
I_ACTIVITY_USER_STATUS
E_RESULT

Exceptions
Function Group
CNIF_STATUS_2002&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Prabhu&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 25 Aug 2006 10:53:49 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/isu-function-module/m-p/1475553#M223030</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-08-25T10:53:49Z</dc:date>
    </item>
    <item>
      <title>Re: ISU Function Module</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/isu-function-module/m-p/1475554#M223031</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI&lt;/P&gt;&lt;P&gt;GOOD&lt;/P&gt;&lt;P&gt;BAPI_BUS2002_SET_STATUS NetworkPI.SetStatus&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FU BAPI_BUS2002_SET_STATUS&lt;/P&gt;&lt;P&gt;____________________________________________________&lt;/P&gt;&lt;P&gt;Text&lt;/P&gt;&lt;P&gt;Set/Reset Status for BUS2002 (Network)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Functionality&lt;/P&gt;&lt;P&gt;You can use the BAPI BAPI_BUS2002_SET_STATUS to revoke one system status (UNDO_SYSTEM_STATUS) and one user status (UNDO_USER_STATUS) respectively, or to set one system status (SET_SYSTEM_STATUS) and one user status (SET_USER_STATUS) respectively, in the network header (NUMBER).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;At the same time, you can revoke one system status and one user status, or set one system status and one user status in a list of activities for the network.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The following system statuses are supported for the network header:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'REL' Released (I0002) set&lt;/P&gt;&lt;P&gt;'LKD' Locked (I0043) set/revoke&lt;/P&gt;&lt;P&gt;'TECO' Technically completed (I0045) set/revoke&lt;/P&gt;&lt;P&gt;'CLSD' Closed (I0046) set/revoke&lt;/P&gt;&lt;P&gt;'AALK' Account Assignment locked (I0064) set/revoke&lt;/P&gt;&lt;P&gt;'DLFL' Deletion flag (I0076) set/revoke&lt;/P&gt;&lt;P&gt;The following system statuses are supported for the network operations:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'REL' Released (I0002) set&lt;/P&gt;&lt;P&gt;'TECO' Technically completed (I0045) set/revoke&lt;/P&gt;&lt;P&gt;'CLSD' Closed (I0046) set/revoke&lt;/P&gt;&lt;P&gt;'AALK' Account Assignment locked (I0064) set/revoke&lt;/P&gt;&lt;P&gt;'DLFL' Deletion flag (I0076) set/revoke&lt;/P&gt;&lt;P&gt;'DSEX' Dates set by external system (I0029) set/revoke&lt;/P&gt;&lt;P&gt;User statuses can be set or revoked in accordance with the status profile assigned to the network header or network activities. They must be transferred via the key in the relevant log-on language.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The processing sequence is as follows:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. Network header:&lt;/P&gt;&lt;P&gt;a) Revoke system status&lt;/P&gt;&lt;P&gt;b) Revoke user status&lt;/P&gt;&lt;P&gt;c) Set system status&lt;/P&gt;&lt;P&gt;d) Set user status&lt;/P&gt;&lt;P&gt;2. Network operations:&lt;/P&gt;&lt;P&gt;a) Revoke system status&lt;/P&gt;&lt;P&gt;b) Revoke user status&lt;/P&gt;&lt;P&gt;c) Set system status&lt;/P&gt;&lt;P&gt;d) Set user status&lt;/P&gt;&lt;P&gt;If you cannot set/revoke a system/user status, all of the other activities will still be executed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The inheritance of statuses is not integrated between the project and the network. A status change only affects the current network and not any other assigned projects/WBS elements.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Milestone functions are not supported.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The call of the BAPI can be repeated until a LUW (Logical Unit of Work) is completed with the BAPIs BAPI_PS_PRECOMMIT and BAPI COMMIT WORK.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Notes&lt;/P&gt;&lt;P&gt;1. Definition "Processing Unit"&lt;/P&gt;&lt;P&gt;In the following, the term "processing unit" refers to a series of related processing steps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The first step in a processing unit is initialization, which is done by calling the BAPI BAPI_PS_INITIALIZATION.&lt;/P&gt;&lt;P&gt;Afterwards, the individual BAPIs listed below can be used several times, if required.&lt;/P&gt;&lt;P&gt;The processing unit ends when the final precommit (call BAPI BAPI_PS_PRECOMMIT) is executed with a subsequent COMMIT WORK (for example, the statement COMMIT WORK, the BAPI "BAPI_TRANSACTION_COMMIT" or the BapiService.TransactionCommit method).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After the final COMMIT WORK, the next initialization opens a new processing unit via the BAPI "BAPI_PS_INITIALIZATION".&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In principal, the following applies to each individual processing unit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2. Creation of a Processing Unit&lt;/P&gt;&lt;P&gt;Each processing unit must be initialized by calling the BAPI "BAPI_PS_INITIALIZATION" once.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Afterwards, the following individual BAPIs can be used within a processing unit - they can also be used more than once, taking into account the "One-Project-Principle" explained below. This also means that an object created in the current processing unit by a CREATE-BAPI can be changed by a CHANGE-BAPI or STATUS-BAPI.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Except for the BAPIs explicitly named below, you can only call up BAPIs that execute GET methods or READ methods only. In particular, the BAPIs for confirming a network may not be used with the individual BAPIs named below!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Business Object ProjectDefinitionPI&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BAPI Method &lt;/P&gt;&lt;P&gt;BAPI_BUS2001_CREATE ProjectDefinitionPI.CreateSingle &lt;/P&gt;&lt;P&gt;BAPI_BUS2001_CHANGE ProjectDefinitionPI.Change &lt;/P&gt;&lt;P&gt;BAPI_BUS2001_DELETE ProjectDefinitionPI.Delete &lt;/P&gt;&lt;P&gt;BAPI_BUS2001_SET_STATUS ProjectDefinitionPI.SetStatus &lt;/P&gt;&lt;P&gt;BAPI_BUS2001_PARTNER_CREATE_M ProjectDefinitionPI.PartnerCreateMultiple &lt;/P&gt;&lt;P&gt;BAPI_BUS2001_PARTNER_CHANGE_M ProjectDefinitionPI.PartnerChangeMultiple &lt;/P&gt;&lt;P&gt;BAPI_BUS2001_PARTNER_REMOVE_M ProjectDefinitionPI.PartnerRemoveMultiple &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Business Object WBSPI&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BAPI Method &lt;/P&gt;&lt;P&gt;BAPI_BUS2054_CREATE_MULTI WBSPI.CreateMultiple &lt;/P&gt;&lt;P&gt;BAPI_BUS2054_CHANGE_MULTI WBSPI.ChangeMultiple &lt;/P&gt;&lt;P&gt;BAPI_BUS2054_DELETE_MULTI WBSPI.DeleteMultiple &lt;/P&gt;&lt;P&gt;BAPI_BUS2001_SET_STATUS WBSPI.SetStatus &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Business Object NetworkPI&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BAPI Method &lt;/P&gt;&lt;P&gt;BAPI_BUS2002_CREATE NetworkPI.CreateFromData &lt;/P&gt;&lt;P&gt;BAPI_BUS2002_CHANGE NetworkPI.Change &lt;/P&gt;&lt;P&gt;BAPI_BUS2002_DELETE NetworkPI.Delete &lt;/P&gt;&lt;P&gt;BAPI_BUS2002_ACT_CREATE_MULTI NetworkPI.ActCreateMultiple &lt;/P&gt;&lt;P&gt;BAPI_BUS2002_ACT_CHANGE_MULTI NetworkPI.ActChangeMultiple &lt;/P&gt;&lt;P&gt;BAPI_BUS2002_ACT_DELETE_MULTI NetworkPI.ActDeleteMultiple &lt;/P&gt;&lt;P&gt;BAPI_BUS2002_ACTELEM_CREATE_M NetworkPI.ActElemCreateMultiple &lt;/P&gt;&lt;P&gt;BAPI_BUS2002_ACTELEM_CHANGE_M NetworkPI.ActElemChangeMultiple &lt;/P&gt;&lt;P&gt;BAPI_BUS2002_ACTELEM_DELETE_M NetworkPI.ActElemDeleteMultiple &lt;/P&gt;&lt;P&gt;BAPI_BUS2002_SET_STATUS NetworkPI.SetStatus &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The processing unit must be finished by calling the BAPIs BAPI_PS_PRECOMMIT and BAPI_TRANSACTION_COMMIT (in that order).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3. One-Project Principle&lt;/P&gt;&lt;P&gt;For technical reasons, only the project definition and the WBS elements of one project can be processed in a processing unit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;More than one project is used, for example, if&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You create or change more than one project&lt;/P&gt;&lt;P&gt;You have changed a project and want to change a network to which WBS elements from a different project are assigned&lt;/P&gt;&lt;P&gt;You want to change various networks to which WBS elements from different projects are assigned&lt;/P&gt;&lt;P&gt;You create or change a WBS assignment in a network so that a WBS element from a second project is used&lt;/P&gt;&lt;P&gt;WBS elements from different projects are already assigned to a network (note: this type of network cannot be processed with the network BAPIs named above).&lt;/P&gt;&lt;P&gt;If you define a report for calling BAPIs, this means that:&lt;/P&gt;&lt;P&gt;The report may use a maximum of one project per processing unit. The individual BAPI calls must be distributed between more than one processing unit, which use a maximum of one project per processing unit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;4. All-Or-Nothing Principle&lt;/P&gt;&lt;P&gt;If an error occurs in a processing unit in an individual BAPI or in the BAPI "BAPI_PS_PRECOMMIT" (that is, the return table ET_RETURN contains at least one message of the type "E" (error), "A" (abnormal end) or "X" (exit), posting is not possible.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If an error occurs in an individual BAPI and despite this you call the BAPI "BAPI_PS_PRECOMMIT", message CNIF_PI 056 is issued with message type I (information).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If an error occurs in an individual BAPI or in the BAPI "BAPI_PS_PRECOMMIT", but despite this you execute a COMMIT WORK, the program that is currently in process is terminated and message CNIF_PI 056 is issued with message type X.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is to ensure data consistency for all objects created, changed, and/or deleted in the processing unit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note that the processing unit to which this happens can no longer be successfully closed and therefore, no new processing unit can be started.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, you can set the current processing unit back to an initialized status by using a rollback work (for example, statement ROLLBACK WORK, the BAPI "BAPI_TRANSACTION_ROLLBACK" or the method BapiService.TransactionRollback). Technically speaking, this means that the previous LUW is terminated and a new LUW is started in the current processing unit.&lt;/P&gt;&lt;P&gt;Note that in this case, the current processing unit does not have to be re-initialized.&lt;/P&gt;&lt;P&gt;Also note that the rollback also takes place according to the "all-or-nothing" principle, that therefore all individual BAPIs carried out up to the rollback are discarded. After a rollback, you can, therefore, no longer refer to an object that was previously created in the current processing unit using a CREATE-BAPI.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, you can close the processing unit again after a rollback, using a PRECOMMIT and COMMIT WORK, as long as all individual BAPIs, and the precommit carried out after the rollback, finish without errors.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can carry out several rollbacks in a processing unit (technically: start a new LUW several times).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;5. Procedure in the Case of Errors&lt;/P&gt;&lt;P&gt;As soon as an error occurs in an individual BAPI or in the BAPI "BAPI_PS_PRECOMMIT", you have the following options:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Exit the report or the program that calls the BAPIs, the PRECOMMIT and the COMMIT WORK.&lt;/P&gt;&lt;P&gt;Execute a rollback in the current processing unit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;6. Rules for Posting&lt;/P&gt;&lt;P&gt;After you have successfully called the individual BAPIs of a processing unit, you must call the PRECOMMIT "BAPI_PS_PRECOMMIT".&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If the PRECOMMIT is also successful, the COMMIT WORK must take place directly afterwards.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In particular, note that after the PRECOMMIT, you cannot call other individual BAPIs again in the current processing unit.&lt;/P&gt;&lt;P&gt;It is also not permitted to call the PRECOMMIT more than once in a processing unit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;7. Recommendation "COMMIT WORK AND WAIT"&lt;/P&gt;&lt;P&gt;If an object created in a processing unit is to be used in a subsequent processing unit (for example, as an account assignment object in a G/L account posting) it is recommended to call the commit work with the supplement "AND WAIT" or to set the parameters for the BAPI "BAPI_TRANSACTION_COMMIT" accordingly.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;8. Field Selection&lt;/P&gt;&lt;P&gt;The field selection is a tool for influencing the user interface (that is, for the dialog). In the BAPIs, the settings from the field selection (for example, fields that are not ready for input or required-entry) are not taken into account.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;9. Using a date in the BAPI interface&lt;/P&gt;&lt;P&gt;The BAPI must be provided with the date in the internal format YYYYMMDD (year month day). No special characters may be used.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As a BAPI must work independent of user, the date cannot and should not be converted to the date format specified in the user-specific settings.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;10. Customer Enhancements of the BAPIs&lt;/P&gt;&lt;P&gt;For the BAPIs used to create and change project definitions, WBS elements, networks, activities, and activity elements, you can automatically fill the fields of the tables PROJ, PRPS, AUFK, and AFVU that have been defined for customer enhancements in the standard system.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For this purpose, help structures that contain the respective key fields, as well as the CI include of the table are supplied. The BAPIs contain the parameter ExtensionIN in which the enhancement fields can be entered and also provide BAdIs in which the entered values can be checked and, if required, processed further.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CI Include Help Structure   Key &lt;/P&gt;&lt;P&gt;CI_PROJ BAPI_TE_PROJECT_DEFINITION   PROJECT_DEFINITION &lt;/P&gt;&lt;P&gt;CI_PRPS BAPI_TE_WBS_ELEMENT   WBS_ELEMENT &lt;/P&gt;&lt;P&gt;CI_AUFK BAPI_TE_NETWORK   NETWORK &lt;/P&gt;&lt;P&gt;CI_AFVU BAPI_TE_NETWORK_ACTIVITY   NETWORK ACTIVITY &lt;/P&gt;&lt;P&gt;CI_AFVU BAPI_TE_NETWORK_ACT_ELEMENT   NETWORK ACTIVITY ELEMENT &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Procedure for Filling Standard Enhancements&lt;/P&gt;&lt;P&gt;Before you call the BAPI for each object that is to be created or changed, for which you want to enter customer-specific table enhancement fields, add a data record to the container ExtensionIn:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;STRUCTURE:    Name of the corresponding help structure&lt;/P&gt;&lt;P&gt;VALUEPART1:   Key of the object + start of the data part&lt;/P&gt;&lt;P&gt;VALUEPART2-4: If required, the continuation of the data part&lt;/P&gt;&lt;P&gt;VALUPART1 to VALUPART4 are therefore filled consecutively, first with the keys that identify the table rows and then with the values of the customer-specific fields. By structuring the container in this way, it is possible to transfer its content with one MOVE command to the structure of the BAPI table extension.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note that when objects are changed, all fields of the enhancements are overwritten (as opposed to the standard fields, where only those fields for which the respective update indicator is set are changed). Therefore, even if you only want to change one field, all the fields that you transfer in ExtensionIn must be filled.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Checks and Further Processing&lt;/P&gt;&lt;P&gt;Using the methods ...CREATE_EXIT1 or. ...CHANGE_EXIT1 of the BAdI BAPIEXT_BUS2001, BAPIEXT_BUS2002, and BAPIEXT_BUS2054, you can check the entered values (and/or carry out other checks).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the BAdI's second method, you can program that the data transferred to the BAPI is processed further (if you only want to transfer the fields of the CI includes, no more action is required here).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For more information, refer to the SAP Library under Cross-Application Components -&amp;gt; Business Framework Architecture -&amp;gt; Enhancements, Modifications ... -&amp;gt; Customer Enhancement and Modification of BAPIs -&amp;gt; Customer Enhancement of BAPIs (CA-BFA).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The return parameter RETURN will contain an error message if an error occurred during processing. After the call, the table E_MESSAGE_TABLE contains all messages that were created during processing.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Further Information&lt;/P&gt;&lt;P&gt;You  can find additional information in the SAP Library under Project System -&amp;gt; Structures -&amp;gt; Project System Interfaces -&amp;gt; PS-EPS Interface to External Project Management Systems.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Parameters&lt;/P&gt;&lt;P&gt;NUMBER&lt;/P&gt;&lt;P&gt;UNDO_SYSTEM_STATUS&lt;/P&gt;&lt;P&gt;UNDO_USER_STATUS&lt;/P&gt;&lt;P&gt;SET_SYSTEM_STATUS&lt;/P&gt;&lt;P&gt;SET_USER_STATUS&lt;/P&gt;&lt;P&gt;RETURN&lt;/P&gt;&lt;P&gt;I_ACTIVITY_SYSTEM_STATUS&lt;/P&gt;&lt;P&gt;I_ACTIVITY_USER_STATUS&lt;/P&gt;&lt;P&gt;E_RESULT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Exceptions&lt;/P&gt;&lt;P&gt;Function Group&lt;/P&gt;&lt;P&gt;CNIF_STATUS_2002&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;&lt;P&gt;mrutyun&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 25 Aug 2006 13:37:44 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/isu-function-module/m-p/1475554#M223031</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-08-25T13:37:44Z</dc:date>
    </item>
  </channel>
</rss>

