Application Development 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: 

Sending to application server

Former Member
0 Kudos

hi people...

i am getting from tables..so i want to send data to application server..Everything ok..but shurt dump giving like "Conversion problem"...i wil send date format data to application server...i think its error

6 REPLIES 6

Former Member
0 Kudos

Hi,

Date format in YYYYMMDD?

Rgds,

ET

former_member188685
Active Contributor
0 Kudos

Hi,

do you have any currency fields, if they are then the dump is due to the currency fields.

Regards

vijay

0 Kudos

i know data format...

yes vijay..cureency fields also there...how i will send to application server.

0 Kudos

Then it is due to currency fields, you need to convert them to char fields then transfer it to application server.

the problem is due to currency fields, you need to convert to Char fields explicitly.

declare those currency fields as char type

Regards

vijay

0 Kudos

When writing to application server ensure that all data is passed in CHAR foramt.Then there will be no dump.

Cheers

Nishanth

0 Kudos

people i converted to char format..

what i do..

ok please give possible solution

this is the code

TABLES: bsid, bsad.

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

********************Types*****************************************************************************************

TYPES: BEGIN OF ty_bsid,

kunnr(10) , "TYPE kunnr, "customer no

bukrs(4), "company code

gjahr(4), "fiscal year

belnr(10) , "document type

buzei(3) , "Number of Line Item Within Accounting Document

budat(8) , "posting date

bldat(8) , "document date

blart(2) , "document number

zfbdt(8) , "Baseline date for due date calculation

zbd1t(3) , "Cash discount days 1

zbd2t(3) , "Cash discount days 2

zbd3t(3) , "Net Payment Terms Period

dmbtr(13) , "Amount in local currency

shkzg(1) , "Debit/Credit Indicator

due_date(8) , "Due date

current(13) , "Current amount

30_days_past_due(13) , "Amount of 30 Days Past Due

60_days_past_due(13) , "Amount of 60 Days Past Due

90_days_past_due(13) , "Amount of 90 Days Past Due

over_90_days_past_due(13) , "Amount of over 90 Days Past Due

date_of_last_sale(8) , "Date of Last Sale

END OF ty_bsid.

TYPES: BEGIN OF ty_collect_data,

kunnr(10) , "customer no

name1(35) , "customer name

house_num1(10) , "house number

street(12) , "street

city1(40) , "city

region(8) , "region

post_code1(10) , "postal code

tel_number(30) , "telephone number

fax_number(30) , "fax number

date_of_last_sale(8) , "Date of Last Sale

current(13) ,

30_days_past_due(13) ,

60_days_past_due(13) ,

90_days_past_due(13) ,

over_90_days_past_due(13) ,

  • Net_Due

  • Filler

END OF ty_collect_data.

TYPES: BEGIN OF ty_kna1,

kunnr(10),

name1(35),

adrnr(10),

END OF ty_kna1.

TYPES: BEGIN OF ty_adrc,

addrnumber(10),

house_num1(10),

street(12),

city1(40),

region(8),

post_code1(10),

tel_number(30),

fax_number(30),

END OF ty_adrc.

TYPES: BEGIN OF ty_knb1,

ekvbd(10) , "Account Number of Buying Group

END OF ty_knb1.

TYPES: BEGIN OF ty_bsad,

kunnr(10),

bldat(10) ,

END OF ty_bsad.

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

                                  • Internal Tables***************************************

DATA: t_bsid TYPE STANDARD TABLE OF ty_bsid INITIAL SIZE 0,

lt_bsid TYPE STANDARD TABLE OF ty_bsid INITIAL SIZE 0,

t_kna1 TYPE STANDARD TABLE OF ty_kna1 INITIAL SIZE 0,

t_adrc TYPE STANDARD TABLE OF ty_adrc INITIAL SIZE 0,

t_knb1 TYPE STANDARD TABLE OF ty_knb1 INITIAL SIZE 0,

t_collect_data TYPE STANDARD TABLE OF ty_collect_data INITIAL SIZE 0,

t_bsad TYPE STANDARD TABLE OF ty_bsad INITIAL SIZE 0.

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

****************Work Area*********************************************

DATA: w_bsid TYPE ty_bsid,

w_collect_data TYPE ty_collect_data,

w_kna1 TYPE ty_kna1,

w_bsad TYPE ty_bsad,

w_adrc TYPE ty_adrc.

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

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

DATA: l_bukrs TYPE bukrs,

l_kunnr TYPE kunnr,

l_blart TYPE blart,

l_belnr TYPE belnr_d,

l_check TYPE c VALUE 'X',

l_bldat1 TYPE bldat,

l_bldat2 TYPE bldat,

l_last_sale TYPE i.

DATA: g_past_due TYPE i.

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

SELECTION-SCREEN BEGIN OF BLOCK a1 WITH FRAME TITLE text-001.

SELECT-OPTIONS s_code FOR bsid-bukrs OBLIGATORY.

