Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Error in uploading the data using BDC

Former Member
0 Likes
1,534

Hi All,

I developed a BDC to upload the data for Infotype-0195.When I am trying to upload the flatfile using Functional Module option I am getting the error Invalid Date Format.

Can anyone please help me out giving the solution..........

Thanks in advance,

Deepika

17 REPLIES 17
Read only

Azeemquadri
Contributor
0 Likes
1,407

Try using date as YYYYMMDD

Read only

Former Member
0 Likes
1,407

Hi,

One of the Date fields is not in proper format.

Specifically check that all dates u r passing from flatfile have valid date format

in the internal table ( into which the flatfile is uploaded)

Hope this helps,

Raj

Read only

Former Member
0 Likes
1,407

hi,

You are passing the date directly what your getting...

instead take the char field with length 10 and pass the char field.

data: l_date type char10.

write sy-datum to l_date. " converts the date to user format as per the set in user profile.

use l_date in the BDC.

Read only

0 Likes
1,407

Hi,

I am passing the date field in MM/DD/YYYY format.But if I am trying to pass in YYYYMMDD format it is giving the Error message like Enter the date in correct format--::--


.

I am using the function module HR_INFOTYPE_OPERATION.The fields validityend and validitybegin i.e begda and endda are being passed in the correct format only...........But when I am trying to see in debugging it giving a return message in this FM like Invalid date format.

Thanks in advance

Read only

0 Likes
1,407

Hi,

For FM HR_INFOTYPE_OPERATION you need to pass the BEGDA & ENDDA as YYYYMMDD and for BDC you need to pass thecode date as per the user format. you can do that by following code

data: l_date type char10.

write sy-datum to l_date. " converts the date to user format as per the set in user profile.

Read only

0 Likes
1,407

yes it will give error, so that time you need to use like this conversions

CALL FUNCTION 'CONVERSION_EXIT_PDATE_INPUT'

EXPORTING

INPUT = WA_RECORD-BEGDA

IMPORTING

OUTPUT = P0195-BEGDA.

Regards,

Arjun.

Read only

0 Likes
1,407

Hi Avinash,

I am passing the date field in the format MM/DD/YYYY but in the program i am converting to the format YYYYMMDD using concatenate and then passing the value to the FM but still I am getting the error.

For ur convenience I am sending the code

************************************************************************

*-- Includes Declaration *

************************************************************************

INCLUDE zixx_data_upload.

INCLUDE zixx_conversion_log.

INCLUDE bdcrecx1.

************************************************************************

*-- SELECTION SCREEN *

************************************************************************

SELECTION-SCREEN BEGIN OF BLOCK funcmod WITH FRAME TITLE text-t01.

PARAMETERS : p_fm TYPE c AS CHECKBOX.

PARAMETERS : p_ctumod TYPE ctu_mode DEFAULT '0',

p_date TYPE c AS CHECKBOX DEFAULT 'X'.

SELECTION-SCREEN END OF BLOCK funcmod.

----


  • TYPES Declaration.

----


  • Types decalration for flat file structure

*Declaration for internal table/wa for flat file structure

TYPES: BEGIN OF gt_data,

pernr TYPE rp50g-pernr,

begda(10) TYPE c,

endda(10) TYPE c,

gcase TYPE pb10_gcase,

objps TYPE p0195-objps,

ordcd TYPE p0195-ordcd,

rulid TYPE p0195-rulid,

ibaln(13) TYPE c,

deduc(13) TYPE c,

dedut TYPE p0195-dedut,

li1no TYPE q0195-li1no,

li1ex TYPE q0195-li1ex,

nval1(13) TYPE c,

nuni1 TYPE p0195-nuni1,

li2no TYPE q0195-li1no,

li2ex TYPE q0195-li2ex,

nval2(13) TYPE c,

nuni2 TYPE p0195-nuni2,

addno TYPE q0195-addno,

addex TYPE q0195-addex,

addvl(13) TYPE c,

addun TYPE p0195-addun,

fstat TYPE p0195-fstat,

exemp TYPE p0195-exemp,

addde TYPE p0195-addde,

levda(10) TYPE c,

fild1 TYPE p0195-fild1,

fild2 TYPE p0195-fild2,

fild3 TYPE p0195-fild3,

fild4 TYPE p0195-fild4,

END OF gt_data,

BEGIN OF gt_0194,

pernr TYPE p0194-pernr,

begda TYPE p0194-begda,

endda TYPE p0194-endda,

subty TYPE p0194-subty,

lifnr TYPE p0194-lifnr,

schid TYPE p0194-schid,

rulnr TYPE p0194-rulnr,

