Professional Documents
Culture Documents
ZROCHANGES
ZROCHANGES
TYPE-POOLS : TRUXS.
END OF GTY_FILE.
DATA: GT_FINAL TYPE STANDARD TABLE OF GTY_FILE,
GS_FINAL TYPE GTY_FILE,
DD(8).
*TYPES: BEGIN OF TY_LINES,
* LINE TYPE CHAR255,
* END OF TY_LINES.
*DATA: IT_LINES TYPE STANDARD TABLE OF TY_LINES,
* WA_LINES TYPE TY_LINES.
DATA: IT_LINES TYPE SOLI_TAB,
WA_LINES TYPE SOLI.
DATA: TITLE TYPE STRING.
DATA XVIBDMEAS TYPE TABLE OF VIBDMEAS WITH HEADER LINE .
DATA REKEY TYPE RECAINTRENO .
DATA: GT_BDC TYPE STANDARD TABLE OF BDCDATA,
GS_BDC TYPE BDCDATA,
GT_MSG TYPE STANDARD TABLE OF BDCMSGCOLL,
LT_MSG TYPE STANDARD TABLE OF BDCMSGCOLL WITH HEADER LINE,
GS_MSG TYPE BDCMSGCOLL.
DATA: G_RC TYPE SY-SUBRC.
DATA: FILENAME TYPE RLGRAP-FILENAME.
START-OF-SELECTION.
PERFORM UPLOAD_EXCEL.
WA_DOWNLOAD-RENTALOBJ = 'RENTALOBJ'.
WA_DOWNLOAD-MESSAGE = 'MESSAGE'.
APPEND WA_DOWNLOAD TO IT_DOWNLOAD.
CLEAR WA_DOWNLOAD.
PERFORM DOWNLOAD_EXCEL_LOG.
END-OF-SELECTION.
* PERFORM DISPLAY_MSGS.
*&---------------------------------------------------------------------*
*& Form UPLOAD_EXCEL
*&---------------------------------------------------------------------*
FORM UPLOAD_EXCEL .
FILENAME = P_FNAME.
DATA: I_TAB_DATA TYPE TRUXS_T_TEXT_DATA.
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
I_FIELD_SEPERATOR = '#'
I_LINE_HEADER = 'X'
I_TAB_RAW_DATA = I_TAB_DATA
I_FILENAME = FILENAME
TABLES
I_TAB_CONVERTED_DATA = GT_FINAL
EXCEPTIONS
CONVERSION_FAILED = 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.
*&---------------------------------------------------------------------*
*& Form PROCESS_BDC
*&---------------------------------------------------------------------*
FORM PROCESS_BDC.
"**************************************
COMPCODE = GS_FINAL-BUKRS.
BUSINESSENTITYNUMBER = GS_FINAL-SWENR.
RENTALOBJECTNUMBER = GS_FINAL-SMENR.
SELECT SINGLE INTRENO INTO REKEY FROM VIBDRO WHERE BUKRS = GS_FINAL-BUKRS AND
SWENR = GS_FINAL-SWENR AND SMENR = GS_FINAL-SMENR .
XRENTALOBJ-LOCATION_ON_FLOOR = GS_FINAL-PHASE.
XRENTALOBJ_X-LOCATION_ON_FLOOR = 'X'.
CONDITION-CHANGE_INDICATOR = 'U'.
CONCATENATE COMPCODE '/' BUSINESSENTITYNUMBER '/'
RENTALOBJECTNUMBER INTO CONDITION-CALCULATION_OBJECT_ID.
CONDITION-CONDITION_TYPE = 'U001' .
CONDITION-CALCULATION_OBJECT_TYPE = 'IM'.
CONDITION-VALID_FROM = CONDITION_OLD-VALID_FROM .
CONDITION-CURRENCY = CONDITION_OLD-CURRENCY. "'EGP' .
CONDITION-UNIT_PRICE = CONDITION_OLD-UNIT_PRICE.
CONDITION-CALC_RULE = 'A' .
CONDITION-EXTERNAL_PURPOSE = 'G'.
CONDITION-IS_ONE_TIME = CONDITION_OLD-IS_ONE_TIME.
CONDITION-VALID_TO = DL_DATE.
APPEND CONDITION TO CONDITION.
IF MEASUREMENT-CHANGE_INDICATOR = 'U'.
MEASUREMENT-VALUE_AVAIL = MEASUREMENT_OLD-VALUE_AVAIL.
ELSE .
MEASUREMENT-VALUE_AVAIL = GS_FINAL-RESIDENT.
ENDIF .
IF MEASUREMENT_OLD-VALID_FROM IS INITIAL .
MEASUREMENT-VALID_FROM = '00000000'.
ELSE .
MEASUREMENT-VALID_FROM = RENTAL_OBJECT-OBJECT_VALID_FROM .
ENDIF .
IF MEASUREMENT-CHANGE_INDICATOR = 'I'.
MEASUREMENT-VALID_TO = '00000000'. .
ELSE .
MEASUREMENT-VALID_TO = SY-DATUM - 1 . "'99991231' .
ENDIF .
MEASUREMENT-UNIT = 'M2'.
APPEND MEASUREMENT TO MEASUREMENT.
APPEND IT_MEASUREMENTLOG TO IT_MEASUREMENTLOG. "LOG
CLEAR MEASUREMENT.
CLEAR IT_MEASUREMENTLOG. "LOG
*----------------------------------------------------------------
XVIBDMEAS-INTRENO = REKEY .
XVIBDMEAS-MEAS = 'A200' .
XVIBDMEAS-VALIDFROM = SY-DATUM.
XVIBDMEAS-MEASVALUE = GS_FINAL-RESIDENT .
XVIBDMEAS-MEASVALUECMPL = GS_FINAL-RESIDENT .
XVIBDMEAS-MEASUNIT = 'M2' .
APPEND XVIBDMEAS TO XVIBDMEAS .
CLEAR XVIBDMEAS .
ENDIF .
IF MEASUREMENT-CHANGE_INDICATOR = 'U'.
MEASUREMENT-VALUE_AVAIL = MEASUREMENT_OLD-VALUE_AVAIL.
ELSE .
MEASUREMENT-VALUE_AVAIL = GS_FINAL-SHLAND.
ENDIF .
IF MEASUREMENT_OLD-VALID_FROM IS INITIAL .
MEASUREMENT-VALID_FROM = '00000000'.
ELSE .
MEASUREMENT-VALID_FROM = RENTAL_OBJECT-OBJECT_VALID_FROM .
ENDIF .
IF MEASUREMENT-CHANGE_INDICATOR = 'I'.
MEASUREMENT-VALID_TO = '00000000'. .
ELSE .
MEASUREMENT-VALID_TO = SY-DATUM - 1 . "'99991231' .
ENDIF .
MEASUREMENT-UNIT = 'M2'.
APPEND MEASUREMENT TO MEASUREMENT.
APPEND IT_MEASUREMENTLOG TO IT_MEASUREMENTLOG. "LOG
CLEAR MEASUREMENT.
CLEAR IT_MEASUREMENTLOG. "LOG
*-----------------------------------------------------
XVIBDMEAS-INTRENO = REKEY .
XVIBDMEAS-MEAS = 'M021' .
XVIBDMEAS-VALIDFROM = SY-DATUM.
XVIBDMEAS-MEASVALUE = GS_FINAL-RESIDENT .
XVIBDMEAS-MEASVALUECMPL = GS_FINAL-RESIDENT .
XVIBDMEAS-MEASUNIT = 'M2' .
APPEND XVIBDMEAS TO XVIBDMEAS .
CLEAR XVIBDMEAS .
*-----------------------------------------------------
ENDIF.
IF MEASUREMENT-CHANGE_INDICATOR = 'U'.
MEASUREMENT-VALUE_AVAIL = MEASUREMENT_OLD-VALUE_AVAIL.
ELSE .
MEASUREMENT-VALUE_AVAIL = GS_FINAL-SHGARDEN.
ENDIF .
IF MEASUREMENT_OLD-VALID_FROM IS INITIAL .
MEASUREMENT-VALID_FROM = '00000000'.
ELSE .
MEASUREMENT-VALID_FROM = RENTAL_OBJECT-OBJECT_VALID_FROM .
ENDIF .
IF MEASUREMENT-CHANGE_INDICATOR = 'I'.
MEASUREMENT-VALID_TO = '00000000'. .
ELSE .
MEASUREMENT-VALID_TO = SY-DATUM - 1 . "'99991231' .
ENDIF .
MEASUREMENT-UNIT = 'M2'.
APPEND MEASUREMENT TO MEASUREMENT.
APPEND IT_MEASUREMENTLOG TO IT_MEASUREMENTLOG. "LOG
CLEAR MEASUREMENT.
CLEAR IT_MEASUREMENTLOG. "LOG
*---------------------------------------------------
XVIBDMEAS-INTRENO = REKEY .
XVIBDMEAS-MEAS = 'M020' .
XVIBDMEAS-VALIDFROM = SY-DATUM.
XVIBDMEAS-MEASVALUE = GS_FINAL-RESIDENT .
XVIBDMEAS-MEASVALUECMPL = GS_FINAL-RESIDENT .
XVIBDMEAS-MEASUNIT = 'M2' .
APPEND XVIBDMEAS TO XVIBDMEAS .
CLEAR XVIBDMEAS .
*---------------------------------------------------
ENDIF.
IF MEASUREMENT-CHANGE_INDICATOR = 'U'.
MEASUREMENT-VALUE_AVAIL = MEASUREMENT_OLD-VALUE_AVAIL.
ELSE .
MEASUREMENT-VALUE_AVAIL = GS_FINAL-INDOOR_AREA.
ENDIF .
IF MEASUREMENT_OLD-VALID_FROM IS INITIAL .
MEASUREMENT-VALID_FROM = '00000000'.
ELSE .
MEASUREMENT-VALID_FROM = RENTAL_OBJECT-OBJECT_VALID_FROM .
ENDIF .
IF MEASUREMENT-CHANGE_INDICATOR = 'I'.
MEASUREMENT-VALID_TO = '00000000'. .
ELSE .
MEASUREMENT-VALID_TO = SY-DATUM - 1 . "'99991231' .
ENDIF .
MEASUREMENT-UNIT = 'M2'.
APPEND MEASUREMENT TO MEASUREMENT.
APPEND IT_MEASUREMENTLOG TO IT_MEASUREMENTLOG. "LOG
CLEAR MEASUREMENT.
CLEAR IT_MEASUREMENTLOG. "LOG
*--------------------------------------------------------
XVIBDMEAS-INTRENO = REKEY .
XVIBDMEAS-MEAS = 'A501' .
XVIBDMEAS-VALIDFROM = SY-DATUM.
XVIBDMEAS-MEASVALUE = GS_FINAL-RESIDENT .
XVIBDMEAS-MEASVALUECMPL = GS_FINAL-RESIDENT .
XVIBDMEAS-MEASUNIT = 'M2' .
APPEND XVIBDMEAS TO XVIBDMEAS .
CLEAR XVIBDMEAS .
*--------------------------------------------------------
ENDIF.
IF MEASUREMENT-CHANGE_INDICATOR = 'U'.
MEASUREMENT-VALUE_AVAIL = MEASUREMENT_OLD-VALUE_AVAIL.
ELSE .
MEASUREMENT-VALUE_AVAIL = '001'.
ENDIF .
IF MEASUREMENT_OLD-VALID_FROM IS INITIAL .
MEASUREMENT-VALID_FROM = '00000000'.
ELSE .
MEASUREMENT-VALID_FROM = RENTAL_OBJECT-OBJECT_VALID_FROM .
ENDIF .
IF MEASUREMENT-CHANGE_INDICATOR = 'I'.
MEASUREMENT-VALID_TO = '00000000'. .
ELSE .
MEASUREMENT-VALID_TO = SY-DATUM - 1 . "'99991231' .
ENDIF .
MEASUREMENT-UNIT = 'M2'.
APPEND MEASUREMENT TO MEASUREMENT.
APPEND IT_MEASUREMENTLOG TO IT_MEASUREMENTLOG. "LOG
CLEAR MEASUREMENT.
CLEAR IT_MEASUREMENTLOG. "LOG
*--------------------------------------------------------
XVIBDMEAS-INTRENO = REKEY .
XVIBDMEAS-MEAS = 'A501' .
XVIBDMEAS-VALIDFROM = SY-DATUM.
XVIBDMEAS-MEASVALUE = GS_FINAL-RESIDENT .
XVIBDMEAS-MEASVALUECMPL = GS_FINAL-RESIDENT .
XVIBDMEAS-MEASUNIT = 'M2' .
APPEND XVIBDMEAS TO XVIBDMEAS .
CLEAR XVIBDMEAS .
*--------------------------------------------------------
ENDIF.
IF MEASUREMENT-CHANGE_INDICATOR = 'U'.
INSERT VIBDMEAS FROM TABLE XVIBDMEAS .
CLEAR XVIBDMEAS[] .
ENDIF.
OLD_PRICE = CONDITION_OLD-UNIT_PRICE.
NEW_PRICE = CONDITION-UNIT_PRICE.
CLEAR OLD_PRICE.
CLEAR NEW_PRICE.
ENDIF.
"MEASUREMENT CHANGE
IF ( IT_MEASUREMENTLOG[] IS NOT INITIAL ).
LOOP AT IT_MEASUREMENTLOG.
IF ( IT_MEASUREMENTLOG-CHANGE_INDICATOR = 'U' ).
ENDLOOP.
ENDIF.
ENDIF.
LOOP AT RETURN.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = RETURN-ID
LANG = SY-LANGU
NO = RETURN-NUMBER
V1 = RETURN-MESSAGE_V1
V2 = RETURN-MESSAGE_V2
V3 = RETURN-MESSAGE_V3
V4 = RETURN-MESSAGE_V4
IMPORTING
MSG = WA_DOWNLOAD-MESSAGE "Message text
EXCEPTIONS
NOT_FOUND = 1
OTHERS = 2.
WA_DOWNLOAD-RENTALOBJ = G_CONDITION-CALCULATION_OBJECT_ID.
APPEND WA_DOWNLOAD TO IT_DOWNLOAD.
CLEAR WA_DOWNLOAD.
ENDLOOP.
CLEAR: GS_FINAL,LT_MSG[],G_CONDITION ,CONDITION[],RETURN[],
CONDITION_OLD[], MEASUREMENT[], MEASUREMENT_OLD[],
IT_MEASUREMENTLOG[] .
ENDLOOP.
ENDFORM. " PROCESS_BDC
*&---------------------------------------------------------------------*
*& Form bdc_dynpro
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form bdc_field
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form: DOWNLOAD_EXCEL_LOG
*&---------------------------------------------------------------------*
* Description: DOWNLOAD THE LOG FILE OF THE CHANGES ON RO OBJECT
* WITH THE SUCCESS & FAILURE MESSAGES
*----------------------------------------------------------------------*
FORM DOWNLOAD_EXCEL_LOG.
"SO_NEW_DOCUMENT_ATT_SEND_API1
"******************************************************"
" SAP send mail with CL_BCS
"******************************************************"
DATA: lo_document TYPE REF TO cl_document_bcs.
DATA: lx_document_bcs TYPE REF TO cx_document_bcs.
DATA: LX_SEND_REQ_BCS TYPE REF TO CX_SEND_REQ_BCS.
DATA: LX_ADDRESS_BCS TYPE REF TO CX_ADDRESS_BCS.
DATA: lo_send_request TYPE REF TO cl_bcs.
DATA: lo_sender TYPE REF TO if_sender_bcs.
DATA: lv_sent_to_all TYPE os_boolean .
DATA: lt_att_content_hex TYPE solix_tab .
DATA: lt_message_body TYPE bcsy_text.
DATA: lv_sender_email TYPE adr6-smtp_addr.
DATA: LV_EMAIL TYPE ADR6-SMTP_ADDR.
DATA: lo_recipient TYPE REF TO if_recipient_bcs .
DATA: lv_with_error_screen TYPE os_boolean .
DATA: lv_length_mime TYPE num12.
DATA: lv_mime_type TYPE w3conttype.
DATA: lt_attachment TYPE solix_tab.
DATA: lv_attachment_type TYPE soodk-objtp.
DATA: lv_attachment_size TYPE sood-objlen.
DATA: lv_attachment_subject TYPE sood-objdes.
DATA: lt_body_hex TYPE solix_tab.
DATA: lv_mail_subject TYPE so_obj_des.
DATA: lv_type TYPE string.
DATA: lv_extension TYPE string.
DATA: lv_docid_str(12) .
lv_sender_email = 'SAP.Notifications@ad-holding.com'.
lv_email = 'MElbadrashiny@ad-holding.com'. "'hmaher@ad-holding.com'.
lv_mail_subject = TITLE.
"-------------------------------------------"
" Send Email
"-------------------------------------------"
TRY.
lo_send_request = cl_bcs=>create_persistent( ).
"****************************"
" EMAIL
"*****************************"
" set the e-mail address of the sender:
** lo_sender = cl_sapuser_bcs=>create( sy-uname ).
lo_sender = cl_cam_address_bcs=>create_internet_address(
i_address_string = lv_sender_email ).
lo_recipient = cl_cam_address_bcs=>create_internet_address(
i_address_string = lv_email ).
lo_send_request->add_recipient( lo_recipient ) .
** LOOP AT lt_receiver ASSIGNING <fs_receiver>.
** lo_recipient = cl_sapuser_bcs=>create( sy-uname ).
** lo_send_request->add_recipient( lo_recipient ) .
** ENDLOOP.
lo_send_request->SET_SEND_IMMEDIATELY('X').
COMMIT WORK.
ENDTRY.
ENDFORM.