SELECT-OPTIONS s_cust FOR bsid-kunnr.

SELECT-OPTIONS s_fisc FOR bsid-gjahr.

SELECT-OPTIONS s_docu FOR bsid-blart.

SELECT-OPTIONS s_post FOR bsid-budat .

SELECT-OPTIONS s_date FOR bsid-bldat.

SELECT-OPTIONS s_docno FOR bsid-belnr.

PARAMETERS: p_crdrpt LIKE bsid-bldat DEFAULT sy-datum OBLIGATORY.

SELECTION-SCREEN END OF BLOCK a1.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-002.

PARAMETERS: p_fpath(30) TYPE c ,

p_ram1 AS CHECKBOX DEFAULT l_check,

p_ram2 AS CHECKBOX,

p_dunbrd AS CHECKBOX,

p_nacm AS CHECKBOX.

SELECTION-SCREEN END OF BLOCK b1.

AT SELECTION-SCREEN ON BLOCK a1.

PERFORM sub_validation.

  • Start of selection event

START-OF-SELECTION.

PERFORM collect_data_bsid.

PERFORM collect_sum.

PERFORM collect_data_all.

PERFORM appl_file_generation.

END-OF-SELECTION.

  • FORM SECTION

&----


*& Form sub_validation

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM sub_validation .

SELECT SINGLE bukrs FROM t001 INTO l_bukrs WHERE bukrs IN s_code.

IF sy-subrc <> 0.

MESSAGE e016 WITH text-003. "Invalid Company code

ENDIF.

SELECT SINGLE kunnr FROM kna1 INTO l_kunnr WHERE kunnr IN s_cust.

IF sy-subrc <> 0.

MESSAGE e016 WITH text-004. "Invalid Customer number

ENDIF.

SELECT SINGLE blart FROM t003 INTO l_blart WHERE blart IN s_docu.

IF sy-subrc <> 0.

MESSAGE e016 WITH text-005. "Invalid Document type

ENDIF.

s_code = s_code+3(4).

SELECT belnr FROM bsid INTO l_belnr UP TO 1 ROWS

WHERE bukrs IN s_code

AND kunnr IN s_cust

AND gjahr IN s_fisc

AND blart IN s_docu

AND budat IN s_post

AND bldat IN s_date.

ENDSELECT.

IF sy-subrc <> 0.

MESSAGE e016 WITH text-006. "Invalid Document number

ENDIF.

ENDFORM. " sub_validation

&----


*& Form collect_data_bsid

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM collect_data_bsid .

SELECT bukrs

kunnr

gjahr

belnr

buzei

budat

bldat

blart

zfbdt

zbd1t

zbd2t

zbd3t

dmbtr

shkzg

FROM bkpf_bsid INTO CORRESPONDING FIELDS OF TABLE t_bsid

WHERE bukrs IN s_code

AND kunnr IN s_cust

AND gjahr IN s_fisc

AND belnr IN s_docno

AND blart IN s_docu

AND budat IN s_post

AND bldat IN s_date.

IF sy-subrc <> 0.

MESSAGE i017 .

ENDIF.

lt_bsid[] = t_bsid[].

SORT lt_bsid BY kunnr ASCENDING bldat DESCENDING.

DELETE ADJACENT DUPLICATES FROM lt_bsid COMPARING kunnr.

CHECK NOT lt_bsid[] IS INITIAL.

SELECT kunnr

name1

adrnr

FROM kna1 INTO TABLE t_kna1

FOR ALL ENTRIES IN lt_bsid

WHERE kunnr = lt_bsid-kunnr.

IF sy-subrc <> 0.

MESSAGE e017.

ENDIF.

CHECK NOT t_kna1[] IS INITIAL.

SELECT addrnumber

house_num1

street

city1

region

post_code1

tel_number

fax_number

FROM adrc INTO TABLE t_adrc

FOR ALL ENTRIES IN t_kna1

WHERE addrnumber = t_kna1-adrnr.

IF sy-subrc <> 0.

MESSAGE e017.

ENDIF.

SELECT ekvbd FROM knb1 INTO TABLE t_knb1

FOR ALL ENTRIES IN lt_bsid

WHERE kunnr = lt_bsid-kunnr.

IF sy-subrc <> 0.

MESSAGE e017.

ENDIF.

SELECT kunnr

bldat

FROM bsad INTO TABLE t_bsad

WHERE kunnr IN s_cust

AND bldat IN s_date.

SORT t_bsad BY kunnr ASCENDING bldat DESCENDING.

DELETE ADJACENT DUPLICATES FROM t_bsad COMPARING kunnr.

  • LOOP AT lt_bsid INTO w_bsid.

  • READ TABLE t_bsad INTO w_bsad WITH KEY kunnr = w_bsid-kunnr.

  • l_bldat1 = w_bsid-bldat.

  • l_bldat2 = w_bsad-bldat.

*

  • l_last_sale = l_bldat1 - l_bldat2.