plain TYPE p0194-plain,

orign TYPE p0194-orign,

orcod TYPE p0194-orcod,

ornam TYPE p0194-ornam,

orstr TYPE p0194-orstr,

orort TYPE p0194-orort,

orreg TYPE p0194-orreg,

orcnt TYPE p0194-orcnt,

orplz TYPE p0194-orplz,

lapdy TYPE p0194-lapdy,

lapdt TYPE p0194-lapdt,

gcase TYPE p0194-gcase,

gprio TYPE p0194-gprio,

gcate TYPE p0194-gcate,

gstat TYPE p0194-gstat,

rcvdd TYPE p0194-rcvdd,

rlsdd TYPE p0194-rlsdd,

scrul TYPE p0194-scrul,

END OF gt_0194.

TYPES: BEGIN OF gt_data_d,

pernr TYPE rp50g-pernr,

begda(10) TYPE c,

endda(10) TYPE c,

gcase TYPE pb10_gcase,

objps TYPE p0195-objps,

ordcd TYPE p0195-ordcd,

rulid TYPE p0195-rulid,

ibaln(13) TYPE c,

deduc(13) TYPE c,

dedut TYPE p0195-dedut,

li1no TYPE q0195-li1no,

li1ex TYPE q0195-li1ex,

nval1(13) TYPE c,

nuni1 TYPE p0195-nuni1,

li2no TYPE q0195-li1no,

li2ex TYPE q0195-li2ex,

nval2(13) TYPE c,

nuni2 TYPE p0195-nuni2,

addno TYPE q0195-addno,

addex TYPE q0195-addex,

addvl(13) TYPE c,

addun TYPE p0195-addun,

fstat TYPE p0195-fstat,

exemp TYPE p0195-exemp,

addde TYPE p0195-addde,

fild1 TYPE p0195-fild1,

fild2 TYPE p0195-fild2,

fild3 TYPE p0195-fild3,

fild4 TYPE p0195-fild4,

END OF gt_data_d.

----


  • INTERNAL TABLE/WORK AREA Declaration.

----


*Declaration for internal table/wa for flat file structure

DATA: gi_data TYPE TABLE OF gt_data,

gw_data TYPE gt_data,

gi_0194 TYPE TABLE OF gt_0194,

gw_0194 TYPE gt_0194,

*Declaration for BDCDATA

gi_bdcdata TYPE STANDARD TABLE OF bdcdata,

gw_bdcdata TYPE bdcdata,

*Declaration for BDCMSGCOLL

gi_bdcmsgcoll TYPE TABLE OF bdcmsgcoll,

gw_bdcmsgcoll TYPE bdcmsgcoll,

gi_data_d TYPE TABLE OF gt_data_d,

gw_data_d TYPE gt_data_d,

gw_p0195 TYPE p0195,

gw_p0194 TYPE pa0194.

DATA: gw_return TYPE bapireturn1,

*Declaration for Global Variables

gv_count(5) TYPE c VALUE 0.

*Declaration for constants

CONSTANTS: gc_update VALUE 'L',

gc_msgid(2) VALUE 'PG',

gc_s_msgid(3) VALUE '102',

gc_pa30 TYPE tstc-tcode VALUE 'PA30',

gc_200(3) VALUE '200'.

************************************************************************

*-- AT SELECTION SCREEN OUTPUT

************************************************************************

AT SELECTION-SCREEN OUTPUT.

nodata = ' '.

group = sy-uname.

*To change the screen attributes dynamically.

PERFORM upload_screen_output.

************************************************************************

*-- START-OF-SELECTION *

************************************************************************

START-OF-SELECTION.

IF p_date = 'X'.

*-- Routine to upload the file data

PERFORM upload USING 'X' "HAS_SEPARATOR

'ASC' "File Type

space "ALT_SEPARATOR Alternate separator

'X' "DISPLAY_ERROR

'X' "ERROR_OCCURRED

gi_data. "TABLE Table to upload into

IF NOT gi_data IS INITIAL.

SELECT pernr begda endda subty

lifnr schid rulnr

plain orign orcod

ornam orstr orort

orreg orcnt orplz

lapdy lapdt gcase

gprio gcate gstat

rcvdd rlsdd scrul

FROM pa0194

INTO TABLE gi_0194

FOR ALL ENTRIES IN gi_data

WHERE pernr = gi_data-pernr

AND gcase = gi_data-gcase.

*-- Routine to perform bdc

IF sy-subrc IS INITIAL.

IF p_fm NE 'X'.

PERFORM bdc.

ELSE.

PERFORM function_module.

ENDIF.

ENDIF.

