Internal commit

Hi,
Is there a way to commit a single database operation, outside the main transaction?
I want to perform a commit inside of a function module without confirm the caller program's luw
I tried to use STARTING NEW TASK, it works, but there is a session limit per user
My function module saves a access log in a Z transparent table.
This log must be always generated (even if a rollback was performed outside this FM) and can´t change the caller program flow
Thanks
Darley.

>
Darley Rodrigo Machado wrote:
> I made a test using COMMIT CONNECTION con.
>
> If con has the same value of de default connection, this commit complete the current LUW, exactly as the commit work statement
That's why you need a second connection.  But you can make the second connection to the same database as the first.  Then the commits are independent.
DATA: connection_2 TYPE dbcon-con_name.
connection_2 = 'R/3*CONN2'. " The R/3* prefix says that it's a second connection to the db server
INSERT INTO zlogtab CONNECTION (connection_2) VALUES some_values.
COMMIT CONNECTION (connection_2).
Edited by: Matthew Billingham on Aug 14, 2008 9:27 AM
Added solution

Similar Messages

  • Should stored procs internally commit changes or should the caller?

    A debate is raging at my workplace between the app developers who write the stored procs used on their back end db and the data warehouse etl developers who are to use said stored procs. The app developers say that stored procs should never internally issue 'commit' statements and that only the calling connection should commit afterwards and that this is a general standard in the database world. The data warehouse etl group insist that it's perfectly OK for a stored proc to issue its own commit.
    What are the standards where you work; do sp's commit internally or not? Is one way or the other the exception or the rule in typical Oracle practices?

    >
    A debate is raging at my workplace between the app developers who write the stored procs used on their back end db and the data warehouse etl developers who are to use said stored procs. The app developers say that stored procs should never internally issue 'commit' statements and that only the calling connection should commit afterwards and that this is a general standard in the database world. The data warehouse etl group insist that it's perfectly OK for a stored proc to issue its own commit.
    What are the standards where you work; do sp's commit internally or not? Is one way or the other the exception or the rule in typical Oracle practices?
    >
    The question is not 'who should commit' it is 'when to commit'. The 'when' will generallyl dictate the 'who'.
    A COMMIT should be performed when a unit of work has been completed.
    Based on how your post was worded your app developers are WRONG if for no other reason than you simply can't use the word 'never' when you are talking about complex processes.
    For the same reason the data warehouse group is RIGHT since they did not say it is ALWAYS ok, just that it is OK for a stored proc to issue its own commit. And
    All anyone from either of your groups needs to do is come up with just ONE example where it is OK for a stored proc to issue its own commit and the dev groups position is TOAST; ETL is vindicated once again.
    You can't make broad generalizations like NEVER and ALWAYS. So since we are talking COMMIT and not RECOVERY let's ignore flashback and the like.
    If a stored proc is designed to perform a truncate and load of a staging table there is absolutely no reason NOT to issue a commit when the load is completed. The TRUNCATE itself will be irreversible; meaning it can't be undone using a simple ROLLBACK.
    And if the subsequent load of the table is successful why shouldn't the proc issue the commit? The proc, in this case, is the transaction controller and can determine if the unit of work has been completed. If it has it should issue the COMMIT.
    The process architecture needs to be designed to take restart and recovery into account. That design will dictate at what steps in the process work should be committed. The controlling process that determines that the unit of work has been completed successfully is the process that should perform the commit. If that process is part of a master stored procedure the commit should happen in the procedure. If that process is part of an ETL workflow decision the commit should be issued as part of that same workflow.

  • Flat files data comma separated using SSIS.

    Hi,
    I have multiple flat files which come in comma separated columns. See example below :
    Customer Data
    CustID,FName,LName,Disease,Email,Phone
    12345,Xyz,Smit,Bronchitis, Asthma and fever,[email protected],80000000
    12346,Abc,Doe,fever Headache,[email protected],90000000
    12347,Klu,joe,Sugar, cough and fever,[email protected],12345678
    Please look at the ID's 12345 and 12347. The disease column has a internal comma space between. How do i remove the comma spaces in the disease column, so that it can be loaded from flat file to sql table using SSIS. ?
    Please help !
    Thanks

    Here is a full solution base on my post above (first option)
    1. create temp table (Give it a unique name):
    create table #T (Txt NVARCHAR(MAX))
    GO
    2. Insert all the data into temporary table. Each line in the text file, is a value for one column in a row in the table.
    -- I will jump to the table and use simple insert.
    -- If you have problem with step 1 then please inform us (this is simple bulk insert basically)
    insert #T (Txt) values
    ('1234435,Xyz,Stemit,Brfsdonchitis, Asthma and fever,[email protected],80000000'),
    ('12346,Agjdfjbc,Doge,fevhhhher Headsxdshhache,[email protected],90000000'),
    ('123447,Klu,joe,Sugar, cough and fever,[email protected],12345678')
    GO
    the result should be like this:
    Txt
    1234435,Xyz,Stemit,Brfsdonchitis, Asthma and fever,[email protected],80000000
    12346,Agjdfjbc,Doge,fevhhhher Headsxdshhache,[email protected],90000000
    123447,Klu,joe,Sugar, cough and fever,[email protected],12345678
    I use a SPLIT Function named Split_CLR_Fn. This is a CLR Split function that get input <string to split> and <string as delimiter,> and it return table with 2 columns ID, SplitData
    For example if you use: SELECT * from Split_CLR_Fn('text1,text2,text3,',') then you get result:
    ID SplitData
    1 Text1
    2 Text2
    3 Text3
    ** You can find in the internet several good functions, I HIGHLY RECOMMENDED NOT TO USE T-SQL FUNCTIONS but CLR FUNCTION. Check thi link to understand why:
    http://sqlperformance.com/2012/07/t-sql-queries/split-strings
    ** This is the best function that I know about and I use it, but I change the code a bit to return 2 columns and not just the SplitData as in this blog: http://sqlblog.com/blogs/adam_machanic/archive/2009/04/28/sqlclr-string-splitting-part-2-even-faster-even-more-scalable.aspx
    That's it :-) we are ready for the solution which is very simple
    Solution 1 (BAD solution but easy to write):
    select
    (select SplitData from Split_CLR_Fn(Txt,',') where ID = 1) CustID,
    (select SplitData from Split_CLR_Fn(Txt,',') where ID = 2) FName,
    (select SplitData from Split_CLR_Fn(Txt,',') where ID = 3) LName,
    STUFF((select ',' + SplitData from Split_CLR_Fn(Txt,',') where ID > 3 and ID < (select MAX(ID) from Split_CLR_Fn(Txt,',')) - 1 for XML path('')), 1 , 1,'') Disease,
    (select SplitData from Split_CLR_Fn(Txt,',') where ID = (select MAX(ID) from Split_CLR_Fn(Txt,',')) - 1) Email,
    (select SplitData from Split_CLR_Fn(Txt,',') where ID = (select MAX(ID) from Split_CLR_Fn(Txt,','))) Phone
    from #T
    GO
    Solution 2: better in this case since the format is constant (this is the solution I wrote about above)
    ;With MyCTE as (
    select
    Txt,
    SUBSTRING(Txt, 1, CHARINDEX(',', Txt, 1) - 1) as CustID
    , SUBSTRING(
    Txt
    ,CHARINDEX(',', Txt, 1) + 1 -- I start from the end of preview len
    , CHARINDEX(',', Txt, CHARINDEX(',', Txt, 1)+1)- CHARINDEX(',', Txt, 1) - 1
    ) as FName
    , SUBSTRING(
    Txt
    ,CHARINDEX(',', Txt, CHARINDEX(',', Txt, 1)+1)+1 -- I start from the end of preview len
    , CHARINDEX(',', Txt, CHARINDEX(',', Txt, CHARINDEX(',', Txt, 1)+1)+1) - CHARINDEX(',', Txt, CHARINDEX(',', Txt, 1)+1) - 1
    ) as LName
    , RIGHT(Txt, CHARINDEX(',', REVERSE(Txt), 1) - 1) as Phone
    , RIGHT(LEFT(Txt, Len(Txt) - Len(RIGHT(Txt, CHARINDEX(',', REVERSE(Txt), 1) - 1)) - 1), CHARINDEX(',', REVERSE(LEFT(Txt, Len(Txt) - Len(RIGHT(Txt, CHARINDEX(',', REVERSE(Txt), 1) - 1)) - 1)), 1) - 1) as Email
    from #T
    select CustID,FName,LName, Phone, Email, SUBSTRING(Txt, Len(CustID) + Len(FName) + Len(LName) + 4, Len(Txt) - Len(Email) - LEN(Phone) - Len(CustID) - Len(FName) - Len(LName) - 5) as Disease
    from MyCTE
    I hope that this is useful :-)
      Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]

  • BAPI_REQUISITION_CREATE & COMMIT

    Hi, I'm using this BAPI, but it has an internal <b>commit</b>. I need to do the <b>commit</b> myself, any suggestions?
    Thanks!!!
    Lucas.
    Message was edited by: Lucas Ignacio Alvarez

    Ok, thanks.
    But what happens if:
    1) BAPI is OK and it does an internal COMMIT
    2) the following logic fails, I check this and do a ROLL BACK
    But the bapi is OK, and I don't want the data of the bapi in DB if the 2) fails.
    Thats why I need to do the commit myself.
    Thanks in advance.
    Lucas.

  • Hi all,  need data file and co file after single transport in 6.4 or 6.7

    hi all
    following is the requirement
    To process/compile the attached programs (given below) in 6.4/7 Kernel (SAP 6.4 version  or 6.7 version )and send a single transport (Data File and Co File).
    these data file and co file are flat files.
    CAN ANYONE HELP ME GETTING THESE FLAT FILES.   I need these flat files urgently.
    WHAT U HAVE TO DO IS:
    IF U HAVE 6.4 OR 6.7 VERSION, JUST TRANSPORT FOLLOWING 10 PROGRAMS IN SINGLE TRANSPORT IN TESTING SYSTEM OR DEVELOPEMENT SYSTEM AND AFTER GETTING DATA FILE AND CO FILE U CAN REVERT THE TRANSPORT.
    Programs files are as follows:  (total number of prog is 10)
    1.
    FUNCTION Z_3N_CKS_EXIST_USER .
    ""Local interface:
    *" IMPORTING
    *" VALUE(CKSUSRID) TYPE USR02-BNAME
    *" VALUE(CKSMDTID) TYPE USR02-MANDT DEFAULT SY-MANDT
    *" EXPORTING
    *" VALUE(RCODE) TYPE SY-SUBRC
    *" EXCEPTIONS
    *" USER_DONT_EXIST
    *" USER_EXISTS
    FUNCTION TO CHECK IF USER EXISTS
    CLEAR RCODE.
    CALL FUNCTION 'USER_EXISTS'
    EXPORTING
    BNAME = CKSUSRID
    CLIENT = CKSMDTID
    EXCEPTIONS
    USER_DONT_EXIST = 1
    USER_EXISTS = 0.
    RCODE = SY-SUBRC.
    ENDFUNCTION.
    2.
    FUNCTION Z_3N_CKS_LOCKSTATE.
    ""Local interface:
    *" IMPORTING
    *" VALUE(CKSUSRID) TYPE USR02-BNAME
    *" EXPORTING
    *" VALUE(RCODE) TYPE SY-SUBRC
    FUNCTION TO OBTAIN THE CURRENT LOCK STATUS FOR A USER
    *{ PASSGOAPR06
    *\DATA:LOCKSTATE(50) type c,
    *\C_LOCKED_BY_ADMIN like usr02-uflag.
    *\tables:usr02.
    DATA:LOCKSTATE(50) type c.
    *} PASSGOAPR06
    CLEAR: RCODE, LOCKSTATE.
    SELECT SINGLE * FROM USR02 WHERE BNAME = CKSUSRID.
    IF SY-SUBRC <> 0.
    RCODE = 01. "No such User
    EXIT.
    ENDIF.
    *{ PASSGOAPR06
    IF USR02-UFLAG Z C_LOCKED_BY_ADMIN AND
    USR02-UFLAG Z C_LOCKED_BY_FAILED_LOGON.
    LOCKSTATE = 'UNLOCKED'.
    RCODE = 00.
    ELSE.
    IF USR02-UFLAG O C_LOCKED_BY_FAILED_LOGON.
    LOCKSTATE = 'LOCKED_BY_FAILED_LOGON'.
    RCODE = 02.
    ENDIF.
    IF USR02-UFLAG O C_LOCKED_BY_ADMIN.
    LOCKSTATE = 'LOCKED_BY_ADMIN'.
    RCODE = 02.
    ENDIF.
    ENDIF.
    uflag = usr02-uflag.
    IF UFLAG Z C_LOCKED_BY_ADMIN AND
    UFLAG Z C_LOCKED_BY_FAILED_LOGON.
    LOCKSTATE = 'UNLOCKED'.
    RCODE = 00.
    ELSE.
    IF UFLAG O C_LOCKED_BY_FAILED_LOGON.
    LOCKSTATE = 'LOCKED_BY_FAILED_LOGON'.
    RCODE = 02.
    ENDIF.
    IF UFLAG O C_LOCKED_BY_ADMIN.
    LOCKSTATE = 'LOCKED_BY_ADMIN'.
    RCODE = 02.
    ENDIF.
    ENDIF.
    *} PASSGOAPR06
    ENDFUNCTION.
    3.
    FUNCTION Z_3N_CKS_PWDCHG_INITIAL.
    ""Local interface:
    *" IMPORTING
    *" VALUE(CKSUSRID) TYPE USR02-BNAME
    *" VALUE(CKSUSRPWD) TYPE RSYST-BCODE
    *" EXPORTING
    *" VALUE(RCODE) TYPE SY-SUBRC
    *" TABLES
    *" RETURN STRUCTURE BAPIRET2
    FUNCTION TO INITIALISE USERs PASSWORD, USER WILL BE FORCED
    TO CHANGE PASSWORD ON NEXT LOGIN
    CLEAR: USR02, RCODE.
    SELECT SINGLE * from USR02 WHERE BNAME = CKSUSRID.
    IF SY-SUBRC <> 0.
    RCODE = 01.
    else.
    CALL FUNCTION 'BAPI_USER_CHANGE'
    EXPORTING
    USERNAME = CKSUSRID
    PASSWORD = CKSUSRPWD
    PASSWORDX = 'X'
    TABLES
    RETURN = RETURN.
    loop at return.
    if return-type eq 'E' or return-type eq 'A'.
    rcode = 13.
    endif.
    endloop.
    endif.
    ENDFUNCTION.
    4.
    FUNCTION Z_3N_CKS_VERIFY_USER.
    ""Local interface:
    *" IMPORTING
    *" VALUE(CKSUSRID) TYPE RSYST-BNAME
    *" VALUE(CKSUSRPWD) TYPE RSYST-BCODE OPTIONAL
    *" EXPORTING
    *" VALUE(RCODE) TYPE SY-SUBRC
    FUNCTION TO VALIDATE A USER
    *{ PASSGOAPR06
    TABLES:USR02.
    CLEAR: USR02, RCODE.
    SELECT SINGLE * from USR02 WHERE BNAME = CKSUSRID.
    IF SY-SUBRC = 4.
    RCODE = 01. "no such user
    EXIT.
    ELSEIF CKSUSRPWD = SPACE.
    RCODE = 03. "invalid old password
    EXIT.
    ELSE.
    CALL FUNCTION 'SUSR_LOGIN_CHECK_RFC'
    EXPORTING
    BNAME = CKSUSRID
    PASSWORD = CKSUSRPWD
    EXCEPTIONS
    WAIT = 1
    USER_LOCKED = 2
    USER_NOT_ACTIVE = 3
    PASSWORD_EXPIRED = 4
    WRONG_PASSWORD = 5
    NO_CHECK_FOR_THIS_USER = 6
    INTERNAL_ERROR = 7
    OTHERS = 8
    CASE SY-SUBRC.
    WHEN '2'. RCODE = 02. "user disabled/blocked
    WHEN '3'. RCODE = 02. "user disabled/blocked
    WHEN '4'. RCODE = 03. "invalid old password
    WHEN '5'. RCODE = 03. "invalid old password
    WHEN '8'. RCODE = 12. "internal error
    ENDCASE.
    ENDIF.
    *} PASSGOAPR06
    ENDFUNCTION.
    5.
    *& Include ZMS01JTOP *
    PROGRAM MS01JTOP MESSAGE-ID 01 LINE-SIZE 132. "Berechtigungsdatenpflege
    13.08.93
    INCLUDE MS01CTP2.
    INCLUDE MS01CTCO.
    TABLES: XU200, XU213, XU310, XU350, XU390, XU400.
    TABLES: TSTC, TSP03, TPARA, TPARAT.
    TABLES: *USR01, *USR03, USR15.
    TABLES: SOUD, SOUD3.
    *ABLES: ZCSA, ADRS.
    *{ PASSGOAPR06
    TABLES: usr02.
    DATA: uflag type x.
    DATA: begin of return occurs 0.
    INCLUDE structure bapiret2.
    DATA: end of return.
    DATA calling_cksusrid like usr02-bname.
    DATA: init_pass like BAPIPWD.
    INCLUDE USER_CONSTANTS.
    *} PASSGOAPR06
    CONTROLS TC213 TYPE TABLEVIEW USING SCREEN 213.
    CONTROLS TC520 TYPE TABLEVIEW USING SCREEN 350.
    DATA: COPYOK TYPE I,
    RENAMEOK TYPE I,
    DATFM1,
    DATFM2,
    DATFM3,
    DATFM4,
    DCPFM1,
    DCPFM2,
    USERNAME LIKE USR01-BNAME,
    LOCK,
    UNLO,
    STATFLAG TYPE I VALUE 0,
    NAVIFLAG TYPE I VALUE 0,
    PARTOPIX TYPE I,
    PARFILL TYPE I,
    PARAMETER LIKE USR05-PARVA,
    PARID LIKE USR05-PARID,
    PARLOOP LIKE SY-STEPL,
    SHOW_ONLY VALUE ' ',
    INTPRO_LOADED TYPE I VALUE 0,
    EXT_SECURITY VALUE ' '.
    DATA: H_201_USGRP LIKE USGRP-USERGROUP,
    H_201_VALID TYPE C,
    CC201 LIKE SY-CUCOL VALUE 2,
    CR201 LIKE SY-CUROW VALUE 6,
    SAVE_LINE201 LIKE SY-LILLI VALUE 1,
    SAVE_LSIND201 LIKE SY-LSIND VALUE 1.
    DATA: OFFICENAME LIKE SOUD-USRNAM.
    DATA: BEGIN OF NAME_IN.
    INCLUDE STRUCTURE SOUD3.
    DATA: END OF NAME_IN.
    DATA: BEGIN OF NAME_OUT.
    INCLUDE STRUCTURE SOUD3.
    DATA: END OF NAME_OUT.
    DATA: BEGIN OF EMPTYPROF OCCURS 2.
    INCLUDE STRUCTURE USREF.
    DATA: END OF EMPTYPROF.
    DATA: BEGIN OF PROFILES OCCURS 10.
    INCLUDE STRUCTURE USREF.
    DATA: END OF PROFILES.
    DATA: MAXPAR TYPE I VALUE 300.
    DATA: BEGIN OF TABPAR OCCURS 300,
    PARID LIKE USR05-PARID,
    PARVA LIKE USR05-PARVA,
    END OF TABPAR.
    DATA: BEGIN OF DELTAB OCCURS 50,
    USGRP LIKE USR02-CLASS,
    END OF DELTAB.
    DATA: BEGIN OF ADDTAB OCCURS 50,
    USGRP LIKE USR02-CLASS,
    END OF ADDTAB.
    DATA: BEGIN OF ADDRESS_DATA.
    INCLUDE STRUCTURE SADRP_USR.
    DATA: END OF ADDRESS_DATA.
    DATA:
    CLEAR TYPE X VALUE '00'.
    *ATA: BEGIN OF ADRSDATEN.
    INCLUDE STRUCTURE ADRS.
    *ATA: END OF ADRSDATEN.
    06.10.95 Tosun
    DATA 930_FLAG.
    "$$
    6.
    FUNCTION Z_3N_CKS_LOCK_USER.
    ""Local interface:
    *" IMPORTING
    *" VALUE(CKSUSRID) TYPE USR02-BNAME
    *" EXPORTING
    *" VALUE(RCODE) TYPE SY-SUBRC
    CLEAR RCODE.
    *{ PASSGOAPR06
    *\ PERFORM LOCK_USER IN PROGRAM ZSAPMS01J USING CKSUSRID.
    *\ IF SY-SUBRC <> 0.
    *\ RCODE = SY-SUBRC.
    *\ EXIT.
    *\ ELSE.
    *\ COMMIT WORK.
    *\ ENDIF.
    the report (form) is dumping.
    so we try it with the correct BAPI
    CALL FUNCTION 'BAPI_USER_LOCK'
    EXPORTING
    USERNAME = CKSUSRID
    TABLES
    RETURN = return
    IF return-type <> 'S'.
    RCODE = '8'.
    rollback work.
    EXIT.
    ENDIF.
    *} PASSGOAPR06
    ENDFUNCTION.
    7.
    FUNCTION Z_3N_CKS_PWDCHG_DIRECT.
    ""Local interface:
    *" IMPORTING
    *" VALUE(CKSUSRID) TYPE USR02-BNAME
    *" VALUE(CKSUSRPWD) TYPE RSYST-BCODE
    *" EXPORTING
    *" VALUE(RCODE) TYPE SY-SUBRC
    *" TABLES
    *" RETURN STRUCTURE BAPIRET2
    FUNCTION TO CHANGE USERs PASSWORD
    Password is initialised to a fixed value,
    to avoid having to provide the valid old password
    If the password change fails, the change is
    rolled back - this is required because
    BAPI_USER_CHANGE does an internal commit.
    CLEAR: USR02, RCODE.
    DATA: L_TIME LIKE SY-UZEIT,
    ZLIN TYPE I.
    *{ PASSGOAPR06
    calling_cksusrid = cksusrid. "Save calling userid
    init_pass = 'INITPASS'.
    *} PASSGOAPR06
    do 1 times.
    SELECT SINGLE * from USR02 WHERE BNAME = CKSUSRID.
    IF SY-SUBRC <> 0.
    RCODE = 1.
    else.
    * Change login to initpass.
    CALL FUNCTION 'BAPI_USER_CHANGE'
    EXPORTING
    USERNAME = CKSUSRID
    *{ PASSGOAPR06
    *\ PASSWORD = 'INITPASS'
    PASSWORD = init_pass
    *} PASSGOAPR06
    PASSWORDX = 'X'
    TABLES
    RETURN = RETURN.
    * Evaluate return table, if not success, rcode = 13
    describe table return lines zlin.
    IF zlin > 0.
    IF return-type ne 'S'.
    rcode = 13.
    exit.
    ENDIF.
    ENDIF.
    * Wait 1 second, otherwise table ush02 gets the same key as before.
    * Not very good, but its the only way, because the wait up to
    * statement includes a db-commit.
    L_TIME = sy-uzeit.
    WHILE L_TIME = sy-uzeit.
    GET TIME.
    ENDWHILE.
    * Change 'INITPASS' to input login
    CALL FUNCTION 'SUSR_USER_CHANGE_PASSWORD_RFC'
    EXPORTING
    BNAME = CKSUSRID
    PASSWORD = 'INITPASS'
    NEW_PASSWORD = CKSUSRPWD
    NEW_BCODE = '0000000000000000'
    NEW_CODVN = ' '
    EXCEPTIONS
    CHANGE_NOT_ALLOWED = 1
    PASSWORD_NOT_ALLOWED = 2
    INTERNAL_ERROR = 3
    CANCELED_BY_USER = 4
    OTHERS = 5.
    case sy-subrc.
    when '0'. rcode = 0.
    when '1'. rcode = 2.
    when '2'. rcode = 4.
    when '3'. rcode = 12.
    when '4'. rcode = 2.
    when '5'. rcode = 12.
    ENDCASE.
    ENDIF.
    exit. "end of do 1 times "
    enddo.
    * rollback if it didn't work
    if not rcode is initial.
    rollback work.
    endif.
    ENDFUNCTION.
    8.
    FUNCTION Z_3N_CKS_UNLOCK_USER.
    ""Local interface:
    *" IMPORTING
    *" VALUE(CKSUSRID) TYPE USR02-BNAME
    *" EXPORTING
    *" VALUE(RCODE) TYPE SY-SUBRC
    CLEAR RCODE.
    *{ PASSGOAPR06
    *\ PERFORM UNLOCK_USER IN PROGRAM ZSAPMS01J USING CKSUSRID.
    *\ IF SY-SUBRC <> 0.
    *\ RCODE = SY-SUBRC.
    *\ EXIT.
    *\ ELSE.
    *\ COMMIT WORK.
    *\ ENDIF.
    the report (form) is dumping.
    so we try it with the correct BAPI
    CALL FUNCTION 'BAPI_USER_UNLOCK'
    EXPORTING
    USERNAME = CKSUSRID
    TABLES
    RETURN = return
    IF return-type <> 'S'.
    RCODE = '8'.
    rollback work.
    EXIT.
    ENDIF.
    *} PASSGOAPR06
    ENDFUNCTION.
    9.
    *& Include ZMS01JO10 *
    MS01JO10 Module before Output
    14.05.93
    MODULE D150_SELECT *
    Einen Eintrag aus der Liste uebernehmen. *
    MODULE D150_SELECT OUTPUT.
    IF SELE = 1.
    IF SY-LILLI < 3.
    MESSAGE S209.
    ELSE.
    IF USRFLAG = 10 AND SY-LILLI = 3.
    MESSAGE S209.
    ELSE.
    IF USRFLAG = 10.
    XU150-VON = SY-LISEL.
    ELSE.
    COUNTX = PUSR - 1.
    ASSIGN SY-LISEL+COUNTX(12) TO <TEXT>. " unicode
    WRITE <TEXT> TO XU150-VON.
    ENDIF.
    ENDIF.
    ENDIF.
    SELE = 0.
    ENDIF.
    IF FERTIG = 2.
    FCODE = 'BACK'.
    SUPPRESS DIALOG.
    ENDIF.
    ENDMODULE.
    MODULE D150_SETSTATUS *
    PF-Status setzen *
    MODULE D150_SETSTATUS OUTPUT.
    PERFORM SET_STATUS USING 150.
    XU150-SELPROF = XU150-SELFEST = XU150-SELADRE = XU150-SELPARA = 'X'.
    XU150-SELMENU = 'X'.
    ENDMODULE.
    MODULE D155_SETSTATUS *
    PF-Status setzen *
    MODULE D155_SETSTATUS OUTPUT.
    PERFORM SET_STATUS USING 155.
    ENDMODULE.
    MODULE D200_SELECT *
    Einen Eintrag aus der Liste ins Dynpro uebernehmen *
    MODULE D200_SELECT OUTPUT.
    IF SELE = 1.
    IF SY-LILLI < 3.
    MESSAGE S209.
    ELSE.
    XU200-XUSER = SY-LISEL.
    ENDIF.
    SELE = 0.
    ENDIF.
    IF FCODE2 = 'USER' OR FCODE2 = 'FEST' OR FCODE2 = 'ADRE' OR
    FCODE2 = 'PARA' OR FCODE2 = 'ADMI' OR FCODE2 = 'RESE' OR
    FCODE2 = 'N '.
    SUPPRESS DIALOG.
    ENDIF.
    PERFORM SET_STATUS USING 200.
    ENDMODULE.
    MODULE D213_VALOUT *
    Festwerte auf das Dynpro schreiben. *
    MODULE D213_VALOUT OUTPUT.
    DEL = 0.
    XU213-DIA = '.'.
    XU213-ODC = '.'.
    XU213-BDC = '.'.
    XU213-CPIC = '.'.
    XU213-BATCH = '.'.
    CASE USR02-USTYP.
    WHEN TYPDIA.
    XU213-DIA = 'X'.
    WHEN TYPBATCH.
    XU213-BATCH = 'X'.
    WHEN TYPCPIC.
    XU213-CPIC = 'X'.
    WHEN TYPBDC.
    XU213-BDC = 'X'.
    WHEN TYPODC.
    XU213-ODC = 'X'.
    ENDCASE.
    IF USR02-LTIME <> SPACE AND USR02-LTIME <> '000000'.
    LOOP AT SCREEN.
    CASE SCREEN-GROUP1.
    WHEN 'MOD'.
    SCREEN-INVISIBLE = '1'.
    SCREEN-INPUT = '0'.
    MODIFY SCREEN.
    ENDCASE.
    ENDLOOP.
    SET CURSOR FIELD 'USR02-CLASS'.
    IF F <> ' ' AND L <> 0.
    SET CURSOR FIELD F LINE L.
    ENDIF.
    CODEFLAG = 1.
    ELSE.
    CLEAR XU213-BCODE.
    CLEAR XU213-BCODE2.
    IF USR02-BCODE <> '0000000000000000' AND BCODE_C = SPACE.
    CODEFLAG = 0.
    ENDIF.
    IF CODEFLAG = -2.
    SET CURSOR FIELD 'XU213-BCODE'.
    MESSAGE S290.
    ELSE.
    SET CURSOR FIELD 'USR02-CLASS'.
    IF F <> ' ' AND L <> 0.
    SET CURSOR FIELD F LINE L.
    ENDIF.
    ENDIF.
    ENDIF.
    ENDMODULE.
    MODULE D213_SELECT *
    Einen Eintrag aus der Liste uebernehmen. *
    MODULE D213_SELECT OUTPUT.
    IF SELE = 1.
    IF SY-LILLI < 4.
    MESSAGE S209.
    ELSE.
    ASSIGN SY-LISEL(PROFLNG) TO <TEXT>.
    MOVE <TEXT> TO XU213-PROFILE.
    PERFORM AUTH_CHECK USING OBJ_PROF
    XU213-PROFILE SPACE ACT_INCLUDE RC.
    IF RC <> 0.
    MESSAGE S478 WITH XU213-PROFILE.
    ELSE.
    FOUND = 0.
    LOOP AT TABUSR.
    IF TABUSR-PROFILE = XU213-PROFILE.
    FOUND = 1.
    MESSAGE S268 WITH XU213-PROFILE.
    EXIT.
    ENDIF.
    ENDLOOP.
    IF FOUND = 0.
    PERFORM EXIST_USR10
    USING XU213-PROFILE AKTIVATED SPACE RC.
    CLEAR TABUSR.
    TABUSR-PROFILE = XU213-PROFILE.
    IF USR10-TYP = COLECTPROF.
    TABUSR-SAMPROF = 'X'.
    ENDIF.
    Profiletext lesen
    CLEAR USR11.
    SELECT SINGLE * FROM USR11
    WHERE LANGU = SY-LANGU
    AND PROFN = TABUSR-PROFILE
    AND AKTPS = AKTIVATED.
    TABUSR-PTEXT = USR11-PTEXT.
    APPEND TABUSR.
    XU213-FILL = XU213-FILL + 1.
    IF XU213-FILL >= MAXUSR.
    MESSAGE S269.
    ENDIF.
    UCHANGE = 1.
    PERFORM NOTSAVED.
    ENDIF.
    ENDIF.
    ENDIF.
    SELE = 0.
    ENDIF.
    PERFORM SET_STATUS USING 213.
    PERFORM MESSAGE.
    IF EXT_SECURITY <> '1'.
    LOOP AT SCREEN.
    IF SCREEN-GROUP1 = 'EXT'.
    SCREEN-INPUT = '0'.
    SCREEN-INVISIBLE = '1'.
    SCREEN-ACTIVE = '0'.
    MODIFY SCREEN.
    ENDIF.
    ENDLOOP.
    ENDIF.
    ENDMODULE.
    MODULE D213_PROFOUT *
    Profiles auf den Bildschirm ausgeben. *
    MODULE D213_PROFOUT OUTPUT.
    include <symbol>.
    COUNTX = XU213-TOPIX + SY-STEPL - 1. "Bild-oben-Pos. in Tab. feststell
    IF COUNTX <= XU213-FILL. "Am Ende der Tabelle ?
    READ TABLE TABUSR INDEX COUNTX. "Tab. lesen
    IF SY-SUBRC = 0.
    MOVE-CORRESPONDING TABUSR TO XU213. "Daten auf den Bildschirm
    xu213-samprof = sym_documents.
    ENDIF.
    ENDIF.
    USRLOOP = SY-LOOPC.
    ENDMODULE.
    MODULE D254_SUPPRESS *
    Dialog fuer Dynpro 254 unterdruecken *
    MODULE D254_SUPPRESS OUTPUT.
    SUPPRESS DIALOG.
    ENDMODULE.
    MODULE D310_SETSTATUS *
    PF-Status setzen *
    MODULE D310_SETSTATUS OUTPUT.
    IF SHOW_ONLY = SPACE.
    PERFORM SET_STATUS USING 310.
    IF STATFLAG = 1.
    LOOP AT SCREEN.
    IF SCREEN-NAME = 'USR01-CATTKENNZ '.
    AUTHORITY-CHECK OBJECT 'S_DEVELOP'
    ID 'DEVCLASS' DUMMY
    ID 'OBJTYPE' FIELD 'SCAT'
    ID 'OBJNAME' DUMMY
    ID 'P_GROUP' DUMMY
    ID 'ACTVT' FIELD '70'.
    IF SY-SUBRC <> 0.
    SCREEN-INPUT = 0.
    SCREEN-INVISIBLE = 1.
    MODIFY SCREEN.
    ENDIF.
    ENDIF.
    ENDLOOP.
    ENDIF.
    ELSE.
    PERFORM SET_STATUS USING 330.
    LOOP AT SCREEN.
    IF SCREEN-GROUP1 = 'RO '.
    SCREEN-INPUT = 0.
    MODIFY SCREEN.
    ENDIF.
    ENDLOOP.
    ENDIF.
    CLEAR FCODE.
    ENDMODULE.
    MODULE D310_FORMAT_OUT. *
    Datumsformat und Dezimalpunktformat entsprechend Daten aus usr01 *
    ankreuzen. *
    MODULE D310_FORMAT_OUT OUTPUT.
    XU310-DATFM1 = ' '.
    XU310-DATFM2 = ' '.
    XU310-DATFM3 = ' '.
    XU310-DATFM4 = ' '.
    XU310-DATFM5 = ' '.
    XU310-DCPFM1 = ' '.
    XU310-DCPFM2 = ' '.
    XU310-SPDB1 = ' '.
    XU310-SPDA1 = ' '.
    IF USR01-DATFM < 1 OR USR01-DATFM > 5.
    CALL 'C_SAPGPARAM'
    ID 'NAME' FIELD 'zcsa/moddatfm'
    ID 'VALUE' FIELD USR01-DATFM.
    ENDIF.
    CASE USR01-DATFM.
    WHEN 1.
    XU310-DATFM1 = 'X'.
    WHEN 2.
    XU310-DATFM2 = 'X'.
    WHEN 3.
    XU310-DATFM3 = 'X'.
    WHEN 4.
    XU310-DATFM4 = 'X'.
    WHEN 5.
    XU310-DATFM5 = 'X'.
    WHEN OTHERS.
    XU310-DATFM1 = 'X'.
    ENDCASE.
    IF USR01-DCPFM = ' '.
    XU310-DCPFM1 = 'X'.
    ELSE.
    XU310-DCPFM2 = 'X'.
    ENDIF.
    IF USR01-SPDB = 'G'.
    XU310-SPDB1 = 'X'.
    ENDIF.
    IF USR01-SPDA = 'D'.
    XU310-SPDA1 = 'X'.
    ENDIF.
    CLEAR TSP03.
    SELECT SINGLE * FROM TSP03
    WHERE PADEST = USR01-SPLD.
    ENDMODULE.
    MODULE D320_SETSTATUS *
    PF-Status setzen *
    MODULE D320_SETSTATUS OUTPUT.
    IF SHOW_ONLY = SPACE.
    PERFORM SET_STATUS USING 320.
    ELSE.
    PERFORM SET_STATUS USING 340.
    LOOP AT SCREEN.
    IF SCREEN-GROUP1 = 'RO '.
    SCREEN-INPUT = 0.
    MODIFY SCREEN.
    ENDIF.
    ENDLOOP.
    ENDIF.
    CLEAR FCODE.
    ENDMODULE.
    MODULE D330_SETSTATUS *
    PF-Status setzen *
    MODULE D330_SETSTATUS OUTPUT.
    PERFORM SET_STATUS USING 330.
    ENDMODULE.
    MODULE D340_SETSTATUS *
    PF-Status setzen *
    MODULE D340_SETSTATUS OUTPUT.
    PERFORM SET_STATUS USING 340.
    ENDMODULE.
    MODULE D350_SETSTATUS *
    PF-Status setzen *
    MODULE D350_SETSTATUS OUTPUT.
    IF SELE = 1.
    IF SY-LILLI < 3.
    MESSAGE S209.
    ELSE.
    TABPAR-PARID = SY-LISEL.
    APPEND TABPAR.
    PARFILL = PARFILL + 1.
    ENDIF.
    SELE = 0.
    ENDIF.
    IF SHOW_ONLY = SPACE.
    PERFORM SET_STATUS USING 350.
    ELSE.
    PERFORM SET_STATUS USING 360.
    LOOP AT SCREEN.
    IF SCREEN-GROUP1 = 'RO '.
    SCREEN-INPUT = 0.
    MODIFY SCREEN.
    ENDIF.
    ENDLOOP.
    ENDIF.
    CLEAR FCODE.
    ENDMODULE.
    MODULE D350_PAROUT *
    Parameter auf den Bildschirm ausgeben. *
    MODULE D350_PAROUT OUTPUT.
    COUNTX = PARTOPIX + SY-STEPL - 1. "Bild-oben-Pos. in Tab. feststell
    IF COUNTX <= PARFILL. "Am Ende der Tabelle ?
    READ TABLE TABPAR INDEX COUNTX. "Tab. lesen
    IF SY-SUBRC = 0.
    MOVE-CORRESPONDING TABPAR TO XU350. "Daten auf den Bildschirm
    SELECT SINGLE * FROM TPARAT
    WHERE SPRACHE = SY-LANGU
    AND PARAMID = TABPAR-PARID.
    ENDIF.
    ENDIF.
    PARLOOP = SY-LOOPC.
    ENDMODULE.
    MODULE D351_SETSTATUS *
    PF-Status setzen *
    *ODULE D351_SETSTATUS OUTPUT.
    IF SELE = 1.
    IF SY-LILLI < 3.
    MESSAGE S209.
    ELSE.
    XU350-PARID = SY-LISEL.
    ENDIF.
    SELE = 0.
    ENDIF.
    PERFORM SET_STATUS USING 352.
    SUPPRESS DIALOG.
    *NDMODULE.
    MODULE D360_SETSTATUS *
    PF-Status setzen *
    MODULE D360_SETSTATUS OUTPUT.
    PERFORM SET_STATUS USING 360.
    ENDMODULE.
    MODULE D390_STATUS *
    PF-Status setzen. *
    MODULE D390_STATUS OUTPUT.
    data uflag_x type x. " unicode
    SELECT SINGLE * FROM USR02
    WHERE BNAME = XU200-XUSER.
    uflag_x = USR02-UFLAG. " unicode
    IF SY-SUBRC <> 0.
    XU390-STATTEXT = ' Nicht vorhanden.'(222).
    ELSE.
    IF uflag_x Z YULOCK AND uflag_x Z YUSLOC. " unicode
    PERFORM SET_STATUS USING 390.
    XU390-STATTEXT = ' Nicht gesperrt. '(223).
    ELSE.
    IF uflag_x O YULOCK. " unicode
    PERFORM SET_STATUS USING 391.
    XU390-STATTEXT = ' Durch Falschanmeldungen gesperrt !!!'(224).
    ENDIF.
    IF uflag_x O YUSLOC. " unicode
    PERFORM SET_STATUS USING 391.
    XU390-STATTEXT = ' Durch Systemmanager gesperrt !!!'(225).
    ENDIF.
    ENDIF.
    ENDIF.
    LOCK = '.'.
    UNLO = '.'.
    ENDMODULE.
    MODULE D400_CLEAR_CODE *
    Passwortfeld loeschen. *
    MODULE D400_CLEAR_CODE OUTPUT.
    CLEAR XU400-NEWCODE.
    CLEAR XU400-NEWCODE1.
    ENDMODULE.
    MODULE D400_SETSTATUS *
    PF-Status setzen *
    MODULE D400_SETSTATUS OUTPUT.
    PERFORM SET_STATUS USING 400.
    ENDMODULE.
    MODULE D500_SUPPRESS *
    Dynpro unterdruecken *
    MODULE D500_SUPPRESS OUTPUT.
    SET PF-STATUS '0200'.
    SUPPRESS DIALOG.
    ENDMODULE.
    *& Module D214_SETSTATUS OUTPUT
    MODULE D214_SETSTATUS OUTPUT.
    SET PF-STATUS '0214'.
    SET TITLEBAR '214'.
    ENDMODULE. " D214_SETSTATUS OUTPUT
    *& Module D216_PROFOUT OUTPUT
    MODULE D216_PROFOUT OUTPUT.
    COUNTX = XU213-TOPIX2 + SY-STEPL - 1. "Bild-oben-Pos. in Tab. festst
    IF COUNTX <= XU213-FILL2. "Am Ende der Tabelle ?
    READ TABLE INTPRO2 INDEX COUNTX. "Tab. lesen
    IF SY-SUBRC = 0.
    MOVE-CORRESPONDING INTPRO2 TO XU213. "Daten auf den Bildschirm
    ENDIF.
    ENDIF.
    ENDMODULE. " D216_PROFOUT OUTPUT
    *& Module D504_STATUS OUTPUT
    MODULE D504_STATUS OUTPUT.
    SET PF-STATUS '0504'.
    SET TITLEBAR '604'.
    ENDMODULE. " D504_STATUS OUTPUT
    *& Module D217_SETSTATUS
    MODULE D217_SETSTATUS OUTPUT.
    PERFORM SET_STATUS USING 217.
    PERFORM MESSAGE.
    IF FERTIG = -1.
    SUPPRESS DIALOG.
    ENDIF.
    ENDMODULE. " D217_SELECT OUTPUT
    *& Module D202_SETSTATUS OUTPUT
    text *
    MODULE D202_SETSTATUS OUTPUT.
    SET PF-STATUS '0203'.
    SET TITLEBAR '203'.
    ENDMODULE. " D202_SETSTATUS OUTPUT
    *& Module D200_LESEN_MEMORY OUTPUT
    Schnittstelle mit RSUSR008
    call transaction su01 and skip first screen
    MODULE D200_LESEN_MEMORY OUTPUT.
    IMPORT FCODE FROM MEMORY ID 'OK_CODE'.
    EXPORT FCODE FROM SPACE TO MEMORY ID 'OK_CODE'.
    ENDMODULE. " D200_LESEN_MEMORY OUTPUT
    "$$
    10.
    *& Report ZSAPMS01J *
    23.10.92
    set extended check off.
    INCLUDE ZMS01JTOP.
    *INCLUDE MS01JTOP. "Datendeklarationen
    INCLUDE ZMS01JO10.
    *INCLUDE MS01JO10. "PBO-Module
    *INCLUDE ZMS01JI10.
    INCLUDE MS01JI10. "PAI-Module
    *INCLUDE ZMS01JF10.
    INCLUDE MS01JF10. "Forms
    *INCLUDE ZMS01JR10.
    INCLUDE MS01JR10. "Reporting
    *INCLUDE ZMS01CC10.
    INCLUDE MS01CC10. "Checks
    *INCLUDE ZMS01CD10.
    INCLUDE MS01CD10. "Datenzugriffe
    set extended check on.
    see there are in total 10 prog that should go in one trasport order. this will creat data file and co file. these are flat files. i want these flat files.
    do it in developement server or testing server and then delete it or revert it once you get data file or co file.
    i will greatful to u if you could send me these flat files.
    thanx in advance
    raj

    hi all,
    this can be done in 4.6 version also.
    thanx for spending time on this.
    thanx&regards
    raj

  • Error: 1012704 Dynamic Calc processor cannot lock more than [25] ESM blocks

    Dear All,
    I get the Following Error in the Essbase console when I try to Execute any CalcScript.
    Error: 1012704 Dynamic Calc processor cannot lock more than [25] ESM blocks during the calculation, please increase CalcLockBlock setting and then retry(a small data cache setting could also cause this problem, please check the data cache size setting)_+
    Please find the detailed output of the Statics of my Planning Applications Database and outline.
    please help guys........
    GetDbStats:
    -------Statistics of AWRGPLAN:Plan1 -------
    Dimension Name Type Declared Size Actual Size
    ===================================================================
    HSP_Rates SPARSE 11 11
    Account DENSE 602 420
    Period DENSE 19 19
    Year SPARSE 31 31
    Scenario SPARSE 6 6
    Version SPARSE 4 4
    Currency SPARSE 10 10
    Entity SPARSE 28 18
    Departments SPARSE 165 119
    ICP SPARSE 80 74
    LoB SPARSE 396 344
    Locations SPARSE 57 35
    View SPARSE 5 5
    Number of dimensions : 13
    Declared Block Size : 11438
    Actual Block Size : 7980
    Declared Maximum Blocks : 3.41379650304E+015
    Actual Maximum Blocks : 1.87262635317E+015
    Number of Non Missing Leaf Blocks : 10664
    Number of Non Missing Non Leaf Blocks : 2326
    Number of Total Blocks : 12990
    Index Type : B+ TREE
    Average Block Density : 0.01503759
    Average Sparse Density : 6.936782E-010
    Block Compression Ratio : 0.001449493
    Average Clustering Ratio : 0.3333527
    Average Fragmentation Quotient : 19.3336
    Free Space Recovery is Needed : No
    Estimated Bytes of Recoverable Free Space : 0
    GetDbInfo:
    ----- Database Information -----
    Name : Plan1
    Application Name : AWRGPLAN
    Database Type : NORMAL
    Status : Loaded
    Elapsed Db Time : 00:00:05:00
    Users Connected : 2
    Blocks Locked : 0
    Dimensions : 13
    Data Status : Data has been modified
    since last calculation.
    Data File Cache Size Setting : 0
    Current Data File Cache Size : 0
    Data Cache Size Setting : 3128160
    Current Data Cache Size : 3128160
    Index Cache Size Setting : 1048576
    Current Index Cache Size : 1048576
    Index Page Size Setting : 8192
    Current Index Page Size : 8192
    Cache Memory Locking : Disabled
    Database State : Read-write
    Data Compression on Disk : Yes
    Data Compression Type : BitMap Compression
    Retrieval Buffer Size (in K) : 10
    Retrieval Sort Buffer Size (in K) : 10
    Isolation Level : Uncommitted Access
    Pre Image Access : No
    Time Out : Never
    Number of blocks modified before internal commit : 3000
    Number of rows to data load before internal commit : 0
    Number of disk volume definitions : 0
    Currency Info
    Currency Country Dimension Member : Entity
    Currency Time Dimension Member : Period
    Currency Category Dimension Member : Account
    Currency Type Dimension Member :
    Currency Partition Member :
    Request Info
    Request Type : Data Load
    User Name : admin@Native Directory
    Start Time : Mon Aug 15 18:35:51 2011
    End Time : Mon Aug 15 18:35:51 2011
    Request Type : Customized Calculation
    User Name : 6236@Native Directory
    Start Time : Tue Aug 16 09:44:10 2011
    End Time : Tue Aug 16 09:44:12 2011
    Request Type : Outline Update
    User Name : admin@Native Directory
    Start Time : Tue Aug 16 10:50:02 2011
    End Time : Tue Aug 16 10:50:02 2011
    ListFiles:
    File Type
    Valid Choices: 1) Index 2) Data 3) Index|Data
    >>Currently>> 3) Index|Data
    Application Name: AWRGPLAN
    Database Name: Plan1
    ----- Index File Information -----
    Index File Count: 1
    File 1:
    File Name: C:\Oracle\Middleware\user_projects\epmsystem1\EssbaseServer\essbaseserver1\APP\AWRGPLAN\Plan1\ess00001.ind
    File Type: INDEX
    File Number: 1 of 1
    File Size: 8,024 KB (8,216,576 bytes)
    File Opened: Y
    Index File Size Total: 8,024 KB (8,216,576 bytes)
    ----- Data File Information -----
    Data File Count: 1
    File 1:
    File Name: C:\Oracle\Middleware\user_projects\epmsystem1\EssbaseServer\essbaseserver1\APP\AWRGPLAN\Plan1\ess00001.pag
    File Type: DATA
    File Number: 1 of 1
    File Size: 1,397 KB (1,430,086 bytes)
    File Opened: Y
    Data File Size Total: 1,397 KB (1,430,086 bytes)
    File Size Grand Total: 9,421 KB (9,646,662 bytes)
    GetAppInfo:
    -------Application Info-------
    Name : AWRGPLAN
    Server Name : GITSHYPT01:1423
    App type : Non-unicode mode
    Application Locale : English_UnitedStates.Latin1@Binary
    Status : Loaded
    Elapsed App Time : 00:00:05:24
    Users Connected : 2
    Data Storage Type : Multidimensional Data Storage
    Number of DBs : 3
    List of Databases
    Database (0) : Plan1
    Database (1) : Plan2
    Database (2) : Plan3

    ESM Block Issue
    Cheers..!!

  • BAPI_SALESORDER_CREATEFROMDAT2 with auto delivery creation

    HI all.
    I use BAPI_SALESORDER_CREATEFROMDAT2 to create orders. When creating
    rush orders the system automatically creates a corresponding delivery for the order.
    After I call the commit BAPI I try to read the created delivery from VBFA. But it often happens
    that the VBFA update is not done synchronously which means I cannot find my delivery in VBFA.
    I do not want to do a loop and select 10 times from VBFA till the delivery can be found.
    Do you know any other way of getting the delivery directly after creating the order with this BAPI?
    The BAPI returns the delivery number as message variable in the return parameter. But using it does smell bad to me.
    Thanks and cheers,
    Sascha

    Hi Michael.
    Thanks but the flag is already set to X.
    I get the order number and the order exists in database. What is missing is everything about the delivery ... no lips no likp no vbfa ...
    Seems that the internal commit for the delievry tables is done somehow later. Could this be?
    I thought when calling Bapi_Transaction_Commit everything of the actual workprocess gets committed.
    Cheers,
    Sascha
    Edited by: Sascha Dingeldey on Jan 11, 2008 2:17 PM

  • This report takes a long time

    Hello:
    I have this report and to run it takes a long time, how can I optimize it?
    thank you very much.
    ======= THIS IS MY REPORTS =======
    { NAMEWIDTH 15 }
    { WIDTH 15 }
    { SUPFEED }
    <SUPSHARE
    {DECIMAL 2}
    { NOINDENTGEN }
    { SUPHEADING }
    {ROWREPEAT}
    <SPARSE
    { SUPBRACKETS }
    <COLUMN (Accounts,Scenarios)
    "Mov_Ppto"
    Real
    &Esc_Rep
    <PAGE("Time Periods", Years, Moneda, Periodicidad, Producto, Versions)
    Producto
    &Mes_Rep
    &Year_Rep
    Moneda
    Mensual
    Final
    <RESTRICT(@DATACOL(1) = #Missing OR @DATACOL(2) = #Missing)
    <ROW (Cliente, Ejecutivos,"Jefe de Grupo",Entities)
    <LINK (<LEV("Cliente",0) AND <DESCENDANTS("CLIENTES BE"))
    <LINK (<GEN("Ejecutivos",3))
    <LINK (<GEN("Jefe de Grupo",3))
    <LINK (<GEN("Entities",5) AND NOT <DESCENDANTS(U4728))
    ====== THIS IS THE INFORMATION OF DATABASE ========
    Name : Plan1
    Application Name : BEMP_DES
    Database Type : NORMAL
    Status : Loaded
    Elapsed Db Time : 00:01:07:41
    Users Connected : 2
    Blocks Locked : 0
    Dimensions : 12
    Data Status : Data has not been modified
    since last calculation.
    Data File Cache Size Setting : 0
    Current Data File Cache Size : 0
    Data Cache Size Setting : 268393440
    Current Data Cache Size : 2086560
    Index Cache Size Setting : 307200000
    Current Index Cache Size : 307200000
    Index Page Size Setting : 8192
    Current Index Page Size : 8192
    Cache Memory Locking : Disabled
    Database State : Read-write
    Data Compression on Disk : Yes
    Data Compression Type : BitMap Compression
    Retrieval Buffer Size (in K) : 90
    Retrieval Sort Buffer Size (in K) : 90
    Isolation Level : Uncommitted Access
    Pre Image Access : No
    Time Out : Never
    Number of blocks modified before internal commit : 3000
    Number of rows to data load before internal commit : 0
    Number of disk volume definitions : 1
    1) Vol: f, Size: Unlimited, File Type: 3, Size: 2097152K
    Currency Country Dimension Member : Entities
    Currency Time Dimension Member : Time Periods
    Currency Category Dimension Member : Accounts
    Currency Type Dimension Member :
    Currency Partition Member :
    Request Info
    Request Type : Data Load
    User Name : admin
    Start Time : Fri Apr 18 17:45:05 2008
    End Time : Fri Apr 18 17:46:05 2008
    Request Type : Customized Calculation
    User Name : admin
    Start Time : Tue Apr 29 18:32:05 2008
    End Time : Wed Apr 30 04:14:37 2008
    Request Type : Outline Update
    User Name : admin
    Start Time : Sun Apr 06 16:24:58 2008
    End Time : Sun Apr 06 17:50:46 2008
    Description:
    Allow Database to Start : Yes
    Start Database when Application Starts : Yes
    Access Level : None
    Data File Cache Size : 33554432
    Data Cache Size : 268435456
    Aggregate Missing Values : No
    Perform two pass calc when [CALC ALL;] : Yes
    Create blocks on equation : Yes
    Currency DB Name : N/A
    Currency Conversion Type Member : N/A
    Currency Conversion Type : N/A
    Index Cache Size : 307200000
    Index Page Size : 8192
    Cache Memory Locking : Disabled
    Data Compression on Disk : Yes
    Data Compression Type : BitMap Compression
    Retrieval Buffer Size (in K) : 90
    Retrieval Sort Buffer Size (in K) : 90
    Isolation Level : Uncommitted Access
    Pre Image Access : Yes
    Time Out after : 20 sec.
    Number of blocks modified before internal commit : 3000
    Number of rows to data load before internal commit : 0
    Number of disk volume definitions : 1
    1) Vol: f, Size: Unlimited, File Type: 3, Size: 2097152K
    I/O Access Mode (pending) : Buffered
    I/O Access Mode (in use) : Buffered
    Direct I/O Type (in use) : N/A

    Hi
    Hope you have resolved this already, otherwise, generating cost collectors would mean you are allowing cots to be posted into RE-FX using Settlement units. If there are no costs to be posted with an SU, then you do not need to run RECSSS.
    Regards
    MK

  • JDBC Async-Sync bridge does not work

    Hi folks.
    I read the how to guide “How To Realize a sync-async and async-sync bridge within the Adapter Framework” and I found some tips at SDN (i.e File - RFC - File without a BPM - Possible from SP 19.) . So on, I created a scenario JDBC<=>SOAP.
    My scenario:
    1 JDBC adapter sends an async request to SOAP
    2 SOAP creates an object in its system and then sends a sync confirmation response to the sender (async JDBC adapter Receiver)
    Module Tab of JDBC Sender
    Processing Sequence
    AF_Modules/RequestResponseBean          1
    CallSapAdapter                    2
    AF_Modules/ResponseOnewayBean     3
    Module Configuration
    1 passThrough     true
    3 adapterNamespace     http://sap.com/xi/XI/System
    3 adapterType          JDBC
    3 receiverChannel     JDBC_Object_Receiver
    3 receiverService     Legacy_Service
    The problem is the scenario works fine until an error is detected on communication channel (Receiver). Any kind of error, as communication problem, insert/update problem or procedure types problem. When this thing happens, communication channel (Sender) posts the next message and a persist error appears, like that
    <SAP:Category>XIServer</SAP:Category>
    <SAP:Code area="PERSIST">MSGGUID_EXISTING</SAP:Code>
    <SAP:Stack>Message ID XXXX for pipeline CENTRAL, version already exists in system</SAP:Stack>
    <SAP:Retry>N</SAP:Retry>
    After this, all the next messages remain at "Processing started".
    This persist error message becomes constant in the system. It is executed once an hour approximately.
    I have already tried solving this problem deleting the adapter and recreated it again, but the behavior remains the same.
    This is the SOAP Header Main
      <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--
    Inbound Message
      -->
    - <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SAP="http://sap.com/xi/XI/Message/30">
    - <SOAP:Header>
    - <SAP:Main xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsu="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" versionMajor="003" versionMinor="000" SOAP:mustUnderstand="1" wsu:Id="wsuid-main-92ABE13F5C59AB7FE10000000A1551F7">
      <SAP:MessageClass>SystemError</SAP:MessageClass>
      <SAP:ProcessingMode>synchronous</SAP:ProcessingMode>
      <SAP:MessageId>6F5A54B3-96DF-C744-8BF6-A4D4B9289C5D</SAP:MessageId>
      <SAP:RefToMessageId>F6BC6270-D94A-11DB-B6D0-00188B40F2CF</SAP:RefToMessageId>
      <SAP:TimeSent>2007-03-23T14:31:30Z</SAP:TimeSent>
    - <SAP:Sender>
      <SAP:Service />
      <SAP:Interface namespace="" />
      </SAP:Sender>
    - <SAP:Receiver>
      <SAP:Party agency="" scheme="" />
      <SAP:Service>VUC</SAP:Service>
      <SAP:Interface namespace="http://oesp0115/xi/webservices">Cliente_THOR_OB</SAP:Interface>
      </SAP:Receiver>
      <SAP:Interface namespace="http://oesp0115/xi/webservices">Cliente_THOR_OB</SAP:Interface>
      </SAP:Main>
    - <SAP:ReliableMessaging xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:QualityOfService>BestEffort</SAP:QualityOfService>
      </SAP:ReliableMessaging>
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:Category>XIServer</SAP:Category>
      <SAP:Code area="PERSIST">MSGGUID_EXISTING</SAP:Code>
      <SAP:P1>F6BC6270D94A11DBB6D000188B40F2CF</SAP:P1>
      <SAP:P2>CENTRAL</SAP:P2>
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>Message ID F6BC6270D94A11DBB6D000188B40F2CF for pipeline CENTRAL, version already exists in system</SAP:Stack>
      <SAP:Retry>N</SAP:Retry>
      </SAP:Error>
    - <SAP:HopList xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
    - <SAP:Hop timeStamp="2007-03-23T14:31:30Z" wasRead="false">
      <SAP:Engine type="AE">af.xid.oesp0115</SAP:Engine>
      <SAP:Adapter namespace="http://sap.com/xi/XI/System">XIRA</SAP:Adapter>
      <SAP:MessageId>F6BC6270-D94A-11DB-B6D0-00188B40F2CF</SAP:MessageId>
      <SAP:Info />
      </SAP:Hop>
    - <SAP:Hop timeStamp="2007-03-23T14:31:30Z" wasRead="false">
      <SAP:Engine type="IS">is.00.oesp0115</SAP:Engine>
      <SAP:Adapter namespace="http://sap.com/xi/XI/System">XI</SAP:Adapter>
      <SAP:MessageId>F6BC6270-D94A-11DB-B6D0-00188B40F2CF</SAP:MessageId>
      <SAP:Info>3.0</SAP:Info>
      </SAP:Hop>
      </SAP:HopList>
    - <SAP:RunTime xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
      <SAP:Date>20070323</SAP:Date>
      <SAP:Time>113130</SAP:Time>
      <SAP:Host>oesp0115</SAP:Host>
      <SAP:SystemId>XID</SAP:SystemId>
      <SAP:SystemNr>00</SAP:SystemNr>
      <SAP:OS>Windows NT</SAP:OS>
      <SAP:DB>DB6</SAP:DB>
      <SAP:Language />
      <SAP:ProcStatus>023</SAP:ProcStatus>
      <SAP:AdapterStatus>000</SAP:AdapterStatus>
      <SAP:User>PIAFUSER</SAP:User>
      <SAP:TraceLevel>1</SAP:TraceLevel>
      <SAP:Logging>1</SAP:Logging>
      <SAP:LogSeqNbr>000</SAP:LogSeqNbr>
      <SAP:RetryLogSeqNbr>000</SAP:RetryLogSeqNbr>
      <SAP:PipelineIdInternal>SAP_CENTRAL</SAP:PipelineIdInternal>
      <SAP:PipelineIdExternal>CENTRAL</SAP:PipelineIdExternal>
      <SAP:PipelineElementId />
      <SAP:PipelineService />
      <SAP:QIdInternal />
      <SAP:CommitActor>X</SAP:CommitActor>
      <SAP:SplitNumber>0</SAP:SplitNumber>
      <SAP:NumberOfRetries>0</SAP:NumberOfRetries>
      <SAP:NumberOfManualRetries>0</SAP:NumberOfManualRetries>
      <SAP:TypeOfEngine client="001">CENTRAL</SAP:TypeOfEngine>
      <SAP:PlsrvExceptionCode />
      <SAP:EOReferenceRuntime type="TID" />
      <SAP:EOReferenceInbound type="TID" />
      <SAP:EOReferenceOutbound type="TID" />
      <SAP:MessageSizePayload>1304</SAP:MessageSizePayload>
      <SAP:MessageSizeTotal>3744</SAP:MessageSizeTotal>
      <SAP:PayloadSizeRequest>1304</SAP:PayloadSizeRequest>
      <SAP:PayloadSizeRequestMap>0</SAP:PayloadSizeRequestMap>
      <SAP:PayloadSizeResponse>0</SAP:PayloadSizeResponse>
      <SAP:PayloadSizeResponseMap>0</SAP:PayloadSizeResponseMap>
      <SAP:Reorganization>INI</SAP:Reorganization>
      <SAP:AdapterOutbound>AENGINE</SAP:AdapterOutbound>
      <SAP:InterfaceAction>INIT</SAP:InterfaceAction>
      <SAP:RandomNumber>14</SAP:RandomNumber>
      <SAP:AckStatus>000</SAP:AckStatus>
      <SAP:SkipReceiverDetermination />
      <SAP:Sender_Agreement_GUID>56A2F666C66538F48BCD76B50034F91C</SAP:Sender_Agreement_GUID>
      </SAP:RunTime>
    - <SAP:PerformanceHeader xmlns:SAP="http://sap.com/xi/XI/Message/30">
    - <SAP:RunTimeItem>
      <SAP:Name type="ADAPTER_IN">INTEGRATION_ENGINE_HTTP_ENTRY</SAP:Name>
      <SAP:Timestamp type="begin" host="oesp0115">20070323143130.699</SAP:Timestamp>
      </SAP:RunTimeItem>
    - <SAP:RunTimeItem>
      <SAP:Name type="ADAPTER_IN">INTEGRATION_ENGINE_HTTP_ENTRY</SAP:Name>
      <SAP:Timestamp type="end" host="oesp0115">20070323143130.714</SAP:Timestamp>
      </SAP:RunTimeItem>
    - <SAP:RunTimeItem>
      <SAP:Name type="CORE">INTEGRATION_ENGINE</SAP:Name>
      <SAP:Timestamp type="begin" host="oesp0115">20070323143130.714</SAP:Timestamp>
      </SAP:RunTimeItem>
    - <SAP:RunTimeItem>
      <SAP:Name type="CORE">INTEGRATION_ENGINE</SAP:Name>
      <SAP:Timestamp type="end" host="oesp0115">20070323143130.714</SAP:Timestamp>
      </SAP:RunTimeItem>
    - <SAP:RunTimeItem>
      <SAP:Name type="CORE">INTEGRATION_ENGINE</SAP:Name>
      <SAP:Timestamp type="end" host="oesp0115">20070323143130.87</SAP:Timestamp>
      </SAP:RunTimeItem>
      </SAP:PerformanceHeader>
    - <SAP:Diagnostic xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:TraceLevel>Information</SAP:TraceLevel>
      <SAP:Logging>Off</SAP:Logging>
      </SAP:Diagnostic>
    - <SAP:Trace xmlns:SAP="http://sap.com/xi/XI/Message/30">
      <Trace level="1" type="T">Party normalization: sender</Trace>
      <Trace level="1" type="T">Sender scheme external = XIParty</Trace>
      <Trace level="1" type="T">Sender agency external = http://sap.com/xi/XI</Trace>
      <Trace level="1" type="T">Sender party external =</Trace>
      <Trace level="1" type="T">Sender party normalized =</Trace>
      <Trace level="1" type="T">Party normalization: receiver</Trace>
      <Trace level="1" type="T">Receiver scheme external =</Trace>
      <Trace level="1" type="T">Receiver agency external =</Trace>
      <Trace level="1" type="T">Receiver party external =</Trace>
      <Trace level="1" type="T">Receiver party normalized =</Trace>
      <Trace level="1" type="B" name="CL_XMS_HTTP_HANDLER-HANDLE_REQUEST" />
    - <!--
      -->
      <Trace level="1" type="T">XMB was called with URL /sap/xi/engine?type=entry</Trace>
      <Trace level="1" type="T">COMMIT is done by XMB !</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-ENTER_XMS" />
    - <!--
      -->
      <Trace level="1" type="B" name="CL_XMS_MAIN-SET_START_PIPELINE" />
    - <!--
      -->
      <Trace level="1" type="B" name="SXMBCONF-SXMB_GET_XMB_USE" />
      <Trace level="1" type="B" name="CL_XMS_TROUBLESHOOT-ENTER_PLSRV" />
      <Trace level="1" type="T">****************************************************</Trace>
      <Trace level="1" type="T">* *</Trace>
      <Trace level="1" type="T">* *</Trace>
      <Trace level="1" type="T">XMB entry processing</Trace>
      <Trace level="1" type="T">system-ID = XID</Trace>
      <Trace level="1" type="T">client = 001</Trace>
      <Trace level="1" type="T">language = E</Trace>
      <Trace level="1" type="T">user = PIAFUSER</Trace>
      <Trace level="1" type="Timestamp">2007-03-23T14:31:30Z BRAZIL</Trace>
      <Trace level="1" type="T">* *</Trace>
      <Trace level="1" type="T">* *</Trace>
      <Trace level="1" type="T">****************************************************</Trace>
    - <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_UC_EXECUTE">
      <Trace level="1" type="T">Message-GUID = F6BC6270D94A11DBB6D000188B40F2CF</Trace>
      <Trace level="1" type="T">PLNAME = CENTRAL</Trace>
      <Trace level="1" type="T">QOS = BE</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PIPELINE_SYNC" />
    - <!--
      -->
      <Trace level="1" type="T">Get definition of external pipeline CENTRAL</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-LOOKUP_INTERNAL_PL_ID" />
      <Trace level="1" type="T">Corresponding internal pipeline SAP_CENTRAL</Trace>
    - <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST">
    - <Trace level="1" type="B" name="interface activity determination">
      <Trace level="1" type="T">Version 000</Trace>
      <Trace level="1" type="T">Message status 000</Trace>
      <Trace level="1" type="T">Interface action INIT</Trace>
      <Trace level="1" type="T">(must be INIT for a new determination)</Trace>
      <Trace level="1" type="T">Message type BEST EFFORT. -> No determination</Trace>
      <Trace level="1" type="T">Set interface action INIT into *MAST*</Trace>
      </Trace>
      </Trace>
    - <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_TO_PERSIST">
    - <Trace level="1" type="B" name="interface activity determination">
      <Trace level="1" type="T">Version 000</Trace>
      <Trace level="1" type="T">Message status 000</Trace>
      <Trace level="1" type="T">Interface action INIT</Trace>
      <Trace level="1" type="T">(must be INIT for a new determination)</Trace>
      <Trace level="1" type="T">Message type BEST EFFORT. -> No determination</Trace>
      <Trace level="1" type="T">Set interface action INIT into *MAST*</Trace>
      </Trace>
      </Trace>
      </Trace>
      <Trace level="1" type="T">SystemError message generated. Guid: 6F5A54B396DFC7448BF6A4D4B9289C5D</Trace>
      <Trace level="1" type="T">Error during execution of message : F6BC6270D94A11DBB6D000188B40F2CF</Trace>
      <Trace level="1" type="T">ApplicationMessage was (=RefToMsgId): F6BC6270D94A11DBB6D000188B40F2CF</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_TO_PERSIST" />
    - <!--
      -->
    - <Trace level="1" type="B" name="interface activity determination">
      <Trace level="1" type="T">Version 000</Trace>
      <Trace level="1" type="T">Message status 000</Trace>
      <Trace level="1" type="T">Interface action INIT</Trace>
      <Trace level="1" type="T">(must be INIT for a new determination)</Trace>
      <Trace level="1" type="T">Message type BEST EFFORT. -> No determination</Trace>
      <Trace level="1" type="T">Set interface action INIT into MAST</Trace>
      </Trace>
      </SAP:Trace>
      </SOAP:Header>
    - <SOAP:Body>
      <SAP:Manifest xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:wsu="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="wsuid-manifest-5CABE13F5C59AB7FE10000000A1551F7" />
      </SOAP:Body>
      </SOAP:Envelope>
    Someone can help me?
    Regards
    Rafael

    Hey Rafael,
    I've heard of ur problem by Carol Garcia.
    I still think the problem was related to the fact that you were commiting the work at JDBC adapter, even though your DB (it was Oracle, right?) supports internal commit. I do aggree that this scenario should work for non-commiting DBs, though. Thus it is a bug, and the note is relevant.
    Anyway, did you try to commit the work at DB side? I think it should have resolved your case (even though the bug would still exist, but it would not impact you).
    Regards,
    Henrique.

  • Abap proxy program generation

    SAP ECC will be used as the tool for the processing of all invoices;therefore this interface is required to identify and extract all third party fees invoices, and use the data to update the corresponding customer agreements in the existing Asset Finance mainframe system.
    Proxy program is scheduled end of the day to generate an XML file for all the third party fees invoices processed in ECC for that business day.
    This XML file is transferred to SAP NetWeaver PI using data push from ECC.
    now i am very new to this proxy area!!can u plss let me know how do we approach this

    Hi,
    Only one program could be sufficient to call the Proxy 4 times for different files. In Outbound Program you need to call the Execute_Synchronous method. The no of times you will call it he no of Porxy callls can be possible. It have internal commit statement.
    Thanks
    Swarup

  • Program Execution Problem

    Dear All,
    I am in one strange problem. I have created one BDC program to upload. It gets uploaded and executed when I go through debugging ( I do not make any change while in debugging only do F5 and F6 and F8). But,  when I run it directly It does not upload data to one particular screen but gets executed with display with no errors.
    Can any one please suggest what could be the reason for this? I am really in a fix. Any inputs or suggestions is appreciated.
    Regards
    SM.

    While executing in No display/Error mode, the internal commit work or some action might not
    have worked properly. So use the following command where the process strucks.
    WAIT UP TO 5 SECONDS.
    (or)
    Check the BDC okcode properly while in ALL DISPLAY mode
    Regards,
    Prem

  • Unable to insert  through   Adaptive RFC

    Hi
    i am sending the code which i implemented in my programme where i am facing problem while inserting into R3 neither i am getting any error nor i am able to insert into R3. through JCO i tried but unable to execute the rfc. i will be greateful if any body provide solution to this issue.
    // all binding i am doing inside controller's init
    insert_input = new Zhr_Fun_Appl_Emp_Ref_Input();
    //create object of structure in RFC
    edu=new Zbapieduc();
    quali=new Zbapiquali();
    emp=new Bapiemploy();
    //adding object to the input element
    insert_input.addEducation(edu);
    insert_input.addQualification(quali);
    insert_input.addPrevious_Employment(emp);
    //binding inputobject with current context
    wdContext.nodeZhr_Fun_Appl_Emp_Ref_Input().bind(insert_input);
    //executing the model inside the method which is defined in controller
    //setting the value of input parameter and table parameter
    try
    wdContext.currentZhr_Fun_Appl_Emp_Ref_InputElement().modelObject).execute();
    wdContext.nodeOutput().invalidate();
    }catch(Exception ex)
    //@@bapi objects
         Zhr_Fun_Appl_Emp_Ref_Input insert_input=null;
         Zbapieduc edu=null;//@@education
         Zbapiquali quali=null;//@@Qualification
         Bapiemploy emp=null;//@@experience
      //@@end

    Hi Sukanta,
                        First of all u r not calling the transaction commit,If ur bapi has internal commit,then its not a problem but if its doesn't then even if data is getting passed to R/3 system,it will not get saved.
    2nd u r telling that u r unable to execute the bapi,have u checked in debug mode whether its going to r/3 or not??
    logon to r/3 system->go to se37->put an external breakpoint in that bapi
    then execute ur application.So atleast u can find out whether its goin to r/3 or not.
    regards
    Sumit

  • Struts file upload without interMedia under ADF

    Can this be done ?
    I have an existing table with the following columns:
    Content BLOB
    MimeType VARCHAR2
    FileName VARCHAR2
    and more

    Very frustrated :(
    Trying to find an answer to my question above.
    If I Add a transient OrdDocDomain to the Entity/View Layer.
    Map this into the UIModel (drag-drop onto JSP as struts file upload) so a FormFile object is available in the struts Action layer.
    Override 'processUpdateModel' so I can obtain a reference to the FormFile object.
    In the commit event of the Action class, take the referenced FormFile and set the BLOB like follows;
    newRow.setAttribute("FileData",
    new BlobDomain(uploadFile.getFileData())
    Then call into the internal commit operation.
    The following exception is raised;
    04/11/19 07:32:18 java.lang.ArrayIndexOutOfBoundsException: 0
    04/11/19 07:32:18      at oracle.jbo.client.remote.OrdClientPostListener.notifyClientPostAfter(OrdClientUtil.java:135)
    04/11/19 07:32:18      at oracle.jbo.client.remote.ApplicationModuleImpl.postChanges(ApplicationModuleImpl.java:796)
    The transient OrdDocDomain has registered a listener.
    How can I remove this listener. The transient has a method 'removeListenerFromTransaction()' with the comment 'Internal: Applications should not use this method.' and no other references ?
    Does anyone know how the listener can be removed or better still, not be registered with the transaction.

  • How do we know that some of the jobs have been held up in the BW system.And

    How do we know that some of the jobs have been held up in the BW system.And after we know that some of the jobs have been held up, how do we restart it?Please provide me an answer.It is very important.I will assign points
    Regards,
    Poonam

    Hi,
    Tcode sm37 is the place where you can see the background job status.
    Jobs have been help up
    as per my understanding
    1) job has been triggered and kept it in hold
    Now when a job has been triggered, and is kept in hold for its associated process, then you have to wait, becuse the target on which the job has been run is currently used by other and because of this the present job is kept in hold.
    Also see the st22 for any shortdumps.
    2) Job itself has not yet triggered
    The jobs will be in released state and will not trigger, normally this occurs when that particular job is waiting for the event to trigger it, and probably the even has not yet triggered or even if triggered the communication mightnot have been made to the job to trigger. These situations can be attributed to many things lyk system performance, or some internal comm failure, some DB dead locks etc.,.
    Now for the first one, start the job immediately with high priority ( if required ) and once completed reschedule it again as normally it is running
    for the second , you can trigger the particular event in sm64 and c has the job came to active state or not.
    or else you can copy the job and schedule is immediately.
    Hope this helps
    Janardhan Kumar

  • Sap sd faq's

    send fa's in sd module

    Hello Srikanth,
    <b>The following are few important FAQ's that i came across -</b>
    <b>In R/3 you can represent a company's structure by defining and assigning corporate structure elements. What is the purpose of doing that?</b>
    Enterprise organization diagram. Chart showing the organizational structure of an enterprise, its organization units and how they are related. A combined structure can be created from the point of view of accounting, MM, SD. This structure forms a framework in which all business transactions can be processed. 
    <b>Which three organizational elements make up a sales area and briefly explain their function?</b>
    Sales organization: An organizational unit that sells and distributes products, negotiates terms of sale, and is responsible for these transactions.
    Distribution channel: Channel through which salable materials or services reach customers. Typical distribution channels include wholesale, retail and direct sales. You can assign a distribution channel to one or more sales organizations. 
    Division: Product groups can be defined for a wide-ranging spectrum of products. For every division you can make customer-specific agreements on, for example, partial deliveries, pricing and terms of payment. Within a division you can carry out statistical analyses or set up separate marketing. 
    <b>Name the three internal organizational elements within a sales organization and briefly explain their function.</b>
    Sales Office. Geographical aspects of the organization in business development and sales are defined using the term sales office. A sales office can be considered as a subsidiary. 
    Sales offices are assigned to sales areas. If you enter a sales order for a sales office within a certain sales area, the sales office must be assigned to that area.
    Sales Group. The staff of a sales office may be subdivided into sales groups. For example, sales groups can be defined for individual divisions.
    Salespersons. Individual personnel master records are used to manage data about salespersons. You can assign a sales person to a sales group in the personnel master record.
    <b>What does the term "business area" refer to and how can it be used?</b>
    Business Area. The system posts costs and revenue according to the business area. The business area can be equivalent to the: 
    - sales area (if the accounts are to be posted according to sales)
    - plant/division (if the accounts are to be posted according to products)
    The business area is defined in Customizing for Sales.
    o Business area. A unit in an enterprise, grouping product and market combinations as homogeneously as possible for the purpose of developing unified business policy. 
    o Financial Accounting (FI). A business area is an organizational unit within financial accounting which represents a separate area of operations or responsibilities within an organization. Financial accounting transactions can be allocated to a specific business area.
    <b>Briefly explain the relationship between sales organizations and company codes.</b>
    Many to One.
    <b>What is the central organizational element in purchasing?</b>
    Purchasing Organization.
    <b>Explain the relationship between sales organizations and plants.</b> Many to Many.
    <b>Explain the relationship between sales organizations, plants and company codes.</b>
    Many to Many to One.
    Can one business area be assigned to several company codes? Which (sub) module of SAP could make business areas obsolete?
    Yes in CO .
    What is a credit control area? What relationship exists between credit control areas and company codes?
    Credit control area. Organizational unit in an organization that specifies and checks credit limits for customers. A credit control area can include one or more company codes. It is not possible to assign a company code to more than one credit control areas. 
    Which organizational element is central in shipping? Give a definition of it.
    Shipping Point: Organizational unit at a fixed location that carries out shipping activities. A shipping point could, for example, be a company's mail department or a plant's rail depot. Each delivery is processed by only one shipping point. 
    Give a definition of plant (in SAP).
    Organizational unit within Logistics, serving to subdivide an enterprise according to production, procurement, maintenance, and materials planning aspects. 
    A plant is a place where either materials are produced or goods and services provided. 
    Classification: Business object 
    Structure: A plant can assume a variety of roles: 
    As a maintenance plant, it includes the maintenance objects that are spatially located within this plant. The maintenance tasks that are to be performed are specified within a maintenance planning plant. 
    As a retail or wholesale site, it makes merchandise available for distribution and sale. 
    As a rule, the plant is the organizational unit for material valuation. 
    The preferred shipping point for a plant is defined as the default shipping point, which depends on the shipping condition and the loading condition. 
    For the placement of materials in storage (stock put-away), a storage location is assigned to a plant. The storage location depends on the storage condition and the stock placement situation. 
    The business area that is responsible for a valuation area is determined as a function of the division. As a rule, a valuation area corresponds to a plant. 
    Can you assign two different sales organization to the same company code?
    Yes.
    To what do you assign distribution channels and divisions?
    Sales Organizations.
    What are the highest organizational units in SD, MM.PP,FI,CO?
    SD: Sales Organizations.
    M: Plant 
    PP: Plant
    FI: Company Code 
    CO: Controlling Area
    Can you further subdivide a plant? If yes into what?
    A plant can be subdivided into storage locations, allowing stocks of materials to be broken down according to predefined criteria (e.g., location and materials planning aspects). 
    A plant can be subdivided into locations and operational areas. Subdivision into locations takes geographical criteria into account, whereas subdivision into operational areas reflects responsibilities for production. 
    Can a sales organization sell from a plant belonging to a different company code?
    Yes.
    How many shipping points can you assign to a plant?
    Many.
    How many shipping points can you assign to a sales organization?
    None.
    If you have a warehouse management system active, to what would you assign the warehouse number?
    Plant & Storage Location.
    <b>Rebate Agreement</b>
    1.  Which agreement type I should consider, is this custmer rebate(0003), material rebate(0002) or Rebate on the basis of sales volume(0005), because here client is not offering rebate on Sales volume in rupees or dollar. He is only concerned with totat sales in kiloleter(Quantity). As per rebate agreement concern rebate is offered in percentage. Please guide me for  my scenario.
    If your distributors are fewer (far less than 900 materials) then you should go for only customer rebate.
    2. Guide me for conditions types and scale basis for maintaining condition records.
    When creating customer rebates (T:VB01) select customer rebate, there you will see a header tab: Conditions , click it add how many customers you want. For each customer you can create scale based conditions (under the heading tab :Scales).
    3. Is it necesary to maintain condition record for every material and every customer defining the scale? Because in this scennario client is going for incentives scheme for each material and each customer (distrbutor).
    No need to create condition record for every material if you create customer rebate.
    <b>Customer Master</b>
    How to create the customer master?
    The following are the T-codes for central creation of customer master.
            XD01    Create Customer (Centrally)
            XD02    Change Customer (Centrally)
            XD03    Display Customer (Centrally)
            XD04    Customer Changes (Centrally)
            XD05    Block customer (centrally)
            XD06    Mark customer for deletion (centr.)
            XD07    Change Customer Account Group
            XD99    Customer master mass maintenance
            XDN1    Maintain Number Ranges (Customer)
    You need to identify various parameters within each Account group based on which the reco account is identified within the customer master.
    Customer master is basically divided into 3 tabs.
    - General - General master details, Juristiction codes, Region, Transportation zone, export data,  etc.
    - Company data - payment terms, account management, reco account, insurance etc.
    - Sales data -  Sales product attributes, sales office, sales group, customer pricing procedure, Cust. Statistical grp, 
       - Shipping data 
       - Billing data
       - Partner functions.
    You can create a customer based on 3 views:
    1. For Account purpose
    FD01/FD02/FD03 etc
    2. Sales purpose
    XD01/XD02/XD03 etc.
    3. Centrally 
    VD01/VD02/VD03 etc.
    What is the Function of item category and item category group?
    Item Category determines the processing of any Item/material that we enter in a sales order and in this way it also effects the procesing of any sales doc in which it is used.
    Item Category Group is one of the component which along with the Sales Doc Type, The Item Usage and Higher Level Item Category decide about the Item Category in a sales doc.
    1.  How can we know whether the customer is one-time or regular? 
    One can maintain Account Group for One-time customers. By which we can identify one-time customers.
    2. What happens when you do not enter a value for a manual and mandatory condition type? 
    The pricing procedure will reject the conditions in the sales order
    3. Do header condition type have an access sequence? 
    No
    4. Org structure:
        Relation between Company - Sales org
        One-to-Many
        Sales Org - Plants & company vs. Plants
        Company - sales org - credit control area
        What are sales area and its components? 
    Sales area consists of Sales Organisation, Distribution Channel and Division.
    5.  What are legacy systems? 
    The Existing system on which current system is working, from which the current system will be migrated to SAP system
    6. What is cut over strategy? 
    Cutover strategy depends upon how the organizations design their data load strategies. Normally, you decide the sequence of Data loads for Configuration  settings, Master data, Transaction data which follows whom and then you make a copy of the system as a  Production system a day before and after checking the successful data loads, you go-live 100% or partial again  depending upon organizational setup and policies.
    Cutover planning is highly site specific. There's no thumb rule. The stock data as on the date of going live should be correctly entered. But stock being a highly dynamic quantity, the strategy for loading should be crystal clear. Then you have to load all the back dated transaction on the stock. Some stock comes into your plant/storage location as return and some stock is actually delivered to your customer through sales orders of various kinds. 
    7.  What are Cumulative Condition Records? 
    There is a field:- "condition update" during configuration for a condition type (at v/06)... has it anything to do with cumulative condn. Records? 
    8.  IF you have 3 different access sequences for one condition record then in a pricing procedure in what hierarchy will you maintain the three accesses? 
    In Condition Records (T Code VK11), you would be putting values to corresponding Condition Types. Now one Condition Type can be assigned to one access sequence. In Access Sequence, you can assign whichever tables and fields are required.
    So in my opinion, you cannot have one condition record for 3 access sequences.
    9. What happens in the access sequence when you put all the ticks in the exclusive field? 
    When you put tick in exclusive field of all access sequences, in my opinion, it will try to get available data from the first. Only in case, data is not available, will it move on to the next one.
    10. What is meant by delivery group? 
    Delivery Group is basically grouping all individual deliveries for Billing. It should have the same Ship to Party, Shipping Point, etc.
    SAP SD Tips by : Moyin
    11. What triggers the automatic creation of PR or PO in case of third party sales?
    In item category we can set "automatic PO" so that PO and PR will automatically generate after saving the order.
    You never change the item category configuration to "automatic PO".  It is the schedule line category type which triggers the automatic PR creation. - Evilboy
    12. What are the steps that are required to include sales person as a partner function in the partner determination?
    Partner function sales represenative or person responsible these two we can add through partner funtion in partner procedure.
    13. What is z transaction?
    We copied standard TC or object  and rename it by Z its basically stnd name which will start from Z (User defined)
    14. Can you create sales order for 40 items if the quotation is sent for 30 items?
    Yes.
    15. What is the importance of requirment field in access sequence?
    System will not go to asscess condition type system will reply through formula.
    16. What makes the immediate delivery in cash sales?
    Order type immediate delivery switch on.
    What exactly is automatic posting can you explain?
    Automatic posting could be, posting of accounting documents to FICO once invoice is created which can also be controlled manually. Automatiaclly detremine the freight while pricing in ship doc. and post to the relevant account to fico. usually automatic posting is posting of documents to FICO based on variuos account keys and account groups. 
    2. How many clients we will create in land scape (like in  development server, quality server, production server ) 
        if we are creating more than one in each server what is exact use of that client.
    2. Client landscape : Basic layout : dev -testing- production also 
    - Sandbox env. for trial and error 
    - Development env. for actaully creating transports(CTS)
    - Global env.  If you have global implementations at different client locations (eg; canada, US, UK) (for testing purposes with actual master dataas well)
    - Testing env.(for regression testing purposes before moving to prodcution, integration etc..)
    - Prod. env. the actual production system 
    The clients could be variable and could be created to a specific env. usually a dev. where abap, functional would mess around. say :
        client 100-functinal consultants
        client 300- abapers
        client 400- other users(like super etc)
    3. How we will configure export sales in sd (respect to plants assign  and sales process)?
    4. How we can do invoice split depending on item category in which scenario we will use?
    You first need to go for copying controls either from sales to billing (invoice) or delivery to billing or billing to billing
    use transactions (vtaa,vtaf,vtla,vtfa,vtfl,vtff) all possibilities for copy controls. this basicly is flow of doc to doc. (may it be sales to billing, del to bil, or bil to bil etc..)
    -> this is where you see the Item category and you control whether split is possible or not with the indicator"B". eg:  representing split in invoice based on item category.  The field here "data VBRK/VBRP" (headre/item)whcih actually is used for splits or combining different deliveries. create a splitting rule using VOFM (you need access key to get here).  Here you define comparisions for the fields at header table and item tables and the comparision fields say  SPART"division". "purchase order "BSTKD Instance: 5 sales orders combined into 2 deliveries and the split at the invoice would be 5 individual billing with respect to fields PO and DIv. of each sales order would let you create 5 billings. You need to define the exact "field" in the comparisions both at header and item level that could lead to invoice split. the key here is the field that is different
    from header to item will cause split at the item level. 
    5. Can any one explain how we will configure milestone billing , periodic billing and which scenario we will use?
    Menu path:
    IMG->sales &distr->Billing->billing plans->define billing plan types.
    You set the start date and end dates if applicable to the type of billing you are using. What time to be billed (end of month, start of month etc..)   
    Milestone is a billing plan type where a customer is billed for the amount distributed between the dates until total value is reached eg: if the total billing amountis 1000 USD for a year.  You will bill the customer in different amounts say 200, 500, 300 at different intervals as per customer agreement.  
    On the other hand Periodic billling is billing the customer for the total amount(here 1000 USD) at regular intervals peridically until the customer agreement is reached. eg: 1000/12 for a 1 year agreement and say billed at the 1st day of every month. 
    6. What are some pricing routines and sd functional specs?
    Form routines for prcing and variuos other functions can be maintained form routines are something todo with ABAP code.
    Go to (VOFM) where all requrements whcih are represented by form routines can be maintained.  Requrements are available to be assigned where access sequenses are used (for determination procedures, here pricing).  
    Once the tcode VOFM is accessed you will see requrements and go select "pricing" again you need access key to create your own or copy a routine. 
    Say you want header price not to have effect the item pricing, you need to go to the program to change abap code to meet the requirement. this specific requirement you created will be assigned in the pricing proc. determination "requirements field"
    usaully with a number beyond 600.   Note: make sure you activate your routine for its effect to take place.
    What is the movement type you used in consignment process?
    632, 633, 634, 631
    Can team size be 40 in a project? Is there any generalized team size no. for any project? If we tell my team size is 40 in that what no. we can say sd people are? 
    Team size cant be forty, Theres no genralized size of team. Never 
    40 sd consultants work together on same project. 
    What is ALE?
    Application Linking and Enabling - Generally ABAPers work on it.
    What is meant by condition technique: can we say it is the combination of condition types, access sequence and condition tables? 
    yes
    Where do we can find pricing procedure indicator in sd ?
    Pricing procedure is where we maintain all Conditions (like PR00, K004, mwst, kp00, etc) 
    Where do we assign calender in the master records?
    In IMG screen Global Settings.
    What is the importance of customer account groups?
    We maintain the customer account to maintain payment terms and incoterms. Lets say, if SP is only booking order but the goods should deliver in foreign country and for which SP is not going to bare the excise and other taxes then the SH party or payer will tke teh responsibity then the tax is calculated based on account groups.
    What are incoterms? Where do we fix them? Where do you find in regular process?
    Incoterms or international comm. terms and u find in CMR - Sales area Data - billing Tab.
    How can you make some of the fields as key field in generic tables?
    Some fields in all tables have a indicator on it.To see, then go to SE11, display VBAK, u will find MANDT on top, if you see after description 2 tick marks, those are key fields.  Gernerally, these key fields are used in writing any Program or Interface. The key fields will extract data of non key fields . 
    What is the standard group condition routine in condition type, what is its importance?
    Its better u read Group Conditions in PR00.
    How do you control entry possibility of condition values at order through condition type settings?
    You can maintain the maximum and minimum value for all conditions.
    What are the customizing settings in pricing procedure for tax condition type?
    Check out the standard pricing procedure RVAA01 - MWST.
    A bunch of data need to be imported. A huge no.of creations are required, how it is possible in SAP?
    thru LSMW, BAPI.
    What is the difference between PGI cancellation and returns order?
    PGI cancellation is done before the transportation of goods. But return order means its already transported reached customer during transit if materil is spoiled or broke or the goods r not delivered as per customer requested date.then customer send the goods baack to company.
    What is the integrated areas in SD AND FI, SD AND MM, SD AND PP in both implementation and support projects?
    SD & FI - Possible in Account Determination, for posting the conditions to revelant G/l account like all prices goes to one particular g/l account. Also in Credit Management, Taxes.
      SD & MM - Possible in Batches, Material Requirement Planning.
      SD & PP - Possible in Material Requirement planning.
    <b>Reward if helps</b>
    Regards
    Sai

