Module pool help needed
Please use a more informative subject in future
hi Experts
In my module pool program i having a list box in a modeled dialog box . if the list box is left empty it will give an error message .after pressing the enter buttton the list box gets disable . in which i want enable after pressing enter . how can i achive it .
regards
chinnaiya
Edited by: Matt on Apr 27, 2009 10:27 AM
HI,
Do the following to solve your problem.
In the screen flow logic after "process after input" write the following:
CHAIN.
FIELD fieldname MODULE chk-fieldname.
ENDCHAIN.
Now create a module chk-fieldname in F01 and write your code there.
So now even if there is an error also your field will not be disabled.
Hope this helps you.
Thanks,
Sri...
Similar Messages
-
Module Pool help req??
hi
Can we make a redio button in the Module pool progm as a default while in the screen painter?
plz tell me,i don't know how to do it?
regds
vipinHi,
Use control bar in the left side of the painter window and after that give the fucntion code for the radiobutton.
While creating the screen,u give the function code for the radio button ...
In the PAI of that screen.
If sy-ucomm = 'Fcode of that radio bbutton'.
loop at screen.
if screen-name = 'xyz'.(give all the screen names which u want to activate)
screen-active = '1'.
modify screen.
endif.
endloop.
endif.
In the Screen Painter, you can assign a function code (up to 20 characters long) to checkboxes and radio buttons.
Checkboxes and radio buttons without a function code behave like normal input/output fields. Clicking the object changes the contents of the field, but does not trigger the PAI event. (Clicking a pushbutton, on the other hand, always triggers the PAI event, even if it has an empty function code.)
When a function code is assigned to a checkbox or radio button, clicking it not only changes the field contents, but also triggers the PAI event and places the function code in the OK CODE field. For further information, refer to Evaluating Function Codes.
While it is possible to assign an individual function code to each checkbox, you can only assign one function code to all of the radio buttons in a group. When you assign a function code to a radio button in the Screen Painter, the system automatically applies the same function code to all of the other radio buttons in the group.
You can use checkboxes and radio buttons with function codes as follows:
· For processing parts of screens (context-sensitive processing). For example, only when a radio button or checkbox is selected is particular data read and placed in the corresponding input/output fields.
· You can fill fields with patterns depending on checkboxes or radio buttons. A typical example would be formatting settings for letters. The input fields can all be processed separately, but it is possible to fill all input fields simultaneously and consistently by choosing a pattern.
· You can control dynamic screen modifications directly using checkboxes or radio buttons. For example, you can make sure that an input/output field cannot accept input until the user selects a radio button.
As when you create pushbuttons, you should ensure when you assign function codes to checkboxes and radio buttons that they do not coincide with function codes from the GUI status.
PROGRAM demo_dynpro_check_radio.
DATA: radio1(1) TYPE c, radio2(1) TYPE c, radio3(1) TYPE c,
field1(10) TYPE c, field2(10) TYPE c, field3(10) TYPE c,
box TYPE c.
DATA: ok_code TYPE sy-ucomm,
save_ok TYPE sy-ucomm.
CALL SCREEN 100.
MODULE user_command_0100 INPUT.
save_ok = ok_code.
CLEAR ok_code.
CASE save_ok.
WHEN 'RADIO'.
IF radio1 = 'X'.
field1 = 'Selected!'.
CLEAR: field2, field3.
ELSEIF radio2 = 'X'.
field2 = 'Selected!'.
CLEAR: field1, field3.
ELSEIF radio3 = 'X'.
field3 = 'Selected!'.
CLEAR: field1, field2.
ENDIF.
WHEN 'CANCEL'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE.
Thanks,
Sakthi C
Message was edited by:
Sakthi Saravanan C -
SAP PS Module Report, Help needed for the Right Logic.
Hi,
I have to develop a PS module Report . This spec of this report is when you enter , project # , month , date , proj type it should display all the projects and only the billing levels with different fiels like ITD cost, ITD sales, ytd cost, sales, awards etc etc.
Right now Iam getting the O/P : in the following manner, There are many fields I am just showing the desired ones which have to be changed.
Proj, Title, award, ITDsales, ITD cost , ytd sales, ytd costs,
14148, New prj 123 -- --- -
14148-B01, bill1 -
234 -
456 -
14148-B02, bill2 -
789 -
123 -
14148.001 wbs1 -
123 -
456
14148.001 wbs2 -
567 -
890
But for me the desired output must be only for project and the billing levels. It shouldnt be for WBS elements xxxx.001 and xxxx.002.
Desired output:
Proj, Title, award, ITDsales, ITD cost , ytd sales, ytd costs,
14148, New prj 123 -- 690 -
1346
14148-B01, bill1 -
234 -
456 -
14148-B02, bill2 -
789 -
123 -
The ITD costs and YTD costs must be added 123 + 567 = 690 and
456+890 = 1346.
And these values must come on the project level.
P.S: I can restrict the values for wbs elements , means I can filter them at PRPS table by giving prps-stufe LE 2. Then I wont get the wbs level, But I want the values of these to be added up and then show it on the project level.
Please go through this code and let me know where exactly I need to put the right logic to work in the desired manner.
Thanks in advance
Dan
Code Below************************
[code]TABLES: PROJ, "Project Definition
PRPS, "WBS Elements
prhi,
CEPC, " Profit Center w/ Group Head info
BPGE, "Plans (12, 13, etc.)
COSP, "Primary Cost Element (Bill Sales, DPC)
COSS, "Secondary Cost Element (Shrd Sls,Sal,etc)
COSB, "Results Analysis Cost Elements (Unbil Sls)
COOI, "Commitments management: Line items
JEST, "Project Status
TCJ04, "Person Responsible for Project
zpclasses, "Project classes.
New Added
CRCO, " Assignment of Work Center to Cost Center
CRHD. " Work Center Header
Record Layout of extracted data
TYPES: BEGIN OF EXDEF, "Data definition of extract data
X_BU(2) TYPE C, "Business Unit
X_CNTR(10) TYPE C, " Profit Center
X_PROJ(24) TYPE C, "Project def (Prj)
X_CREP(30) TYPE C, "Contract Rep.
X_BDREP(25) TYPE C, "BD Rep. name
X_GRPH(15) TYPE C, "Tech Rep employee name
X_ACTREP(15) TYPE C, "Acct Rep employee name
X_PMGR(15) TYPE C, "PM employee name
X_TTLE(35) TYPE C, "Title
X_CLNT(20) TYPE C, "Client
X_POCN(20) TYPE C, "Prime Contract Number
X_TYPE(13) TYPE C, "Order Type Sarnoff
X_OPEN(10) TYPE C, "Open Date
X_CLOSE(10) TYPE C, "Close Date
X_CGT(4) TYPE C, "CO, GV, TC
X_DISTR(2) TYPE C, "Distribution Channel
X_CONTR(6) TYPE C, "Percentage contribution
X_AWRD(14) TYPE C, "Award (Plan 11)
X_P12R(14) TYPE C, "Auth Revenue (Plan 12 @ Rev)
X_P12C(14) TYPE C, "Auth Cost (Plan 12 @ Cost)
X_P13R(14) TYPE C, "Auth Revenue (Plan 13 @ Rev)
X_P13C(14) TYPE C, "Auth Cost (Plan 13 @ Cost)
X_ITDS(14) TYPE C, "ITD Sales
X_ITDC(14) TYPE C, "ITD Costs
X_YTDS(14) TYPE C, "YTD Sales
X_YTDC(14) TYPE C, "YTD Costs
X_MTHS(14) TYPE C, "Current Month Sales
X_MTHC(14) TYPE C, "Current Month Costs
X_ITDB(14) TYPE C, "ITD Billed Sales
X_YTDB(14) TYPE C, "YTD Billed Sales
X_MTHB(14) TYPE C, "Current Month Billed Sales
X_COMM(14) TYPE C, "Commitments
X_STAT(6) TYPE C, "Active or Inactive (REL, TECO, or CLSD)
X_ZPROJCLASS(12),
X_MTHIC(14) TYPE C, "Current Month Incremental Costs
X_YTDIC(14) TYPE C, "YTD Incremental Costs
X_ITDIC(14) TYPE C, "ITD Incremental Costs
X_ZSCURVE(10) TYPE C, "S-CURVE Status
New Added
X_CM_COST(20) TYPE C,
X_AM_COST(20) TYPE C,
X_TL_COST(20) TYPE C,
X_KP_COST(20) TYPE C,
X_PM_COST(20) TYPE C,
END OF EXDEF.
Data declarations
FIELD-SYMBOLS <MNT> .
DATA: ETAB TYPE EXDEF OCCURS 100 WITH HEADER LINE.
DATA: X1_PM_COST(20) TYPE C,
X1_TL_COST(20) TYPE C,
X1_AM_COST(20) TYPE C,
X1_CM_COST(20) TYPE C,
X1_KP_COST(20) TYPE C.
DATA: KOKRS_FIXED LIKE PROJ-VKOKR VALUE 'DSRC', "Controlling Area
TOTAL_AWARD LIKE BPGE-WTGES,
TOTAL_AUTHR12 LIKE BPGE-WTGES,
TOTAL_AUTHC12 LIKE BPGE-WTGES,
TOTAL_AUTHR13 LIKE BPGE-WTGES,
TOTAL_AUTHC13 LIKE BPGE-WTGES,
TOTAL_ITDSALES LIKE BPGE-WTGES,
TOTAL_ITDCOSTS LIKE BPGE-WTGES,
TOTAL_ITDICOSTS LIKE BPGE-WTGES,
TOTAL_YTDSALES LIKE BPGE-WTGES,
TOTAL_YTDCOSTS LIKE BPGE-WTGES,
TOTAL_YTDICOSTS LIKE BPGE-WTGES,
TOTAL_MTHSALES LIKE BPGE-WTGES,
TOTAL_MTHCOSTS LIKE BPGE-WTGES,
TOTAL_MTHICOSTS LIKE BPGE-WTGES,
TOTAL_ITDBILLED LIKE BPGE-WTGES,
TOTAL_YTDBILLED LIKE BPGE-WTGES,
TOTAL_MTHBILLED LIKE BPGE-WTGES,
TOTAL_COMMITMENT LIKE COOI-WTGBTR,
HOLD_PRART LIKE PRPS-PRART,
COUNT_PROJECTS TYPE I,
MNT_INDX(20) TYPE C,
HLD_INDX(3) TYPE N,
YYYY_MM(10) TYPE C,
TEMP-DATE(8) TYPE C.
Selection Screen
SELECTION-SCREEN SKIP 3.
SELECTION-SCREEN BEGIN OF BLOCK XEXTRPM WITH FRAME TITLE TEXT-001.
SELECTION-SCREEN SKIP 2.
PARAMETERS MONTH(2) TYPE N OBLIGATORY.
PARAMETERS YEAR(4) TYPE N OBLIGATORY.
SELECT-OPTIONS: EXTRPRJ FOR PROJ-PSPID. " Range of Projects
SELECT-OPTIONS: EXTRTYP FOR PRPS-PRART. "Project Types (CO,GV,etc.*)
SELECT-OPTIONS: EXTRPCTR FOR PROJ-PRCTR. " Range of Profit centers
SELECTION-SCREEN SKIP 2.
PARAMETERS: OPT1 RADIOBUTTON GROUP OPTN,
OPT2 RADIOBUTTON GROUP OPTN DEFAULT 'X'.
select-options : s_pc for proj-zprojclass. "project class
SELECTION-SCREEN END OF BLOCK XEXTRPM.
Select Tables
START-OF-SELECTION.
write: / 'Sales data (Unshared) extracted on: ', sy-datum.
uline.
CLEAR: COUNT_PROJECTS,
TOTAL_AWARD,
TOTAL_AUTHR12,
TOTAL_AUTHC12,
TOTAL_AUTHR13,
TOTAL_AUTHC13,
TOTAL_ITDSALES,
TOTAL_ITDCOSTS,
TOTAL_YTDSALES,
TOTAL_YTDCOSTS,
TOTAL_MTHSALES,
TOTAL_MTHCOSTS,
TOTAL_ITDBILLED,
TOTAL_YTDBILLED,
TOTAL_MTHBILLED,
TOTAL_COMMITMENT,
ETAB.
PROJ Table Project Definition
SELECT * FROM PROJ "Project Definition
WHERE PSPID IN EXTRPRJ AND " Range of Project Numbers
PRCTR IN EXTRPCTR and " Range of Profit center
zprojclass in s_pc. "project class
SELECT * FROM PRPS WHERE "WBS Elements
PRART IN EXTRTYP " Range of Proj.Types (CO,GV,TC..
and PSPHI = PROJ-PSPNR.
HOLD_PRART = ' '. "clears project type
CLEAR ETAB.
ETAB-X_PROJ = PRPS-POSID.
ETAB-X_BU = PRPS-PRCTR(2). "Business Unit
ETAB-X_PMGR = PROJ-VERNA. "Project Manager
IF PRPS-PRCTR(2) = '01'.
ETAB-X_CNTR = PRPS-PRCTR. " Profit Center
CONCATENATE SPACE PRPS-PRCTR INTO ETAB-X_CNTR SEPARATED BY SPACE.
ELSE.
ETAB-X_CNTR = PRPS-PRCTR. " Profit Center
ENDIF.
ETAB-X_TTLE = PRPS-POST1. "Title
CLEAR TEMP-DATE.
TEMP-DATE = PROJ-PLFAZ. "Project planned start date
CONCATENATE TEMP-DATE4(2) '/' TEMP-DATE6(2) '/'
TEMP-DATE+0(4) INTO ETAB-X_OPEN.
TEMP-DATE = PROJ-PLSEZ. "Project planned finish date
CONCATENATE TEMP-DATE4(2) '/' TEMP-DATE6(2) '/'
TEMP-DATE+0(4) INTO ETAB-X_CLOSE.
Tech Lead
will comment below
SELECT SINGLE VERNA FROM TCJ04 "Tech Lead name from TCJ04
INTO (ETAB-X_GRPH) WHERE VERNR = PROJ-ZGRPHD.
End Of Tech Lead
Account Manager
SELECT SINGLE VERNA FROM TCJ04 "Acct Manager from TCJ04
INTO (ETAB-X_BDREP) WHERE VERNR = PROJ-ZBUSDEV.
******End Of Account Manager
Key Personnel
SELECT SINGLE VERNA FROM TCJ04 "Account Rep name from TCJ04
INTO (ETAB-X_ACTREP) WHERE VERNR = PROJ-ZRESPDIR.
********End of Key Personnel
**Contract Manager
SELECT SINGLE VERNA FROM TCJ04 "Contract Rep name from TCJ04
INTO (ETAB-X_CREP) WHERE VERNR = PROJ-ZCNTREP.
End of Contract Manager
PRPS Table WBS's attached to the Project
SELECT * FROM PRPS WHERE "WBS Elements
PRART IN EXTRTYP "Range of Proj.Types (CO,GV,TC..
AND PSPHI = PROJ-PSPNR.
order by posid stufe. "Sort by WBS & Level (needed?)
get info from level 1 of the WBS
IF PRPS-STUFE EQ 1. "top-level WBS element
HOLD_PRART = PRPS-PRART. "save project type for later
ETAB-X_STAT = '????'. "set ? as the default status
get Status for level 1
SELECT * FROM JEST "use JEST to determine Status
WHERE OBJNR = PRPS-OBJNR
AND INACT EQ SPACE. "space denotes an active status
CASE JEST-STAT. "find the system status (Ixxx)
WHEN 'I0001'.
ETAB-X_STAT = 'CRTD'. "Created
WHEN 'I0002'.
ETAB-X_STAT = 'REL'. "Released
WHEN 'I0045'.
ETAB-X_STAT = 'TECO'. "Technically Complete
WHEN 'I0046'.
ETAB-X_STAT = 'CLSD'. "Closed
ENDCASE.
ENDSELECT.
Select only active projects (ie; those not with TECO or CLSD)
IF OPT2 EQ 'X'
AND ( ETAB-X_STAT EQ 'TECO'
OR ETAB-X_STAT EQ 'CLSD' ).
EXIT.
ENDIF.
*comment Contract Rep and Proj man because we get them from PROJ now
etab-x_crep = prps-zzcont. "Contract Rep.
etab-x_pmgr = prps-verna. "Program Manager Name
ETAB-X_CLNT = PRPS-ZZMANDT. "Client Name
ETAB-X_CGT = PRPS-PRART. "CO, GV, TC, etc
ETAB-X_DISTR = PRPS-ZZVTWEG. "Distrib Channel (ie; GP, etc.)
ETAB-X_CONTR = PRPS-USR04. "Contribution %
ETAB-X_POCN = PRPS-ZZPOCN. "Contract Number
ETAB-X_TYPE = PRPS-ZZORDT. "Order Type Sarnoff
Award and Authorization (Revenue & Cost)
SELECT * FROM BPGE
WHERE OBJNR = PRPS-OBJNR
AND LEDNR = '0001' "Budget / Planning Ledger
AND TRGKZ = 'N' "Object indicator
AND WRTTP = '01' "Value Type
AND ( VERSN = '011' "011 = Award
OR VERSN = '012' "012 = Billing Authorization
OR VERSN = '013' ). "013 = RA Authorization
"010 = Funding Authorization
Award Plan 11
IF BPGE-VERSN = '011'. "Plan 11 = Award
CASE BPGE-VORGA.
WHEN 'KSTP'. "KSTP = Cost level
ETAB-X_AWRD = ETAB-X_AWRD + BPGE-WTGES.
ENDCASE.
ENDIF.
IF prps-stufe eq '2'.
Authorization (Revenue & Cost plan 12) Plan 12
IF BPGE-VERSN = '012'. "Plan 12 = RA Authorization
CASE BPGE-VORGA.
WHEN 'KSTR'. "KSTR = Revenue level
ETAB-X_P12R = ETAB-X_P12R - BPGE-WTGES.
WHEN 'KSTP'. "KSTP = Cost level
ETAB-X_P12C = ETAB-X_P12C + BPGE-WTGES.
ENDCASE.
ENDIF.
Authorization (Revenue & Cost plan 13) Plan 13
IF BPGE-VERSN = '013'. "Plan 13 = RA Authorization
CASE BPGE-VORGA.
WHEN 'KSTR'. "KSTR = Revenue level
ETAB-X_P13R = ETAB-X_P13R - BPGE-WTGES.
WHEN 'KSTP'. "KSTP = Cost level
ETAB-X_P13C = ETAB-X_P13C + BPGE-WTGES.
ENDCASE.
ENDIF.
endif.
ENDSELECT. "BPGE
ENDIF. "end of if prps-stufe eq 1. top-level WBS element
COSP Table (External Postings) Awards
COSP Table (External Postings) Billed Sales
COSP Table (External Postings) DPC's & Legacy Load
SELECT * FROM COSP
WHERE OBJNR = PRPS-OBJNR AND
GJAHR LE YEAR
AND (
( kstar = '0000400999' and "old CE for Award $
( KSTAR BETWEEN '0000400990' AND '0000400999' AND
VERSN = '011' AND "11 = Award
WRTTP = '01' ) "01 = Planned
OR ( ( KSTAR BETWEEN '0000400001' AND '0000400989' OR
KSTAR BETWEEN '0000999001' AND '0000999003' ) AND
WRTTP = '04' ) "04 = Actuals
OR ( ( KSTAR BETWEEN '0000998001' AND '0000998010' OR
KSTAR BETWEEN '0000600001' AND '0000601999' ) AND
WRTTP = '04' ) "04 = Actuals
*------- Awards
if cosp-kstar = '0000400999' and "old 400999 = Awards
IF COSP-KSTAR BETWEEN '0000400990' AND '0000400999' AND
COSP-VERSN = '011' AND "11 = Award
COSP-WRTTP = '01'. "01 = Planned
IF YEAR = COSP-GJAHR.
DO.
IF SY-INDEX LE MONTH.
MOVE SY-INDEX TO HLD_INDX.
MNT_INDX = 'COSP-WKGXXX'.
REPLACE 'XXX' WITH HLD_INDX INTO MNT_INDX.
ASSIGN (MNT_INDX) TO <MNT>.
ETAB-X_AWRD = ETAB-X_AWRD + <MNT>.
ELSE.
EXIT.
ENDIF.
ENDDO.
ELSEIF YEAR > COSP-GJAHR.
ETAB-X_AWRD = ETAB-X_AWRD +
COSP-WKG001 + COSP-WKG002 +
COSP-WKG003 + COSP-WKG004 +
COSP-WKG005 + COSP-WKG006 +
COSP-WKG007 + COSP-WKG008 +
COSP-WKG009 + COSP-WKG010 +
COSP-WKG011 + COSP-WKG012 +
COSP-WKG013 + COSP-WKG014 +
COSP-WKG015 + COSP-WKG016.
ELSE.
EXIT.
ENDIF.
ENDIF.
*------- Billed Sales
IF ( COSP-KSTAR BETWEEN '0000400001' AND '0000400989' OR
COSP-KSTAR BETWEEN '0000999001' AND '0000999003' ) AND
COSP-WRTTP = '04'.
"0000999001 = ITD Sales
"0000999003 = ITD Billed Revenue
IF YEAR = COSP-GJAHR.
DO.
IF SY-INDEX LE MONTH.
MOVE SY-INDEX TO HLD_INDX.
MNT_INDX = 'COSP-WKGXXX'.
REPLACE 'XXX' WITH HLD_INDX INTO MNT_INDX.
ASSIGN (MNT_INDX) TO <MNT>.
ETAB-X_ITDB = ETAB-X_ITDB - <MNT>.
ETAB-X_YTDB = ETAB-X_YTDB - <MNT>.
IF SY-INDEX = MONTH.
ETAB-X_MTHB = ETAB-X_MTHB - <MNT>.
ENDIF.
ELSE.
EXIT.
ENDIF.
ENDDO.
ELSEIF YEAR > COSP-GJAHR.
ETAB-X_ITDB = ETAB-X_ITDB -
COSP-WKG001 - COSP-WKG002 -
COSP-WKG003 - COSP-WKG004 -
COSP-WKG005 - COSP-WKG006 -
COSP-WKG007 - COSP-WKG008 -
COSP-WKG009 - COSP-WKG010 -
COSP-WKG011 - COSP-WKG012 -
COSP-WKG013 - COSP-WKG014 -
COSP-WKG015 - COSP-WKG016.
ELSE.
EXIT.
ENDIF.
ENDIF.
*------- DPC's & Legacy Load
IF ( COSP-KSTAR BETWEEN '0000998001' AND '0000998010' OR
COSP-KSTAR BETWEEN '0000600001' AND '0000601999' ) AND
COSP-WRTTP = '04'.
IF YEAR = COSP-GJAHR.
DO.
IF SY-INDEX LE MONTH.
MOVE SY-INDEX TO HLD_INDX.
MNT_INDX = 'COSP-WKGXXX'.
REPLACE 'XXX' WITH HLD_INDX INTO MNT_INDX.
ASSIGN (MNT_INDX) TO <MNT>.
ETAB-X_ITDC = ETAB-X_ITDC + <MNT>.
ETAB-X_YTDC = ETAB-X_YTDC + <MNT>.
IF SY-INDEX = MONTH.
ETAB-X_MTHC = ETAB-X_MTHC + <MNT>.
ENDIF.
ELSE.
EXIT.
ENDIF.
ENDDO.
ELSEIF YEAR > COSP-GJAHR.
ETAB-X_ITDC = ETAB-X_ITDC +
COSP-WKG001 + COSP-WKG002 +
COSP-WKG003 + COSP-WKG004 +
COSP-WKG005 + COSP-WKG006 +
COSP-WKG007 + COSP-WKG008 +
COSP-WKG009 + COSP-WKG010 +
COSP-WKG011 + COSP-WKG012 +
COSP-WKG013 + COSP-WKG014 +
COSP-WKG015 + COSP-WKG016.
ELSE.
EXIT.
ENDIF.
ENDIF.
ENDSELECT.
COOI Table (Commitments) commitments for the WBS elements
SELECT * FROM COOI
WHERE OBJNR = PRPS-OBJNR.
ETAB-X_COMM = ETAB-X_COMM + COOI-WTGBTR.
ENDSELECT.
COSS Table (External Postings) G&A on Commitments
COSS Table (External Postings) Shared Billed Sales
COSS Table (External Postings) Shared DPC's
COSS Table (External Postings) Salary,ESE,OH, & G&A
SELECT * FROM COSS
WHERE
( OBJNR = PRPS-OBJNR AND
WRTTP = '22' ) "G&A on Commitments
OR
( OBJNR = PRPS-OBJNR AND
GJAHR LE YEAR AND
WRTTP = '04' AND "04 = Actuals
( "Shared Billed Sales
( KSTAR BETWEEN '0000400001' AND '0000400989' OR
KSTAR BETWEEN '0000999001' AND '0000999003' )
OR "Shared DPC's
( KSTAR BETWEEN '0000600001' AND '0000601999' )
OR "Salary,ESE,OH, & G&A
( ( KSTAR BETWEEN '0000001000' AND '0000001999' OR
KSTAR BETWEEN '0000002100' AND '0000002199' OR
KSTAR BETWEEN '0000002500' AND '0000002599' OR
KSTAR BETWEEN '0000002800' AND '0000002899' ) )
and parob not like 'PR%' ) "commented out on 4/19/2000
*------- G&A on Commitments (NOTE: data is always as of the RUN date)
IF COSS-WRTTP = '22'.
ETAB-X_COMM = ETAB-X_COMM +
COSS-WKG001 + COSS-WKG002 +
COSS-WKG003 + COSS-WKG004 +
COSS-WKG005 + COSS-WKG006 +
COSS-WKG007 + COSS-WKG008 +
COSS-WKG009 + COSS-WKG010 +
COSS-WKG011 + COSS-WKG012 +
COSS-WKG013 + COSS-WKG014 +
COSS-WKG015 + COSS-WKG016.
ENDIF.
*------- Shared Billed Sales
IF ( COSS-KSTAR BETWEEN '0000400001' AND '0000400989' OR
COSS-KSTAR BETWEEN '0000999001' AND '0000999003' ) AND
COSS-WRTTP = '04'.
IF YEAR = COSS-GJAHR.
DO.
IF SY-INDEX LE MONTH.
MOVE SY-INDEX TO HLD_INDX.
MNT_INDX = 'COSS-WKGXXX'.
REPLACE 'XXX' WITH HLD_INDX INTO MNT_INDX.
ASSIGN (MNT_INDX) TO <MNT>.
ETAB-X_ITDB = ETAB-X_ITDB - <MNT>.
ETAB-X_YTDB = ETAB-X_YTDB - <MNT>.
IF SY-INDEX = MONTH.
ETAB-X_MTHB = ETAB-X_MTHB - <MNT>.
ENDIF.
ELSE.
EXIT.
ENDIF.
ENDDO.
ELSEIF YEAR > COSS-GJAHR.
ETAB-X_ITDB = ETAB-X_ITDB -
COSS-WKG001 - COSS-WKG002 -
COSS-WKG003 - COSS-WKG004 -
COSS-WKG005 - COSS-WKG006 -
COSS-WKG007 - COSS-WKG008 -
COSS-WKG009 - COSS-WKG010 -
COSS-WKG011 - COSS-WKG012 -
COSS-WKG013 - COSS-WKG014 -
COSS-WKG015 - COSS-WKG016.
ELSE.
EXIT.
ENDIF.
ENDIF.
*------- Shared DPC's
IF COSS-KSTAR BETWEEN '0000600001' AND '0000601999' AND
COSS-WRTTP = '04'.
IF YEAR = COSS-GJAHR.
DO.
IF SY-INDEX LE MONTH.
MOVE SY-INDEX TO HLD_INDX.
MNT_INDX = 'COSS-WKGXXX'.
REPLACE 'XXX' WITH HLD_INDX INTO MNT_INDX.
ASSIGN (MNT_INDX) TO <MNT>.
ETAB-X_ITDC = ETAB-X_ITDC + <MNT>.
ETAB-X_YTDC = ETAB-X_YTDC + <MNT>.
IF SY-INDEX = MONTH.
ETAB-X_MTHC = ETAB-X_MTHC + <MNT>.
ENDIF.
ELSE.
EXIT.
ENDIF.
ENDDO.
ELSEIF YEAR > COSS-GJAHR.
ETAB-X_ITDC = ETAB-X_ITDC +
COSS-WKG001 + COSS-WKG002 +
COSS-WKG003 + COSS-WKG004 +
COSS-WKG005 + COSS-WKG006 +
COSS-WKG007 + COSS-WKG008 +
COSS-WKG009 + COSS-WKG010 +
COSS-WKG011 + COSS-WKG012 +
COSS-WKG013 + COSS-WKG014 +
COSS-WKG015 + COSS-WKG016.
ELSE.
EXIT.
ENDIF.
ENDIF.
*------- Salary,ESE,OH,& G&A
IF ( COSS-KSTAR BETWEEN '0000001000' AND '0000001999' OR
COSS-KSTAR BETWEEN '0000002100' AND '0000002199' OR
COSS-KSTAR BETWEEN '0000002500' AND '0000002599' OR
COSS-KSTAR BETWEEN '0000002800' AND '0000002899' ) AND
COSS-WRTTP = '04'.
IF YEAR = COSS-GJAHR.
DO.
IF SY-INDEX LE MONTH.
MOVE SY-INDEX TO HLD_INDX.
MNT_INDX = 'COSS-WKGXXX'.
REPLACE 'XXX' WITH HLD_INDX INTO MNT_INDX.
ASSIGN (MNT_INDX) TO <MNT>.
ETAB-X_ITDC = ETAB-X_ITDC + <MNT>.
ETAB-X_YTDC = ETAB-X_YTDC + <MNT>.
IF SY-INDEX = MONTH.
ETAB-X_MTHC = ETAB-X_MTHC + <MNT>.
ENDIF.
ELSE.
EXIT.
ENDIF.
ENDDO.
ELSEIF YEAR > COSS-GJAHR.
ETAB-X_ITDC = ETAB-X_ITDC +
COSS-WKG001 + COSS-WKG002 +
COSS-WKG003 + COSS-WKG004 +
COSS-WKG005 + COSS-WKG006 +
COSS-WKG007 + COSS-WKG008 +
COSS-WKG009 + COSS-WKG010 +
COSS-WKG011 + COSS-WKG012 +
COSS-WKG013 + COSS-WKG014 +
COSS-WKG015 + COSS-WKG016.
ELSE.
EXIT.
ENDIF.
ENDIF.
ENDSELECT.
COSB Table (Results from running RA) Unbilled Sales
SELECT * FROM COSB
WHERE OBJNR = PRPS-OBJNR
AND KSTAR BETWEEN '0000003004' AND '0000003005'
"0000003004 = Unbilled Revenue
"0000003005 = Unearned Revenue
AND GJAHR LE YEAR
AND WRTTP = '32'. "32 = Results Analysis
IF YEAR = COSB-GJAHR.
DO.
IF SY-INDEX LE MONTH.
MOVE SY-INDEX TO HLD_INDX.
MNT_INDX = 'COSB-WKGXXX'.
REPLACE 'XXX' WITH HLD_INDX INTO MNT_INDX.
ASSIGN (MNT_INDX) TO <MNT>.
ETAB-X_ITDS = ETAB-X_ITDS - <MNT>.
ETAB-X_YTDS = ETAB-X_YTDS - <MNT>.
IF SY-INDEX = MONTH.
ETAB-X_MTHS = ETAB-X_MTHS - <MNT>.
ENDIF.
ELSE.
EXIT.
ENDIF.
ENDDO.
ELSEIF YEAR > COSB-GJAHR.
ETAB-X_ITDS = ETAB-X_ITDS -
COSB-WKG001 - COSB-WKG002 -
COSB-WKG003 - COSB-WKG004 -
COSB-WKG005 - COSB-WKG006 -
COSB-WKG007 - COSB-WKG008 -
COSB-WKG009 - COSB-WKG010 -
COSB-WKG011 - COSB-WKG012 -
COSB-WKG013 - COSB-WKG014 -
COSB-WKG015 - COSB-WKG016.
ELSE.
EXIT.
ENDIF.
ENDSELECT.
ENDSELECT. "End of WBS records (from PRPS) for project
Get Total Sales by adding Billed Sales to Unbilled Sales.
ETAB-X_ITDS = ETAB-X_ITDS + ETAB-X_ITDB.
ETAB-X_YTDS = ETAB-X_YTDS + ETAB-X_YTDB.
ETAB-X_MTHS = ETAB-X_MTHS + ETAB-X_MTHB.
IF HOLD_PRART IN EXTRTYP. "Matches the user requested project type
IF OPT1 EQ 'X' OR "All projects
( OPT2 EQ 'X' AND "Only active projects
ETAB-X_STAT NE 'TECO' AND
ETAB-X_STAT NE 'CLSD' ).
TOTAL_AWARD = TOTAL_AWARD + ETAB-X_AWRD.
TOTAL_AUTHR12 = TOTAL_AUTHR12 + ETAB-X_P12R .
TOTAL_AUTHC12 = TOTAL_AUTHC12 + ETAB-X_P12C.
TOTAL_AUTHR13 = TOTAL_AUTHR13 + ETAB-X_P13R.
TOTAL_AUTHC13 = TOTAL_AUTHC13 + ETAB-X_P13C.
TOTAL_ITDSALES = TOTAL_ITDSALES + ETAB-X_ITDS.
TOTAL_ITDCOSTS = TOTAL_ITDCOSTS + ETAB-X_ITDC.
TOTAL_YTDSALES = TOTAL_YTDSALES + ETAB-X_YTDS.
TOTAL_YTDCOSTS = TOTAL_YTDCOSTS + ETAB-X_YTDC.
TOTAL_MTHSALES = TOTAL_MTHSALES + ETAB-X_MTHS.
TOTAL_MTHCOSTS = TOTAL_MTHCOSTS + ETAB-X_MTHC.
TOTAL_ITDBILLED = TOTAL_ITDBILLED + ETAB-X_ITDB.
TOTAL_YTDBILLED = TOTAL_YTDBILLED + ETAB-X_YTDB.
TOTAL_MTHBILLED = TOTAL_MTHBILLED + ETAB-X_MTHB.
TOTAL_COMMITMENT = TOTAL_COMMITMENT + ETAB-X_COMM.
PERFORM SHIFT_SIGN.
APPEND ETAB. "Write data to internal table
CLEAR ETAB.
COUNT_PROJECTS = COUNT_PROJECTS + 1. "Count # of Projects
ENDIF.
ENDIF.
ENDSELECT.
ENDSELECT. "End of Projects from PROJ table
PERFORM GRAND_TOTALS.
SORT ETAB BY X_BU X_PROJ.
ETAB-X_BU = 'BU'.
ETAB-X_CNTR = 'PrftCntr'.
ETAB-X_PROJ = 'Proj'.
ETAB-X_CREP = 'Contract Mgr'.
ETAB-X_BDREP = 'Account Mgr'.
ETAB-X_GRPH = 'Technical Lead'.
ETAB-X_ACTREP = 'Key Person1'.
ETAB-X_PMGR = 'Program Mgr'.
ETAB-X_TTLE = 'Title'.
ETAB-X_CLNT = 'Client'.
ETAB-X_POCN = 'Contract #'.
ETAB-X_TYPE = 'Type'.
ETAB-X_OPEN = 'Open'.
ETAB-X_CLOSE = 'Close'.
ETAB-X_CGT = 'CGT'.
ETAB-X_DISTR = 'DC'.
ETAB-X_CONTR = 'Contr%'.
ETAB-X_AWRD = 'Award'.
ETAB-X_P12R = 'Auth12 Sales'.
ETAB-X_P12C = 'Auth12 Cost'.
ETAB-X_P13R = 'Auth13 Sales'.
ETAB-X_P13C = 'Auth13 Cost'.
ETAB-X_ITDS = 'ITD Sales'.
ETAB-X_ITDC = 'ITD Costs'.
ETAB-X_YTDS = 'YTD Sales'.
ETAB-X_YTDC = 'YTD Costs'.
ETAB-X_MTHS = 'Mth Sales'.
ETAB-X_MTHC = 'Mth Costs'.
ETAB-X_ITDB = 'ITD Billed'.
ETAB-X_YTDB = 'YTD Billed'.
ETAB-X_MTHB = 'Mth Billed'.
ETAB-X_COMM = 'Commitments'.
ETAB-X_STAT = 'Status'.
INSERT ETAB INDEX 1. "Write a report header line to internal table
CLEAR ETAB.
CALL FUNCTION 'Z_RH_START_EXCEL_DATA_OLE'
EXPORTING
data_name = 'C:\WINNT\Profiles\cbraswell\Desktop\TestTemp.xlt'
DATA_NAME = 'ZSales.XLS'
DATA_PATH_FLAG = 'W'
DATA_TYPE = 'DAT'
DATA_BIN_FILE_SIZE = 'ZSales'
CHART_TITLE = 'ZSales'
CHART_TYPE = 2
CATEGORY_TITLE = 'ZSales'
VALUE_TITLE = 'ZSales'
DATA_XTOP_COR = 0
DATA_YTOP_COR = 0
DATA_XBOT_COR = 0
DATA_YBOT_COR = 0
CATEGORY_XTOP_COR = 0
CATEGORY_YTOP_COR = 0
CATEGORY_XBOT_COR = 0
CATEGORY_YBOT_COR = 0
TABLES
DATA_TAB = ETAB
EXCEPTIONS
NO_BATCH = 1
DOWNLOAD_ERROR = 2
INVALID_TYPE = 3
INTERNAL_ERROR = 4
NO_OLE_SUPPORT = 5
OLE_FILE_ERROR = 6
OLE_ERROR = 7
NO_DATA = 8
COORDINATE_ERROR = 9
OTHERS = 10.
Negative # sign in the front of number for downloading to Excel
FORM SHIFT_SIGN.
IF ETAB-X_AWRD CA '-'. SHIFT ETAB-X_AWRD RIGHT CIRCULAR. ENDIF.
IF ETAB-X_P12R CA '-'. SHIFT ETAB-X_P12R RIGHT CIRCULAR. ENDIF.
IF ETAB-X_P12C CA '-'. SHIFT ETAB-X_P12C RIGHT CIRCULAR. ENDIF.
IF ETAB-X_P13R CA '-'. SHIFT ETAB-X_P13R RIGHT CIRCULAR. ENDIF.
IF ETAB-X_P13C CA '-'. SHIFT ETAB-X_P13C RIGHT CIRCULAR. ENDIF.
IF ETAB-X_ITDS CA '-'. SHIFT ETAB-X_ITDS RIGHT CIRCULAR. ENDIF.
IF ETAB-X_ITDIC CA '-'. SHIFT ETAB-X_ITDIC RIGHT CIRCULAR. ENDIF.
IF ETAB-X_ITDC CA '-'. SHIFT ETAB-X_ITDC RIGHT CIRCULAR. ENDIF.
IF ETAB-X_YTDS CA '-'. SHIFT ETAB-X_YTDS RIGHT CIRCULAR. ENDIF.
IF ETAB-X_YTDC CA '-'. SHIFT ETAB-X_YTDC RIGHT CIRCULAR. ENDIF.
IF ETAB-X_YTDIC CA '-'. SHIFT ETAB-X_YTDIC RIGHT CIRCULAR. ENDIF.
IF ETAB-X_MTHS CA '-'. SHIFT ETAB-X_MTHS RIGHT CIRCULAR. ENDIF.
IF ETAB-X_MTHC CA '-'. SHIFT ETAB-X_MTHC RIGHT CIRCULAR. ENDIF.
IF ETAB-X_MTHIC CA '-'. SHIFT ETAB-X_MTHIC RIGHT CIRCULAR. ENDIF.
IF ETAB-X_ITDB CA '-'. SHIFT ETAB-X_ITDB RIGHT CIRCULAR. ENDIF.
IF ETAB-X_YTDB CA '-'. SHIFT ETAB-X_YTDB RIGHT CIRCULAR. ENDIF.
IF ETAB-X_MTHB CA '-'. SHIFT ETAB-X_MTHB RIGHT CIRCULAR. ENDIF.
IF ETAB-X_COMM CA '-'. SHIFT ETAB-X_COMM RIGHT CIRCULAR. ENDIF.
ENDFORM.
FORM GRAND_TOTALS.
SKIP 1. .
WRITE: / '----
WRITE: / 'System ID = ', SY-SYSID,
/ 'Client = ', SY-MANDT,
/ 'User = ', SY-UNAME,
/ 'Date of data extract = ', SY-DATUM ,
/ 'Number of Projects = ', COUNT_PROJECTS,
/ 'total Award (Plan 11) = ', TOTAL_AWARD,
/ 'total Auth SalesHi all,
Iam really waiting for someone to see and get the logic right for this code.Iam completely stuck up. i need ur help
Thanks -
Connection Pooling Help Needed
Greetings.
I am trying to get a database connection in Websphere 5.0 (running on Redhat Adv. Server) and my connection times are very, very slow. Below is the code to get the connection:
Properties parms = new Properties();
parms.setProperty(Context.INITIAL_CONTEXT_FACTORY,
"com.ibm.websphere.naming.WsnInitialContextFactory");
// Create the Initial Naming Context
Context ctx = new InitialContext(parms);
DataSource ds = (DataSource) ctx.lookup("jdbc/customer");
Connection con = ds.getConnection();
Here is the setup for the database connection within the Websphere Admin Console to an Oracle 8i database:
Implementation: oracle.jdbc.pool.ConnectionPoolDataSource
JNDI Name: jdbc/customer
Statement Cache Size: 10
Data source helper class name: com.ibm.websphere.rsadapter.OracleDataStoreHelper
Connection Timeout: 1800
Maximum Connections: 30
Minimum Connections: 10
Reap Time: 180
Unused Timeout: 1800
Aged Timeout: 0
Purge Policy: Entire Pool
We CAN connect to the database. We CAN run SQL statements and stored procedures just fine. Everything with the database is working correctly. ok, so here is the problem... The statement: Connection con = ds.getConnection(); Takes a long time. 3+ seconds. Every time. No Matter what the load is. We need to get this time down significantly. It's killing our web services.
Using JMeter, We have tested it using a single thread and up to 50 concurrent threads and it all runs the same. 3+ seconds. We actually changed the code to create a database connection just using JDBC with no JNDI lookup and it runs at the same speed. It is almost as if the connection pool is not working correctly.
So then we looked to see if we were ever getting the same connection twice, but when we printed out the object references, it looks like the connection is a brand new connection EVERY time because the object references are different. Please see the partial log file I have included below.
Right now, our theory is that the connection pool is just getting us a new connection every time without reusing existing connections. We have played with all the settings on minimum connections, maximum connections, and everything else and nothing seems to help.
Thank you to anyone that might be able to help us.
Stephen
Log File:
----- getDatabaseConnection() ------
ERROR - 1 - Connection is com.ibm.ws.rsadapter.jdbc.WSJdbcConnection@7aac74cd
ERROR -
----- getDatabaseConnection() ------
1066140699427Using existing ds
getting datasource took 0 milliseconds to complete.
getting connection took 3733 milliseconds to complete.
getDatabaseConnection took 3733 milliseconds to complete.
----- getDatabaseConnection() ------
ERROR - 1 - Connection is com.ibm.ws.rsadapter.jdbc.WSJdbcConnection@7580f4cd
ERROR -
----- getDatabaseConnection() ------
1066140699707Using existing ds
getting datasource took 0 milliseconds to complete.
getting connection took 3454 milliseconds to complete.
getDatabaseConnection took 3454 milliseconds to complete.
----- getDatabaseConnection() ------
ERROR - 1 - Connection is com.ibm.ws.rsadapter.jdbc.WSJdbcConnection@5b2b4cd
ERROR -
----- getDatabaseConnection() ------
1066140700199Using existing ds
getting datasource took 0 milliseconds to complete.
getting connection took 2965 milliseconds to complete.
getDatabaseConnection took 2965 milliseconds to complete.
----- getDatabaseConnection() ------
ERROR - 1 - Connection is com.ibm.ws.rsadapter.jdbc.WSJdbcConnection@2301b4ce
ERROR -
----- getDatabaseConnection() ------
1066140699752Using existing ds
getting datasource took 0 milliseconds to complete.
getting connection took 3417 milliseconds to complete.
getDatabaseConnection took 3417 milliseconds to complete.The problem might be the version of Driver Class you use... If you use Oracle 9x, u need to have new version of classes12.jar/zip. Do check it out.
-
Problem clonning dynamic pool, help needed
Hi, again I am having problems ...
I manage to successfully import a winxp vm and convert it to template,
I then went to the pool tab,created a new pool, added the template and
configured the cloning to automatic, min 1, max 3 machines (I am still in testing
mode)
the problem is that when the vdi is trying to clone the machines, this is
what I get:
Cloning Desktop Dyn-pool-VM-01 Dyn-pool 11:41:18 11:42:33 Job Failed
the error:
Error cloning: No suitable hosts to start a desktop for Desktop Provider xvmhost.
the desktop provider seems to be ok:
xvmhost - Sun xVM VirtualBox Desktop Provider Summary
Status: OK
Pools: Dyn-pool
Hosts:
CPU Usage:2%
Total Memory:3.87 GB
Memory Usage:95%
Storage:
Number of Storages: 1
Total Capacity:75.30 GB
Usage:25%
the host appears enabled in the host tab, but when I go to the template, nothing
appears next the the host: parameter, is that ok?
General Information
Machine State: Powered Off
Desktop State:Template
User: -
Assignment Type: -
Guest Operating System
Operating System: Microsoft Windows XP
IP Address: -
Template: -
Desktop Provider Resources
Host:
Storage: inglaterra
ZFS Volume:rpool/edd4470e-e8eb-4e11-9ee1-f6fd2607c83b
what am I doing wrong or what am I missing? I did not find references to this
in the wiki page ... if there are, plz provide me with the link(s)
thanks in advance
-Oswaldothis is the output from vmstat just before enabling the auto clone for the pool,
dont know if this is usefull....
root [ ~ ]# vmstat 5
kthr memory page disk faults cpu
r b w swap free re mf pi po fr de sr s0 s1 s2 s3 in sy cs us sy id
0 0 0 17438080 610716 2 20 0 0 0 0 1 -0 -0 0 2 617 549 358 0 0 100
0 0 0 17297396 384496 3 11 0 0 0 0 0 0 0 0 0 454 177 211 0 0 100
0 0 0 17297300 384460 0 0 0 0 0 0 0 0 0 0 0 470 144 219 0 0 100
0 0 0 17297268 384432 0 1 0 0 0 0 0 0 0 0 0 850 1859 1000 0 0 99
0 0 0 17297148 384312 0 0 0 0 0 0 0 0 0 0 0 709 1280 736 0 0 100
0 0 0 17297148 384312 0 0 0 0 0 0 0 0 0 0 2 503 169 265 0 0 100
0 0 0 17297132 384304 0 0 0 0 0 0 0 0 0 0 0 712 1272 736 0 0 100
0 0 0 17297132 384304 0 0 0 0 0 0 0 0 0 0 0 451 168 208 0 0 100
0 0 0 17297132 384296 0 0 0 0 0 0 0 0 0 0 0 831 1830 993 0 0 99
0 0 0 17297132 384296 0 0 0 0 0 0 0 0 0 0 0 470 165 216 0 0 100
0 0 0 17297120 384288 0 0 0 0 0 0 0 0 0 0 0 705 1290 735 0 0 100
0 0 0 17297116 384288 0 0 0 0 0 0 0 0 0 0 2 503 166 263 0 0 100
0 0 0 17297116 384284 0 0 0 0 0 0 0 0 0 0 0 845 1843 1010 0 0 99
0 0 0 17297116 384280 0 0 0 0 0 0 0 0 0 0 0 451 168 208 0 0 100
0 0 0 17297116 384280 0 0 0 0 0 0 0 0 0 0 0 471 145 220 0 0 100
0 0 0 17297100 384268 0 1 0 0 0 0 0 0 0 0 0 712 1295 737 0 0 100
0 0 0 17297100 384260 0 0 0 0 0 0 0 0 0 0 0 573 716 470 0 0 100
0 0 0 17297100 384260 0 0 0 0 0 0 0 0 0 0 2 503 165 263 0 0 100
kthr memory page disk faults cpu
r b w swap free re mf pi po fr de sr s0 s1 s2 s3 in sy cs us sy id
0 0 0 17297100 384260 0 0 0 0 0 0 0 0 0 0 0 467 144 214 0 0 100
0 0 0 17297100 384260 0 0 0 0 0 0 0 0 0 0 0 451 235 243 0 0 100
0 0 0 17297100 384260 9 79 0 0 0 0 0 0 0 0 0 591 734 481 0 0 100
0 0 0 17295868 384140 0 27 0 0 0 0 0 0 0 0 0 1013 2667 1377 0 0 99
0 0 0 17295048 384064 0 0 0 0 0 0 0 0 0 0 0 450 151 206 0 0 100
0 0 0 17295044 384060 0 0 0 0 0 0 0 0 0 0 2 746 1297 784 0 0 100
0 0 0 17295032 384052 0 0 0 0 0 0 0 0 0 0 0 595 711 478 0 0 100
0 0 0 17295032 384048 0 0 0 0 0 0 0 0 0 0 0 699 1296 736 0 0 100
0 0 0 17295032 384048 0 0 0 0 0 0 0 0 0 0 0 472 145 221 0 0 100
0 0 0 17295032 384048 0 0 0 0 0 0 0 0 0 0 0 469 174 217 0 0 100
0 0 0 17294844 383796 0 44 0 0 0 0 0 0 0 0 0 848 1855 1007 0 0 99
0 0 0 17294796 383732 0 0 0 0 0 0 0 0 0 0 2 502 168 262 0 0 100
0 0 0 17294796 383728 0 1 0 0 0 0 0 0 0 0 0 715 1273 738 0 0 100
0 0 0 17294784 383716 0 0 0 0 0 0 0 0 0 0 0 451 169 209 0 0 100
and this is the status while cloning:
Hosts:
CPU Usage:1%
Total Memory:3.87 GB
Memory Usage:90%
root [ ~ ]# prtdiag -v|head -20
System Configuration: Sun Microsystems Sun Fire X4200 Server
BIOS Configuration: American Megatrends Inc. 080010 01/31/2006
BMC Configuration: IPMI 2.0 (KCS: Keyboard Controller Style)
==== Processor Sockets ====================================
Version Location Tag
Dual Core AMD Opteron(tm) Processor 280 SE H0
Dual Core AMD Opteron(tm) Processor 280 SE H1
Dual Core AMD Opteron(tm) Processor 280 SE H2
Dual Core AMD Opteron(tm) Processor 280 SE H3
==== Memory Device Sockets ================================
Type Status Set Device Locator Bank Locator
DDR in use 0 H0_DIMM0 BANK0
DDR in use 0 H0_DIMM1 BANK1
unknown empty 0 H0_DIMM2 BANK2 -
Num ranges in module pool prog
Hi all,
i want to maintain a number range for my custom screen.
whenever i enter data in to the custom screen and press SAVE,it should create a automatic number and tht should b saved in the concern ZTABLE.
this screen belongs to Production Planning.
am maintaining this generated number as primary key in the ZTABLE.
any help will b rewarded with maximum points...
thanQHello,
(a) We need to create number ranges in transaction SNRO
(b) Enter the number range object name and press CREATE.
(c) Enter the description, Long text and Number Length domain andWarning %(when you are about to expire the number range a warning must be given eg:if the range is 1 to 100 and 90 is created we need to be notified that 90 is over and only 10 are remaining ..accordingly we should reset the number range or do other necessary actions..eg:10% => when it reaches 90 in number range of 1 to 100 message is displayed)
enter Number length domain..which is the length of the range eg:if we put "NUM10" as the domain(check in se11->domain->num10) we can declare an interval with 1 to maximum of 9999999999 or less than that according to our requirement
(d) Press SAVE
(e)Now click on u201CNumber Rangesu201D button on the application toolbar
(f) Click on u201CChange Intervalsu201D.
(g) Click on u201CInsert Intervalu201D.
(h) enter the range which needs to be created eg:1 to 100
Click u201CInsertu201D and then SAVE. The number range object is generated
in the program we can use the function module, NUMBER_GET_NEXT, to get the next number of any number range object.
Also keep in mind that number range NUMBER_GET_NEXT be called on the click of that 'SAVE' button just before updating the Ztable .incase we have any errors in the module pool we need not worry about accidently creating numbers... if the code is wriiten in 'SAVE' action after complete requirement checks the issue will no occur
Regards
Byju -
How to display a screen as Popup Dialog box in Module Pool
Hi All,
I have a requirement to display a popup dialoge box into module pool.
i need to display a screen as a popup on the current screen on a button click.I have developed a screen and in atribute tab i have defined the screen type as modal dialog box but it is displaying previous screen screen is hide i want to display on the same screen as a popup.
Thanks
NarendraHi Narendra,
Try to trigger the popup once it is done with the previous action might be anything.
i have shown one sample code where after i click on save button when the data is saved successfully
after that it has to trigger me a popup asking for conformation for the next action.
A small piece of code
INSERT INTO ZORMD1 VALUES WA_ZORMD1.
IF SY-SUBRC = 0.
G_LOCAL1 = 0.
MESSAGE S000. " Data saved successfully and immediately call the popup
CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
EXPORTING
DEFAULTOPTION = 'Y'
TEXTLINE1 = 'SUCCESSFULLY SAVED'
TITEL = 'POPUP FOR conformation'
START_COLUMN = 25
START_ROW = 10
CANCEL_DISPLAY = 'X'
IMPORTING
ANSWER = G_PRINT
IF G_PRINT = 'J'.
PERFORM PRINT_OUT.
ENDIF.
Do the modification according to your requirement.
Cheers!!
VEnk@ -
Expose module pool application to ITS with HTML Images
I am facing issue while exposing my module pool application to ITS.
I have splitting container and HTML images in Tab strip. When I expose same to ITS, Its not displaying any HTML image tab however its displaying rest of screen element. I have to show the screen in ITS as it is in module pool. help me to resolve if anyone faced same kind of issue.As mentioned in the Thread, use the Syntax
SET Pf-STATUS 'STATUS' excluding itab
Example:
data: BEGIN OF MTAB_UCOMM_EXCLUDE OCCURS 0,
VALUE(4) TYPE C,
END OF MTAB_UCOMM.
AT USER-COMMAND.
PERFORM SET_PF_STATUS. ...
FORM SET_PF_STATUS *
Set up the menus/buttons for the report *
FORM SET_PF_STATUS.
CLEAR MTAB_UCOMM_EXCLUDE.
REFRESH MTAB_UCOMM_EXCLUDE.
CASE MI_CURRENT_PAGE.
WHEN 1.
*-- Do not want any pushbuttons that point to items to the right
*-- since the list is at its rightmost position
MTAB_UCOMM_EXCLUDE-UCOMM = 'FRST'.
APPEND MTAB_UCOMM_EXCLUDE.
MTAB_UCOMM_EXCLUDE-UCOMM = 'PREV'.
APPEND MTAB_UCOMM_EXCLUDE.
WHEN MI_TOTAL_PAGES.
*-- Do not want any pushbuttons that point to items to the left
*-- since the list is at its leftmost position
MTAB_UCOMM_EXCLUDE-UCOMM = 'LAST'.
APPEND MTAB_UCOMM_EXCLUDE.
MTAB_UCOMM_EXCLUDE-UCOMM = 'NEXT'.
APPEND MTAB_UCOMM_EXCLUDE.
WHEN OTHERS.
*-- Want all pushbuttons to appear on any other page
ENDCASE.
SET PF-STATUS 'MAIN' EXCLUDING MTAB_UCOMM_EXCLUDE.
ENDFORM. " SET_PF_STATUS
Hope this helps
Vinodh Balakrishnan -
Help needed for checkbox in module pool
Hi experts,
My requirement is i have 8 machines. i want to have a check box for each machine and when i select a specific machine by checking it, it should store data in my ztable as that specific machine name or it should show a flag or mark on each field selected inside my ztable.
I am confused in the logic to enter in my module pool program. please help.see this :
Create CheckBox in Module pool and update the Databas once i hit the enter
Also please search before you post -
Need help in module Pool programming.
Dear gurus
I'm stuck in a step of Module Pool program
Steps i used for enhancement in XK01.
1) i appended a structure in table LFA1 having two fields A and B.
2) then i went to IMG-> Logistic -> Business Partner-> Vendor -> Adoption of Customer's Own Master Data Fields -> Prepare Modification-Free Enhancement of Vendor Master Record ( Here i created my screen group Z1 without Function Code.
3) then i created below module pool program. of screen 9999 and in layout i added to fields to display A and B which i appended.
PROGRAM ZSNAK_XK01.
TABLES: lfa1.
module status_9999 output.
endmodule. " status_9999 OUTPUT
module user_command_9999 input.
endmodule.
4) After this i wen to IMG-> Logistic -> Business Partner-> Vendor -> Adoption of Customer's Own Master Data Fields ->
Business Add-In: Processing of Master Data Enhancements ( Here i created my implementation on method CHECK_ADD_ON_ACTIVE and added this code
if i_screen_group eq 'Z1'.
e_add_on_active = 'X'.
endif.
5) then i went to IMG-> Logistic -> Business Partner-> Vendor -> Adoption of Customer's Own Master Data Fields ->
Business Add-In: Customer Subscreens. and created my implementation on method GET_TAXI_SCREEN where i have written this code.
e_screen = '9999'.
e_program = 'ZSNAK_XK01'.
e_headerscreen_layout = ''.
After activation when i execute t-code XK01 i see my button there after INFORMATION BUTTON when i click on it i get following error.
Incorrect screen type: Screen is incorrectly defined or used.
The attribute screen type with the values 'Normal Screen' and
'Subscreen' determines the use of the screen. If a normal screen is used
as subscreen or vice versa, an error occurs.
The screen "ZSNAK_XK01" 9999 has, in this respect, an inappropriate screen
type.
Please guide me
Regards
Saad Nisar.I think you have defined the screen 9999 as normal screen. go to attributes tab of the screen and make it as "subscreen' (radio button) and activate
a® -
Hi Friends,
Can anyone give me the idea for creating module pool using 3 to 4 database tables.a module pool program can be ceated using <u><i><b>se 80 - object avigator.</b></i></u>
select program in the drop-down box..
enter a program name and press enter key...
right click on the program name (object name)
save the object in ur own package...
u can also create include callled TOPinclude- to globalise all the data used in the program...
choose create ---> choose SCREENS ..
goto layout and set the layout of the screen...
use screen PBO - Process before output modules...
(PBO occurs before user interaction)
and PAI - Process after input modules for module pool programming..
(PAI occurs after user interaction)
double click on modules..
declare structures for using different internal tables and work areas for different database tables .
let us have a a structure called struct_tables
having fields from VBAK and KNA1 such as NAME1, STRAS, ORT01, PSTLZ,
TELF1 BY INNER JOINING VBAK AND KNA1 TABLES BASED UPON KUNNR AS KEY FIELD AND HAVING SALES DOCUMENT NUMBER 'VBELN' AS INPUT BY THE USER .
statement :
SELECT NAME1
STRAS
ORT01
PSTLZ
TELF1
VBELN
KUNNR
FROM VBAK INNER JOIN KNA1 ON
VBAKKUNNR = KNA1KUNNR .
and then u can also write the sselected fields in a table control wizard...
thus u can perform module pool programming using 3-4 database tables. -
hello friends
i m new in ABAP
i had designed database and now i want to enter the data through module pool so please guide me about the module pool and insert condition how could i do that
Do post friends...................
Waiting for ure precious suggestions
With Best Regards
RubyCreate Table Control screen in Module Pool
· Step 1 (Create new structure for table control)
Type is name of structure (ZTC_EKKO) and press create
· Step 2 (Create Program)
Goto transaction SE80(Object Navigator) -> Repository Browser -> Program.
Enter your program name, please ensure that is begins with SAPMZ as this is a module pool (dialog program).
Press enter to create, and press yes!
Ensure that you create a top include, and press Enter.
Accept the name created for the top include.
Press Enter.
Create Table Control
· Step 1 (Create new structure for table control)
Type is name of structure (ZTC_EKKO) and press create
Enter the fields that you want to display in the table control. Example uses fields from EKKO.
Now save and activate it!
· Step 2 (Create Program)
Goto transaction SE80(Object Navigator) -> Repository Browser -> Program.
Enter your program name, please ensure that is begins with SAPMZ as this is a module pool (dialog program).
Press enter to create, and press yes!
Ensure that you create a top include, and press Enter.
Accept the name created for the top include.
Press Enter.
Press Save
· Step 3 (Create TOP include)
Double click on the top include and enter following ABAP code:
Tables: ZTC_EKKO.
controls: tc100 type tableview using screen 100.
data: ok_code type sy-ucomm.
data: it_ekko type standard
table of ZTC_EKKO initial size 0,
wa_ekko type ZTC_EKKO.
data: ok_code type sy-ucomm.
· Step 4 (Create screen)
Right click the program to create a screen 100 for the dialog. Enter Short description, set screen type to Normal and enter 0 or blank into Next screen. Then move to Element List tab and enter the OK code as OK_CODE (i.e. the same as what you declared in the top include with data: ok_code type sy-ucomm).
· Step 5 (Create table control)
Press the Layout button to bring up the screen painter editor.
Press table control button and drag it on to the screen, enter the name of table control created in TOP include (TC100). Now press the yellow button for attributes and set the table control as below options
Create Table Control
· Step 1 (Create new structure for table control)
Type is name of structure (ZTC_EKKO) and press create
Enter the fields that you want to display in the table control. Example uses fields from EKKO.
Now save and activate it!
· Step 2 (Create Program)
Goto transaction SE80(Object Navigator) -> Repository Browser -> Program.
Enter your program name, please ensure that is begins with SAPMZ as this is a module pool (dialog program).
Press enter to create, and press yes!
Ensure that you create a top include, and press Enter.
Accept the name created for the top include.
Press Enter.
Press Save
· Step 3 (Create TOP include)
Double click on the top include and enter following ABAP code:
Tables: ZTC_EKKO.
controls: tc100 type tableview using screen 100.
data: ok_code type sy-ucomm.
data: it_ekko type standard
table of ZTC_EKKO initial size 0,
wa_ekko type ZTC_EKKO.
data: ok_code type sy-ucomm.
Press Save and Activate
· Step 4 (Create screen)
Right click the program to create a screen 100 for the dialog. Enter Short description, set screen type to Normal and enter 0 or blank into Next screen. Then move to Element List tab and enter the OK code as OK_CODE (i.e. the same as what you declared in the top include with data: ok_code type sy-ucomm).
· Step 5 (Create table control)
Press the Layout button to bring up the screen painter editor.
Press table control button and drag it on to the screen, enter the name of table control created in TOP include (TC100). Now press the yellow button for attributes and set the table control as below options
· Step 6 (Populate table control )
Press the orange button (Fields). On the next screen enter ZTC_EKKO and press the Get from Dict button. Select the fields you want (all) and press enter. Now drag them onto your Table Control.
Below is the result, there will been syntax errors if we check now! So Save and go back
into the flow logic tab.
· Step 7 (Create flow control )
Within the flow logic of screen 100 and create two modules, one to select the data from the database and the other to move the selected fields into the table control. Also insert the two loop statements to populate and retrieve the lines of the table control.
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
module data_retrieval.
loop at it_ekko into wa_ekko with control TC100.
module populate_screen.
endloop.
PROCESS AFTER INPUT.
loop at it_ekko.
endloop.
MODULE USER_COMMAND_0100.
Double click the module data_retrieval to create and click yes to get past the popup. Ensure that a new include is created to hold all the PBO modules (default). Press enter.
Select 10 rows of data from the EKKO table and load into the internal table it_ekko. Go back to the flow logic to load this data into the Table Control.
***INCLUDE MZ_TCONTROL_DATA_RETRIEVALO01 .
*& Module data_retrieval OUTPUT
text
MODULE data_retrieval OUTPUT.
select data from ekko table
SELECT ebeln bukrs bstyp bsart
bsakz loekz statu aedat
UP TO 10 ROWS
FROM ekko
INTO CORRESPONDING FIELDS OF TABLE it_ekko.
ENDMODULE. " data_retrieval OUTPUT
Double click the module populate_screen to create. Now move the values in this loop from the wa_ekko into the Table Control with the move-corresponding statement.
MODULE populate_screen OUTPUT.
DATA: ld_line TYPE i.
* Set which line of table is a top of displayed table control
IF sy-stepl = 1.
tc100-lines =
tc100-top_line + sy-loopc - 1.
ENDIF.
* move fields from work area to scrren fields
MOVE-CORRESPONDING wa_ekko TO ztc_ekko.
ENDMODULE. "
populate_screen OUTPUT
· Step 8 (Create transaction )
Now create a transaction to test the table control program. Right click the Program and select create-> transaction.
· Step 9 (Execute transaction )
Execute transaction ZTC
please see the link for screen shots of the dailog module
http://www.sapdevelopment.co.uk/dialog/tabcontrol/tc_basic.htm
reward points if it is usefull ....
Girish -
F4 help for a field in module pool
Hello Experts,
I need to provide f4 help on field sales office(VKBUR) in my module pool program.
I have searched forums about it. but all forum contains either doc. no or customers etc.
these field are directly available on table, so very easy to find.
But for sales office, how can i provide f4 help. there is no straight entries in tables like for this company code this sales office.
so its getting difficult for me to provide help.
so if anybody know the solution plz help, and if anyone know table where all sales offices are stored, i will be thankful.
Thanks,
AmarHi amar_war,
use screen painter to edit the screen layout where the field VKBUR is on. Double click the field to get the details screen. Here you can attach a search help to the field.
H_TVBUR has no more parameters, it will display a list of al sales offices with description text
H_TVBVK will also show the sales group, if VKGRP is a screen field, it will restrict the result list automatically on matching VKGRP.
H_TVKBZ has also VKORG VTWEG SPART - it will take those values from screen if filled.
If you are not satisfied with the results, you can easily create your own search help using own selection method and own search help exits if required.
Try standard search help for standard field first.
You can create a copy of VKBUR as ZVKBUR and attach search help there, you can create your own screen structure and attach the search help there - 50 ways to get your search help...
Regards,
Clemens -
Calling search helps dynamically in module pool program
Hi Experts,
I have created two search helps. I need to call these search helps in my module pool program dynamically for a single field (i.e ZMATNR).
you might be known... if it is a single search help, we can assign that in field attributes.
But here... I need to call different search helps for a single field based on the condition.
Pls help me.
Thanks
RaghuHi,
Use the below function module and pass the search help created in search help field according to the condition.
Process on Value-request.
if condition = A.
call function " F4IF_FIELD_VALUE_REQUEST"
TABNAME =
FIELDNAME =
SEARCHHELP = "Mention search help created
Elseif Conditon =B.
call function " F4IF_FIELD_VALUE_REQUEST"
TABNAME =
FIELDNAME =
SEARCHHELP = "Mention search help created
Endif.
Regards,
Prabhudas -
Search Help For a Field in Module Pool Programming
Hi,
I have a field called status in Module Pool for which i need to write a search help.
This is the piece of code i have written.
TYPES: BEGIN OF ty_status,
stat type i,
status type string,
END OF ty_status.
DATA: lt_emp_status TYPE STANDARD TABLE OF ty_status,
lw_emp_status TYPE ty_status.
REFRESH lt_emp_status.
lw_emp_status-stat = '1'.
lw_emp_status-status = 'Draft'.
APPEND lw_emp_status TO lt_emp_status.
CLEAR lw_emp_status.
lw_emp_status-stat = '2'.
lw_emp_status-status = 'Employee Review'.
APPEND lw_emp_status TO lt_emp_status.
CLEAR lw_emp_status.
REFRESH lt_emp_status.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'STATUS'
value_org = 'S'
TABLES
value_tab = lt_emp_status
return_tab = t_return
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc = 0.
READ TABLE t_return INDEX 1.
MOVE t_return-fieldval TO LV_EMP_status.
ENDIF.
But i am getting the following error.
An exception occurred that is explained in detail below.
The exception, which is assigned to class 'CX_SY_ASSIGN_CAST_ILLEGAL_CAST', was
not caught in
procedure "F4IF_INT_TABLE_VALUE_REQUEST" "(FUNCTION)", nor was it propagated by
a RAISING clause.
Since the caller of the procedure could not have anticipated that the
exception would occur, the current program is terminated.
The reason for the exception is:
The error occurred at a statement of the form
ASSIGN f TO <fs> CASTING.
ASSIGN f TO <fs> CASTING TYPE t.
or
ASSIGN f TO <fs> CASTING LIKE f1.
or
at table statements with the addition
ASSIGNING <fs> CASTING.
The following error causes are possible:
1. The type of field f or the target type determined by <fs>, t or f1
contains data references, object references, strings or internal tables
as components.
Could some one help me how to resolve this issue.
Thanks in advance.Hi,
Please see this sample code below:
*To fetch the classification data on the sel screen
DATA: BEGIN OF IT_KLAH OCCURS 0,
CLINT TYPE CLINT,
CLASS TYPE KLASSE_D,
END OF IT_KLAH.
SELECT CLINT CLASS FROM KLAH UP TO 500 ROWS
INTO TABLE IT_KLAH.
IF SY-SUBRC <> 0 .
MESSAGE TEXT-006 TYPE 'E'.
ELSE.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
DDIC_STRUCTURE = ' '
RETFIELD = 'CLASS'
PVALKEY = ' '
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR
DYNPROFIELD = 'p_s_clascn_low' "i had to put the f4 help on the selection screen's select option low value,
"here basically you have to give the internal table name inside quotes in which
"you want to retrieve your data
VALUE_ORG = 'S'
DISPLAY = ' '
TABLES
VALUE_TAB = IT_KLAH.
ENDIF.
Hope it helps,
Regards,
Mansi
Maybe you are looking for
-
How can i run a new instance of API by providing seperate JVM.
Hello, I have some static member and function and they conflicted while opening the new instance of API. Can i run a new instance in separate JVM so it will run independently even we have static members and functions. Or do we have any other procedur
-
Can't connect to iTunes from my iPod Touch or from my Computer!!
Since yesterday, I have been having trouble connecting to the iTunes store from my iPod and computer. I can search for apps and whatever on both devices, but when it comes time to download them, on the iPod it just says "Waiting.." for a while, then
-
How many types of indexes are there? On what criteria index type is selected for a given table. Thanks in advance...
-
Bex: currency conv at prev date
Hello BE Experts, Wondering if there is a way to do the currency conversion in the Bex report for a previous date currency rates. eg: I want to run the report for the past 6 months of sales for the europe in USD. each month is displayed in the one co
-
whenever I try to download firefox beta on my laptop it asks for an adminstrator password but when i put it in it says wrong user " name or password" so I try to by pass that by trying to download as user but then nothing happens the dialog box disap