ENDIF.

ELSE.

*-- Routine to upload the file data

PERFORM upload USING 'X' "HAS_SEPARATOR

'ASC' "File Type

space "ALT_SEPARATOR Alternate separator

'X' "DISPLAY_ERROR

'X' "ERROR_OCCURRED

gi_data_d. "TABLE Table to upload into

IF NOT gi_data_d IS INITIAL.

IF p_fm EQ 'X'.

PERFORM function_module.

ENDIF.

ENDIF.

ENDIF.

*Perform to insert the filename in Z-Table and move the file from New

*to Processed in APP Server.

SORT gi_log BY msg_typ.

READ TABLE gi_log INTO gw_log WITH KEY msg_typ = 'E' BINARY SEARCH.

IF sy-subrc <> '0'.

PERFORM file_moving USING gi_data.

ENDIF.

************************************************************************

*-- END-OF-SELECTION *

************************************************************************

END-OF-SELECTION.

*-- Routine to display conversion log

PERFORM log_display.

&----


  • Subroutine Pool

&----


&----


*& Form BDC

&----


  • Routine to perform bdc

----


FORM bdc .

*Data declaration for collecting success and error records

DATA: lv_success(5) TYPE c VALUE 0,

lv_begda TYPE string,

lv_rlsdd TYPE string,

lv_lapdt TYPE string,

lv_endda TYPE string,

lv_rcvdd TYPE string.

gv_count = 0.

PERFORM open_group.

SORT gi_0194 BY pernr gcase.

LOOP AT gi_data INTO gw_data.

gv_count = gv_count + 1.

READ TABLE gi_0194 INTO gw_0194 WITH KEY pernr = gw_data-pernr

gcase = gw_data-gcase.

IF sy-subrc = 0.

  • LOOP AT gi_0194 INTO gw_0194 WHERE gcase = gw_data-grnum.

MOVE gw_0194-begda TO lv_begda.

MOVE gw_0194-endda TO lv_endda.

*FUNCTION MODULE TO CONVERT DATE FORMAT

CALL FUNCTION '/SAPDII/SPP05_CONVERT_DATE'

EXPORTING

if_date = lv_begda

IMPORTING

ef_date = lv_begda.

CALL FUNCTION '/SAPDII/SPP05_CONVERT_DATE'

EXPORTING

if_date = lv_endda

IMPORTING

ef_date = lv_endda.

PERFORM bdc_dynpro USING 'SAPMP50A' '1000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=MOD'.

PERFORM bdc_field USING 'RP50G-PERNR'

gw_data-pernr.

PERFORM bdc_field USING 'RP50G-TIMR6'

'X'.

PERFORM bdc_field USING 'RP50G-CHOIC'

'0194'.

PERFORM bdc_field USING 'RP50G-SUBTY'

gw_0194-subty.

PERFORM bdc_dynpro USING 'MP019400' '2000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=GROR'.

PERFORM bdc_field USING 'P0194-BEGDA'

lv_begda.

PERFORM bdc_field USING 'P0194-ENDDA'

lv_endda.

PERFORM bdc_field USING 'P0194-LIFNR'

gw_0194-lifnr.

PERFORM bdc_field USING 'P0194-SCHID'

gw_0194-schid.

PERFORM bdc_field USING 'P0194-RULNR'

gw_0194-rulnr.

PERFORM bdc_field USING 'P0194-pLAIN'

gw_0194-plain.

PERFORM bdc_field USING 'P0194-ORIGN'

gw_0194-orign.

PERFORM bdc_field USING 'P0194-ORCOD'

gw_0194-orcod.

PERFORM bdc_field USING 'P0194-ORNAM'

gw_0194-ornam.

PERFORM bdc_field USING 'P0194-ORSTR'

gw_0194-orstr.

PERFORM bdc_field USING 'P0194-ORORT'

gw_0194-orort.

PERFORM bdc_field USING 'P0194-ORREG'

gw_0194-orreg.

PERFORM bdc_field USING 'P0194-ORCNT'

gw_0194-orcnt.

PERFORM bdc_field USING 'P0194-ORPLZ'

gw_0194-orplz.

PERFORM bdc_field USING 'P0194-LAPDY'

gw_0194-lapdy.

IF gw_0194-lapdt IS NOT INITIAL.

MOVE gw_0194-lapdt TO lv_lapdt.

CALL FUNCTION '/SAPDII/SPP05_CONVERT_DATE'

EXPORTING

if_date = lv_lapdt

IMPORTING

ef_date = lv_lapdt.

PERFORM bdc_field USING 'P0194-LAPDT'

lv_lapdt.