Maybe you are looking for

  • How can i add a navigation rule at the runtime of JSF?

    Hello, how can i add a navigation rule at the runtime of JSF. Maybe i should use the method "addNavigationRule()" in class "FacesConfig", but i do not know, how can i obtain the instance of class "FacesConfig". Can anybody help me? Thank you very muc

  • How to burn a dvd created in iMovie with OS Maverics - why is it in MP4 format and not .MOV?

    I have created a movie in iMovie, shared it and put it in a burn folder on my desktop, then tried to burn it. It seemed to work (the hard disc was spinning and computer told me when it was finished) but when i tried to play it on my Macbook Pro (whic

  • Getting data from infotype

    Hello Experts! I am a beginner in ABAP programming and I have problem with one of my task. I would like to get all users first and last names from infotype p0002. I've created a class, and method but only thing I've found in the Internet was somethin

  • Want to disable few fields im SM30

    Hi Gurus , I have a requirement to maintain a  ztable thorugh t-code. This all have to be done by one program . In the program selection we have to radio button - a.)  Maintain   and b.)  Validate. What the program is doing is just calling sm30 t-cod

  • Delete DSO data for current month on a daily basis.

    Hi Gurus, We have a requirement where we have to delete the data in the BW DSO's for the Current Month every day before loading data into it. The reason for this is that in R3 they delete data for the current month in addition to adding new records a