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 !
ThanksHere 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 AlvarezOk, 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
rajhi all,
this can be done in 4.6 version also.
thanx for spending time on this.
thanx®ards
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) : Plan3ESM 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,
SaschaHi 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 -
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/AHi
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
RafaelHey 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. -
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 thisHi,
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 -
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
//@@endHi 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 moreVery 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,
PoonamHi,
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 -
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
-
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
-
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