ENDIF.

PERFORM bdc_field USING 'P0194-GCASE'

gw_0194-gcase.

PERFORM bdc_field USING 'P0194-GPRIO'

gw_0194-gprio.

PERFORM bdc_field USING 'P0194-GCATE'

gw_0194-gcate.

PERFORM bdc_field USING 'P0194-GSTAT'

gw_0194-gstat.

IF gw_0194-rcvdd IS NOT INITIAL.

MOVE gw_0194-rcvdd TO lv_rcvdd.

CALL FUNCTION '/SAPDII/SPP05_CONVERT_DATE'

EXPORTING

if_date = lv_rcvdd

IMPORTING

ef_date = lv_rcvdd.

PERFORM bdc_field USING 'P0194-RCVDD'

lv_rcvdd.

ENDIF.

IF gw_0194-rlsdd IS NOT INITIAL.

MOVE gw_0194-rlsdd TO lv_rlsdd.

CALL FUNCTION '/SAPDII/SPP05_CONVERT_DATE'

EXPORTING

if_date = lv_rlsdd

IMPORTING

ef_date = lv_rlsdd.

PERFORM bdc_field USING 'P0194-RLSDD'

lv_rlsdd.

ENDIF.

PERFORM bdc_field USING 'P0194-SCRUL'

gw_0194-scrul.

  • PERFORM bdc_dynpro USING 'SAPLSPO1' '0200'.

  • PERFORM bdc_field USING 'BDC_CURSOR'

  • 'SPOP-TEXTLINE1'.

  • PERFORM bdc_field USING 'BDC_OKCODE'

  • '=YES'.

PERFORM bdc_dynpro USING 'SAPLSPO1' '0200'.

PERFORM bdc_field USING 'BDC_CURSOR'

'SPOP-TEXTLINE1'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=YES'.

PERFORM bdc_dynpro USING 'MP019500' '2000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=UPD'.

PERFORM bdc_field USING 'P0195-BEGDA'

gw_data-begda.

PERFORM bdc_field USING 'P0195-ENDDA'

gw_data-endda.

PERFORM bdc_field USING 'P0195-ORDCD'

gw_data-ordcd.

PERFORM bdc_field USING 'P0195-RULID'

gw_data-rulid.

PERFORM bdc_field USING 'P0195-IBALN'

gw_data-ibaln.

PERFORM bdc_field USING 'P0195-DEDUC'

gw_data-deduc.

PERFORM bdc_field USING 'P0195-DEDUT'

gw_data-dedut.

  • Begin of Insertion V2.0 by S.NATARAJAN

  • IF ( ( gw_data-li1no = '1' AND gw_data-li1ex = '' ) OR

  • ( gw_data-li1no = '' AND gw_data-li1ex = '' ) ).

IF ( ( gw_data-li1no = '1' AND gw_data-li1ex = '' ) OR

( gw_data-li1no = '' AND gw_data-li1ex = '' ) OR

( gw_data-li1no = '' AND gw_data-li1ex = '2' ) ).

  • End of Insertion V2.0 by S.NATARAJAN

PERFORM bdc_field USING 'Q0195-LI1NO'

'X'.

PERFORM bdc_field USING 'P0195-NVAL1'

gw_data-nval1.

PERFORM bdc_field USING 'P0195-NUNI1'

gw_data-nuni1.

  • Begin of Insertion V2.0 by S.NATARAJAN

  • ELSEIF gw_data-li1no = '' AND gw_data-li1ex = '2' .

ELSEIF ( gw_data-li1no = '' AND gw_data-li1ex = '1' ) .

  • End of Insertion V2.0 by S.NATARAJAN

PERFORM bdc_field USING 'Q0195-LI1EX'

'X'.

PERFORM bdc_field USING 'P0195-NVAL1'

gw_data-nval1.

PERFORM bdc_field USING 'P0195-NUNI1'

gw_data-nuni1.

ENDIF.

  • Begin of Insertion V2.0 by S.NATARAJAN

  • IF ( ( gw_data-li2no = '1' AND gw_data-li2ex = '' ) OR

  • ( gw_data-li2no = '' AND gw_data-li2ex = '' ) ).

IF ( ( gw_data-li2no = '1' AND gw_data-li2ex = '' ) OR

( gw_data-li2no = '' AND gw_data-li2ex = '' ) OR

( gw_data-li2no = '' AND gw_data-li2ex = '2' ) ).

PERFORM bdc_field USING 'Q0195-LI2NO'

'X'.

PERFORM bdc_field USING 'P0195-NVAL2'

gw_data-nval2.

PERFORM bdc_field USING 'P0195-NUNI2'