*

  • IF l_last_sale > 0.

*

  • w_bsid-date_of_last_sale = l_bldat1.

  • ELSE.

  • w_bsid-date_of_last_sale = l_bldat2.

*

  • ENDIF.

*

  • MODIFY table lt_bsid FROM w_bsid TRANSPORTING date_of_last_sale.

  • MODIFY table t_bsid FROM w_bsid TRANSPORTING date_of_last_sale.

  • CLEAR: w_bsid .

  • ENDLOOP.

LOOP AT t_bsid INTO w_bsid.

IF NOT w_bsid-zbd3t IS INITIAL.

w_bsid-due_date = w_bsid-zfbdt + w_bsid-zbd3t.

ELSE.

IF NOT w_bsid-zbd2t IS INITIAL.

w_bsid-due_date = w_bsid-zfbdt + w_bsid-zbd2t.

ELSE.

IF NOT w_bsid-zbd1t IS INITIAL.

w_bsid-due_date = w_bsid-zfbdt + w_bsid-zbd1t.

ELSE.

w_bsid-due_date = w_bsid-zfbdt.

ENDIF.

g_past_due = w_bsid-due_date - p_crdrpt.

IF g_past_due GE 0.

PERFORM cal_current.

ELSE.

PERFORM cal_past_due.

ENDIF.

ENDIF.

ENDIF.

MODIFY t_bsid FROM w_bsid TRANSPORTING due_date

30_days_past_due

60_days_past_due

90_days_past_due

over_90_days_past_due.

ENDLOOP.

ENDFORM. " collect_data_bsid

&----


*& Form appl_file_generation

&----


  • text

----


FORM appl_file_generation .

open dataset 'file.txt' for output in text mode encoding default.

if sy-subrc <> 0.

message e018. "error in opening file

endif.

loop at t_collect_data into w_collect_data.

transfer w_collect_data to 'file.txt'.

endloop.

close dataset 'file.txt'.

ENDFORM. " appl_file_generation

&----


*& Form cal_current

&----


  • text

----


FORM cal_current .

ENDFORM. " cal_current

&----


*& Form cal_past_due

&----


  • text

----


FORM cal_past_due .

g_past_due = ( -1 ) * g_past_due.

CASE w_bsid-shkzg.

WHEN 'H'.

w_bsid-dmbtr = ( -1 ) * w_bsid-dmbtr.

ENDCASE.

IF g_past_due LE 30.

w_bsid-30_days_past_due = w_bsid-dmbtr.

ELSEIF g_past_due GE 31 AND g_past_due LE 60.

w_bsid-60_days_past_due = w_bsid-dmbtr.

ELSEIF g_past_due GE 61 AND g_past_due LE 90.

w_bsid-90_days_past_due = w_bsid-dmbtr.

ELSE.

w_bsid-over_90_days_past_due = w_bsid-dmbtr.

ENDIF.

ENDFORM. " cal_past_due

&----


*& Form collect_sum

&----


  • text

----


FORM collect_sum .

DATA: l_name1 TYPE name1.

LOOP AT t_bsid INTO w_bsid.

READ TABLE t_kna1 INTO w_kna1 WITH KEY kunnr = w_bsid-kunnr.

IF sy-subrc = 0.

l_name1 = w_kna1-name1.

ENDIF.

AT NEW kunnr.

SUM.

w_collect_data-kunnr = w_bsid-kunnr.

w_collect_data-name1 = l_name1.

w_collect_data-current = w_bsid-current.

w_collect_data-30_days_past_due = w_bsid-30_days_past_due.

w_collect_data-60_days_past_due = w_bsid-60_days_past_due.

w_collect_data-90_days_past_due = w_bsid-90_days_past_due.

w_collect_data-over_90_days_past_due = w_bsid-over_90_days_past_due.

APPEND w_collect_data TO t_collect_data.

CLEAR w_collect_data.

ENDAT.

ENDLOOP.

ENDFORM. " collect_sum

&----


*& Form collect_data_all

&----


FORM collect_data_all .

LOOP AT t_collect_data INTO w_collect_data.

READ TABLE t_kna1 INTO w_kna1 WITH KEY kunnr = w_collect_data-kunnr.

IF sy-subrc = 0.

READ TABLE t_adrc INTO w_adrc WITH KEY addrnumber = w_kna1-adrnr.

IF sy-subrc = 0.

w_collect_data-house_num1 = w_adrc-house_num1.

w_collect_data-street = w_adrc-street.

w_collect_data-city1 = w_adrc-city1.

w_collect_data-region = w_adrc-region.

w_collect_data-post_code1 = w_adrc-post_code1.

w_collect_data-tel_number = w_adrc-tel_number.

w_collect_data-fax_number = w_adrc-fax_number.

MODIFY t_collect_data FROM w_collect_data TRANSPORTING house_num1

street

city1

region

post_code1

tel_number

fax_number.

ENDIF.

ENDIF.

ENDLOOP.

endform.