We have added search box. Key in SAP issue keyword to search
TopBottom

Announcement: wanna exchange links? contact me at sapchatroom@gmail.com.

[sap-abap] Project version key

Posted by Admin at
Share this post:
Ma.gnolia DiggIt! Del.icio.us Yahoo Furl Technorati Reddit

Posted by kumar-arjun
on Apr 29 at 7:38 AM
Hi All, I have created BDC for CN72 to generate Versionkey. i trying to validate that if version key created once in month then it should not allow to create version key for same project in the same month.Please check my code and help me how to do this.


INITIALIZATION.

SELECT * FROM PRPS INTO TABLE IT_PRPS WHERE ZZOCPS IN ('OCPR2','OCPR3').
IF NOT IT_PRPS IS INITIAL.

SELECT * FROM PROJ INTO TABLE IT_PROJ
FOR ALL ENTRIES IN IT_PRPS
WHERE PSPID = IT_PRPS-POSID.

*Get Version Key
SELECT * FROM VSKOPF INTO TABLE IT_VSKOPF
FOR ALL ENTRIES IN IT_PROJ
WHERE OBJNR_PD = IT_PROJ-OBJNR.

SELECT * FROM JEST INTO TABLE IT_JEST
FOR ALL ENTRIES IN IT_PROJ
WHERE OBJNR = IT_PROJ-OBJNR
AND STAT = 'I0002'.


LOOP AT IT_PRPS INTO WA_PRPS.

CLEAR: WA_PROJ, WA_JEST.
READ TABLE IT_PROJ INTO WA_PROJ WITH KEY PSPID = WA_PRPS-POSID.
IF SY-SUBRC EQ 0.
READ TABLE IT_JEST INTO WA_JEST WITH KEY OBJNR = WA_PROJ-OBJNR.
IF SY-SUBRC EQ 0.
CALL FUNCTION 'CONVERSION_EXIT_ABPSN_OUTPUT'
EXPORTING
INPUT = WA_PRPS-POSID
IMPORTING
OUTPUT = WA_PRPS-POSID.

P_PROJN-SIGN = 'I'.
P_PROJN-OPTION = 'EQ'.
P_PROJN-LOW = WA_PRPS-POSID.
APPEND P_PROJN TO P_PROJN[].
CLEAR P_PROJN.
ENDIF.
ENDIF.
ENDLOOP.

ENDIF.

*Start-Of-Selection
START-OF-SELECTION.

LOOP AT P_PROJN.
*Move proj to String
CLEAR: PSPID0, PSPID1, PSPID2, V_FLEN, V_BLEN.
CALL FUNCTION 'CONVERSION_EXIT_ABPSN_OUTPUT'
EXPORTING
INPUT = P_PROJN-LOW
IMPORTING
OUTPUT = P_PROJN-LOW.
.

PSPID0 = P_PROJN-LOW.

*Get Proj After '-'
SPLIT PSPID0 AT '-' INTO PSPID1 PSPID2.

*Get Length of Proj
V_FLEN = STRLEN( PSPID2 ).

*Get last 5 digit of proj
V_BLEN = V_FLEN - 5.

*Concatenate for Project Version
CLEAR: V_VSNMR, P_VSNMR.
CONCATENATE SY-DATUM+4(2) SY-DATUM+2(2) PSPID2+0(3) PSPID2+V_BLEN(5) INTO V_VSNMR.
P_VSNMR = V_VSNMR.

*Validate version key
CLEAR: WA_PROJ.
READ TABLE IT_PROJ INTO WA_PROJ WITH KEY PSPID = P_PROJN-LOW.
IF SY-SUBRC EQ 0.
LOOP AT IT_VSKOPF INTO WA_VSKOPF WHERE OBJNR_PD = WA_PROJ-OBJNR.
IF P_VSNMR = WA_VSKOPF-VSNMR.
MESSAGE I000(ZRK) WITH 'Version key exists for project:' P_PROJN-LOW.
EXIT.
ENDIF.
ENDLOOP.
ENDIF.

*Concatenate for Project Version Description
CALL FUNCTION 'CONVERSION_EXIT_ABPSN_INPUT'
EXPORTING
INPUT = P_PROJN-LOW
IMPORTING
OUTPUT = P_PROJN-LOW.

SELECT SINGLE VERNA FROM PROJ INTO P_VERNA WHERE PSPID = P_PROJN-LOW.
SELECT SINGLE * FROM PRPS INTO V_PRPS WHERE POSID = P_PROJN-LOW.
V_VERNA = P_VERNA.
SPLIT V_VERNA AT SPACE INTO V_FVERNA V_LVERNA.
CLEAR: P_VSTEXT, V_VSTEXT.
CONCATENATE V_LVERNA P_PROJN-LOW INTO V_VSTEXT SEPARATED BY SPACE.
P_VSTEXT = V_VSTEXT.

*Concatenate for Project Version Group.
CLEAR: V_VSGRUP, P_VSGRUP.
CONCATENATE 'EAC_' SY-DATUM+4(2) '_' SY-DATUM+0(4) INTO V_VSGRUP.
P_VSGRUP = V_VSGRUP.

IF V_PRPS-ZZOCPS = 'OCPR2' OR V_PRPS-ZZOCPS = 'OCPR3'.


REFRESH: BDCDATA[].
PERFORM BDC_DYNPRO USING 'RCNSAVVS' '1000'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'G_VSGRUP'.
PERFORM BDC_FIELD USING 'CN_PROJN-LOW' P_PROJN-LOW.
PERFORM BDC_FIELD USING 'CN_STUFE-LOW' ' 1'.
PERFORM BDC_FIELD USING 'CN_STUFE-HIGH' ' 99'.
PERFORM BDC_FIELD USING 'G_VSNMR' P_VSNMR.
PERFORM BDC_FIELD USING 'G_VSTEXT' P_VSTEXT.
PERFORM BDC_FIELD USING 'G_VSGRUP' P_VSGRUP.
PERFORM BDC_FIELD USING 'G_VSMTA' 'X'.

CALL TRANSACTION 'CN72' USING BDCDATA MODE 'A'.
IF SY-SUBRC EQ 0.
MESSAGE I000(ZRK) WITH 'version key has been successfully created'.
ELSE.
MESSAGE I000(ZRK) WITH 'Error in Creating version key'.
ENDIF.
ENDIF.
ENDLOOP.
*----------------------------------------------------------------------*
* Start new screen *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR BDCDATA.
BDCDATA-PROGRAM = PROGRAM.
BDCDATA-DYNPRO = DYNPRO.
BDCDATA-DYNBEGIN = 'X'.
APPEND BDCDATA.
ENDFORM. "BDC_DYNPRO

*----------------------------------------------------------------------*
* Insert field *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
* IF FVAL <> NODATA.
CLEAR BDCDATA.
BDCDATA-FNAM = FNAM.
BDCDATA-FVAL = FVAL.
APPEND BDCDATA.
* ENDIF.
ENDFORM. "BDC_FIELD
__.____._
Copyright © 2011 Toolbox.com and message author.

Toolbox.com 4343 N. Scottsdale Road Suite 280, Scottsdale, AZ 85251
View this online
  
Popular White Papers

In the Spotlight
Earn Recognition for Your Contributions at Toolbox for IT. Gain Points for Community Achievements
_.____.__

0 comments:

Post a Comment

T r a n s l a t e to your language