gw_data-nuni2.

  • Begin of Insertion V2.0 by S.NATARAJAN

  • ELSEIF ( gw_data-li2no = '' AND gw_data-li2ex = '2' ).

ELSEIF ( gw_data-li2no = '' AND gw_data-li2ex = '1' ).

  • End of Insertion V2.0 by S.NATARAJAN

PERFORM bdc_field USING 'Q0195-LI2EX'

'X'.

PERFORM bdc_field USING 'P0195-NVAL2'

gw_data-nval2.

PERFORM bdc_field USING 'P0195-NUNI2'

gw_data-nuni2.

ENDIF.

  • Begin of Insertion V2.0 by S.NATARAJAN

  • IF ( ( gw_data-addno = '1' AND gw_data-addex = '' ) OR

  • ( gw_data-addno = '' AND gw_data-addex = '' ) ).

  • End of Insertion V2.0 by S.NATARAJAN

IF ( ( gw_data-addno = '1' AND gw_data-addex = '' ) OR

( gw_data-addno = '' AND gw_data-addex = '' ) OR

( gw_data-addno = '' AND gw_data-addex = '2' ) ) .

PERFORM bdc_field USING 'Q0195-ADDNO'

'X'.

PERFORM bdc_field USING 'P0195-ADDVL'

gw_data-addvl.

PERFORM bdc_field USING 'P0195-ADDUN'

gw_data-addun.

  • Begin of Insertion V2.0 by S.NATARAJAN

*ELSEIF gw_data-addno = '' AND gw_data-addex = '2' .

ELSEIF ( gw_data-addno = '' AND gw_data-addex = '1' ).

  • End of Insertion V2.0 by S.NATARAJAN

PERFORM bdc_field USING 'Q0195-ADDEX'

'X'.

PERFORM bdc_field USING 'P0195-ADDVL'

gw_data-addvl.

PERFORM bdc_field USING 'P0195-ADDUN'

gw_data-addun.

ENDIF.

PERFORM bdc_dynpro USING 'MP019500' '2000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=UPD'.

PERFORM bdc_dynpro USING 'MP019400' '2000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/EBCK'.

PERFORM bdc_dynpro USING 'SAPLSPO1' '0200'.

PERFORM bdc_field USING 'BDC_CURSOR'

'SPOP-TEXTLINE1'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=YES'.

PERFORM bdc_dynpro USING 'SAPLSPO1' '0200'.

PERFORM bdc_field USING 'BDC_CURSOR'

'SPOP-TEXTLINE1'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=YES'.

PERFORM bdc_dynpro USING 'MP019500' '2000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=UPD'.

  • CALL TRANSACTION gc_pa30 USING gi_bdcdata

  • MODE p_ctumod

  • UPDATE gc_update

  • MESSAGES INTO gi_bdcmsgcoll.

PERFORM bdc_transaction USING gc_pa30.

gi_bdcmsgcoll[] = messtab[].

LOOP AT gi_bdcmsgcoll INTO gw_bdcmsgcoll.

IF gw_bdcmsgcoll-msgnr NE gc_200.

IF gw_bdcmsgcoll-msgid = gc_msgid.

IF gw_bdcmsgcoll-msgnr EQ gc_s_msgid.

ADD 1 TO lv_success.

ENDIF.

ENDIF.

gw_log-msg_id = gw_bdcmsgcoll-msgid.

gw_log-msg_num = gw_bdcmsgcoll-msgnr.

gw_log-msg_key = gw_bdcmsgcoll-msgv1.

gw_log-msg_typ = gw_bdcmsgcoll-msgtyp.

gw_log-rec_no = gv_count.

CALL FUNCTION 'FORMAT_MESSAGE'

EXPORTING

id = gw_log-msg_id

no = gw_log-msg_num

v1 = gw_bdcmsgcoll-msgv1

v2 = gw_bdcmsgcoll-msgv2

v3 = gw_bdcmsgcoll-msgv3

v4 = gw_bdcmsgcoll-msgv4

IMPORTING

msg = gw_log-msg_txt

EXCEPTIONS

not_found = 1

OTHERS = 2.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

CONCATENATE gw_log-msg_txt 'for Personnel No -' ''''

gw_data-pernr '''' 'Case -' '''' gw_data-gcase

'''' INTO gw_log-msg_txt SEPARATED BY space.

APPEND gw_log TO gi_log.

REFRESH gi_bdcmsgcoll.

ENDIF.

ENDLOOP.

CLEAR : lv_begda,lv_endda,

lv_lapdt,lv_rlsdd.

ELSE.

gw_log-msg_id = 'CUST'.

gw_log-msg_num = 'XXX'.

gw_log-msg_key = 'USK'.

gw_log-msg_typ = 'E'.

gw_log-rec_no = gv_count.

CONCATENATE 'Case -' '''' gw_data-gcase ''''

'does not exists for Personnel No -'

'''' gw_data-pernr ''''

INTO gw_log-msg_txt SEPARATED BY space.

APPEND gw_log TO gi_log.

ENDIF.

  • ENDLOOP.

CLEAR : gw_0194, gw_data.

REFRESH gi_bdcdata.

ENDLOOP.

FREE gi_data.

gv_tot_rec = gv_count.

gv_suc_rec = lv_success.

gv_err_rec = gv_count - lv_success.

gv_ifnam = p_upfile.

PERFORM close_group.

ENDFORM. " BDC

&----


*& Form FUNCTION_MODULE

&----


  • text

----


FORM function_module .

IF p_date = 'X'.

LOOP AT gi_data INTO gw_data.

gv_count = gv_count + 1.

SELECT SINGLE pernr begda endda subty grnum

FROM pa0194

INTO CORRESPONDING FIELDS OF gw_p0194

WHERE pernr = gw_data-pernr

AND gcase = gw_data-gcase.

IF sy-subrc = 0.

MOVE-CORRESPONDING gw_data TO gw_p0195.

CONCATENATE gw_data-begda6(4) gw_data-begda3(2)

gw_data-begda+0(2)

INTO gw_p0195-begda.

CONCATENATE gw_data-endda6(4) gw_data-endda3(2)

gw_data-endda+0(2)

INTO gw_p0195-endda.

CONCATENATE gw_data-levda6(4) gw_data-levda3(2)

gw_data-levda+0(2)

INTO gw_p0195-levda.

gw_p0195-grnum = gw_p0194-grnum.

gw_p0195-nein1 = ' '.

gw_p0195-nein2 = ' '.

gw_p0195-addin = ' '.

IF ( gw_data-li1no = '' AND gw_data-li1ex = '1' ) .

gw_p0195-nein1 = '1'.

ELSEIF ( gw_data-li1ex = '2' OR gw_data-li1ex = '' ).

gw_p0195-nein1 = '2'.

ENDIF.

IF ( gw_data-li2no = '' AND gw_data-li2ex = '1' ) .

gw_p0195-nein2 = '1'.

ELSEIF ( gw_data-li2ex = '2' OR gw_data-li2ex = '' ).

gw_p0195-nein2 = '2'.

ENDIF.

IF ( gw_data-addno = '' AND gw_data-addex = '1' ) .

gw_p0195-addin = '1'.

ELSEIF ( gw_data-addex = '2' OR gw_data-addex = '' ).

gw_p0195-addin = '2'.

ENDIF.

CALL FUNCTION 'BAPI_EMPLOYEE_ENQUEUE'

EXPORTING

number = gw_p0195-pernr

IMPORTING

return = gw_return.

IF gw_return-type NE 'E'.

CALL FUNCTION 'HR_INFOTYPE_OPERATION'

EXPORTING

infty = '0195'

number = gw_p0195-pernr

validityend = gw_p0195-endda

validitybegin = gw_p0195-begda

record = gw_p0195

operation = 'INS'

dialog_mode = p_ctumod "Mod-01

tclas = 'A'

nocommit = ' '

IMPORTING

return = gw_return.

CALL FUNCTION 'BAPI_EMPLOYEE_DEQUEUE'

EXPORTING

number = gw_p0195-pernr.

ENDIF.

IF gw_return IS NOT INITIAL.

gw_log-msg_id = gw_return-id.

gw_log-msg_num = gw_return-number.

CONCATENATE gw_data-pernr gw_data-gcase INTO

gw_log-msg_key SEPARATED BY '|'.

gw_log-msg_typ = gw_return-type.

gw_log-rec_no = gv_count.

gw_log-msg_txt = gw_return-message.

ELSE.

gw_log-msg_id = 'CUST'.

gw_log-msg_num = '000'.

CONCATENATE gw_data-pernr gw_data-gcase INTO

gw_log-msg_key SEPARATED BY '|'.

gw_log-msg_typ = 'S'.

gw_log-rec_no = gv_count.

gw_log-msg_txt = 'Record Created'(t02).

ENDIF.

ELSE.

gw_log-msg_id = 'CUST'.

gw_log-msg_num = 'XXX'.

CONCATENATE gw_data-pernr gw_data-gcase INTO

gw_log-msg_key SEPARATED BY '|'.

gw_log-msg_typ = 'E'.

gw_log-rec_no = gv_count.

gw_log-msg_txt = 'Case does not exists for Personnel No'(t03).

ENDIF.

APPEND gw_log TO gi_log.

CLEAR : gw_log,gw_return,gw_data,gw_p0194,gw_p0195.

ENDLOOP.

ELSE.

LOOP AT gi_data_d INTO gw_data_d.

gv_count = gv_count + 1.

SELECT SINGLE pernr begda endda subty grnum

FROM pa0194

INTO CORRESPONDING FIELDS OF gw_p0194

WHERE pernr = gw_data_d-pernr

AND gcase = gw_data_d-gcase.

IF sy-subrc = 0.

MOVE-CORRESPONDING gw_data_d TO gw_p0195.

CONCATENATE gw_data_d-begda6(4) gw_data_d-begda3(2)

gw_data_d-begda+0(2)

INTO gw_p0195-begda.

CONCATENATE gw_data_d-endda6(4) gw_data_d-endda3(2)

gw_data_d-endda+0(2)

INTO gw_p0195-endda.

gw_p0195-grnum = gw_p0194-grnum.

gw_p0195-nein1 = ' '.

gw_p0195-nein2 = ' '.

gw_p0195-addin = ' '.

IF ( gw_data_d-li1no = '' AND gw_data_d-li1ex = '1' ) .

gw_p0195-nein1 = '1'.

ELSEIF ( gw_data_d-li1ex = '2' OR gw_data_d-li1ex = '' ).

gw_p0195-nein1 = '2'.

ENDIF.

IF ( gw_data_d-li2no = '' AND gw_data_d-li2ex = '1' ) .

gw_p0195-nein2 = '1'.

ELSEIF ( gw_data_d-li2ex = '2' OR gw_data_d-li2ex = '' ).

gw_p0195-nein2 = '2'.

ENDIF.

IF ( gw_data_d-addno = '' AND gw_data_d-addex = '1' ) .

gw_p0195-addin = '1'.

ELSEIF ( gw_data_d-addex = '2' OR gw_data_d-addex = '' ).

gw_p0195-addin = '2'.

ENDIF.

CALL FUNCTION 'BAPI_EMPLOYEE_ENQUEUE'

EXPORTING

number = gw_p0195-pernr

IMPORTING

return = gw_return.

IF gw_return-type NE 'E'.

CALL FUNCTION 'HR_INFOTYPE_OPERATION'

EXPORTING

infty = '0195'

number = gw_p0195-pernr

validityend = gw_p0195-endda

validitybegin = gw_p0195-begda

record = gw_p0195

operation = 'INS'

dialog_mode = p_ctumod "Mod-01

tclas = 'A'

nocommit = ' '

IMPORTING

return = gw_return.

CALL FUNCTION 'BAPI_EMPLOYEE_DEQUEUE'

EXPORTING

number = gw_p0195-pernr.

ENDIF.

IF gw_return IS NOT INITIAL.

gw_log-msg_id = gw_return-id.

gw_log-msg_num = gw_return-number.

CONCATENATE gw_data_d-pernr gw_data_d-gcase INTO

gw_log-msg_key SEPARATED BY '|'.

gw_log-msg_typ = gw_return-type.

gw_log-rec_no = gv_count.

gw_log-msg_txt = gw_return-message.

ELSE.

gw_log-msg_id = 'CUST'.

gw_log-msg_num = '000'.

CONCATENATE gw_data_d-pernr gw_data_d-gcase INTO

gw_log-msg_key SEPARATED BY '|'.

gw_log-msg_typ = 'S'.

gw_log-rec_no = gv_count.

gw_log-msg_txt = 'Record Created'(t02).

ENDIF.

ELSE.

gw_log-msg_id = 'CUST'.

gw_log-msg_num = 'XXX'.

CONCATENATE gw_data_d-pernr gw_data_d-gcase INTO

gw_log-msg_key SEPARATED BY '|'.

gw_log-msg_typ = 'E'.

gw_log-rec_no = gv_count.

gw_log-msg_txt = 'Case does not exists for Personnel No '(t03).

ENDIF.

APPEND gw_log TO gi_log.

CLEAR : gw_log,gw_return,gw_data_d,gw_p0194,gw_p0195.

ENDLOOP.

ENDIF.

ENDFORM.

Thanks.

Read only

0 Likes
1,407

Hi,

While passing the begda..or endda..

Data: G_BEGDA(10) Type C.

Write <date field>(YYYYMMDD) To G_BEGDA.

Santhosh

Read only

0 Likes
1,407

hi,

/SAPDII/SPP05_CONVERT_DATE

insted of this Fm use

CONVERSION_EXIT_PDATE_INPUT

this Fm you will get right out put.

Read only

0 Likes
1,407

Hi Mallikarjun,

But I am using the FM SAPDII/SPP05_CONVERT_DATE in the code in bdc method.I am facing the problem while uploading the data using FM method.

Thanks.

Read only

0 Likes
1,407

you are using Call transaction method right?

and file coming from presentation server?

Edited by: mallikarjuna goud on Dec 31, 2008 10:24 AM

Read only

0 Likes
1,407

I am using both either Call transaction or FM.I am facing the problem in FM.

Read only

0 Likes
1,407

DATA : P0195 LIKE P0195.

DATA : KEY LIKE BAPIPAKEY.

DATA : RETURNE LIKE BAPIRETURN1 .

TYPES: BEGIN OF TY_RECORD,

PERNR TYPE PA0195-PERNR,

BEGDA(10), "TYPE P0001-BEGDA,

ENDDA(10), "TYPE P0001-ENDDA,

ORDCD TYPE P0195-ORDCD,

RULID TYPE P0195-RULID,

GCASE TYPE P0194-GCASE,

GRNUM TYPE P0195-GRNUM,

IBALN(10), " TYPE P0195-IBALN,

DEDUC(10), " TYPE P0195-DEDUC,

DEDUT TYPE P0195-DEDUT,

END OF TY_RECORD.

P0195-PERNR = WA_RECORD-PERNR.

CALL FUNCTION 'CONVERSION_EXIT_PDATE_INPUT'

EXPORTING

INPUT = WA_RECORD-BEGDA

IMPORTING

OUTPUT = P0195-BEGDA.

  • CALL FUNCTION 'CONVERSION_EXIT_PDATE_INPUT'

  • EXPORTING

  • INPUT = WA_RECORD-ENDDA

  • IMPORTING

  • OUTPUT = P0195-ENDDA.

CONCATENATE WA_RECORD-ENDDA6(4) WA_RECORD-ENDDA3(2) WA_RECORD-ENDDA+0(2) INTO P0195-ENDDA . " SEPARATED BY '.' .

  • P0194-GCASE = WA_RECORD-GCASE.

P0195-GRNUM = WA_RECORD-GRNUM.

P0195-ORDCD = WA_RECORD-ORDCD .

P0195-RULID = WA_RECORD-RULID.

P0195-IBALN = WA_RECORD-IBALN.

  • P0195-DEDUC = WA_RECORD-DEDUC.

  • P0195-DEDUT = WA_RECORD-DEDUT.

CALL FUNCTION 'BAPI_EMPLOYEE_ENQUEUE'

EXPORTING

NUMBER = P0195-PERNR

IMPORTING

RETURN = RETURNE.

CALL FUNCTION 'HR_INFOTYPE_OPERATION'

EXPORTING

INFTY = '0195'

NUMBER = P0195-PERNR

SUBTYPE = P0195-GRNUM

VALIDITYEND = P0195-ENDDA

VALIDITYBEGIN = P0195-BEGDA

RECORD = P0195

OPERATION = 'INS'

TCLAS = 'A'

DIALOG_MODE = '0'

IMPORTING

RETURN = RETURNE

KEY = KEY.

IF RETURNE IS NOT INITIAL.

WRITE 😕 'Error Occurred'.

ELSE.

WRITE 😕 'Record Created'.

ENDIF.

CALL FUNCTION 'BAPI_EMPLOYEE_DEQUEUE'

EXPORTING

NUMBER = P0195-PERNR.

ENDIF.

The above code i am using for my program its working fine, so try to use like that....

Regadrs,

Arjun.

Edited by: mallikarjuna goud on Dec 31, 2008 10:37 AM

Read only

Former Member
0 Likes
1,407

you do not need to convert date to internal format.

make sure ur date is in format what ur Transaction accepts ( i.e Output format of date)

Try converting to DD.MM.YYYY format.

-Raj

Read only

Former Member
0 Likes
1,407

hi

you can do the recording with the SHDB.There is a program button which would generate the code for you. subsequentely you can then copy and paste this code in your program.

hope this helps

regards

Aakash Banga

Read only

Former Member
0 Likes
1,407

hi,

Is there any progress?????//

Read only

Former Member
0 Likes
1,407

Hi,

The Simple way is.

declare a variable type C -> v_Date(10) type c.

Now, Write your date field to this Variable. -> Write: SY-DATUM(Ur Date) to v_date.

Now your date is converted to SAP format, Simply pass v_date to your recording where you have declared Date field.

Ps come back in case of any further issue.

Vikas.