quarta-feira, 22 de julho de 2020

Selecionar itens de contratos pendentes - utilizando classe da transação SDV3

  METHOD get_analise_contrato.

    DATAlt_fieldlist TYPE tdt_fieldname,
          lt_message   TYPE tdt_sdoc_msg,
          lt_field_sel TYPE tdt_fieldname.

    DATAls_selcrit TYPE tds_sdoc_selcrit,
          ls_it_cont TYPE tp_it_cont.

    DATAlo_data TYPE REF TO data,
          lo_exc  TYPE REF TO cx_root.

    FIELD-SYMBOLS<lt_result> TYPE STANDARD TABLE.

    DATA lo_result_tab_type TYPE REF TO cl_abap_tabledescr.

    REFRESH et_it_cont.

    ls_selcrit-vbeln VALUE #sign 'I' option 'EQ' low i_vbeln ).
    ls_selcrit-open abap_true.

    TRY.

        DATA(lo_sdocNEW cl_sdoc_select_report_adapter(
                        iv_application_id if_sdoc_select=>co_application_id-va45nn
                        iv_trvog if_sdoc_select=>co_trvog-contract ).

        INSERT if_sdoc_adapter=>co_fieldname-bstnk INTO TABLE lt_fieldlist.
        INSERT if_sdoc_adapter=>co_fieldname-audat INTO TABLE lt_fieldlist.
        INSERT if_sdoc_adapter=>co_fieldname-auart INTO TABLE lt_fieldlist.
        INSERT if_sdoc_adapter=>co_fieldname-vbeln INTO TABLE lt_fieldlist.
        INSERT if_sdoc_adapter=>co_fieldname-ernam INTO TABLE lt_fieldlist.
        INSERT if_sdoc_adapter=>co_fieldname-kunnr INTO TABLE lt_fieldlist.
        INSERT if_sdoc_adapter=>co_fieldname-netwr INTO TABLE lt_fieldlist.
        INSERT if_sdoc_adapter=>co_fieldname-waerk INTO TABLE lt_fieldlist.
        INSERT if_sdoc_adapter=>co_fieldname-posnr INTO TABLE lt_fieldlist.
        INSERT if_sdoc_adapter=>co_fieldname-matnr INTO TABLE lt_fieldlist.
        INSERT if_sdoc_adapter=>co_fieldname-zmeng INTO TABLE lt_fieldlist.
        INSERT if_sdoc_adapter=>co_fieldname-vrkme INTO TABLE lt_fieldlist.
        INSERT if_sdoc_adapter=>co_fieldname-kwmeng INTO TABLE lt_fieldlist.

        lo_result_tab_type lo_sdoc->if_sdoc_adapter~get_result_table_type).
        CREATE DATA lo_data TYPE HANDLE lo_result_tab_type.

        ASSIGN lo_data->TO <lt_result>.

        lo_sdoc->execute_query(
              EXPORTING
                it_req_result_comp_name lt_fieldlist
                is_selcrit              ls_selcrit
              IMPORTING
                et_result               <lt_result>
                et_message              lt_message
                et_field_sel            lt_field_sel ).

      CATCH cx_sy_create_object_error INTO lo_exc.
        MESSAGE lo_exc->get_textTYPE 'I'.

    ENDTRY.

    IF <lt_result> IS ASSIGNED.

      LOOP AT <lt_result> ASSIGNING FIELD-SYMBOL(<ls_result>).

        CLEAR ls_it_cont.

        ASSIGN COMPONENT 'POSNR' OF STRUCTURE <ls_result> TO FIELD-SYMBOL(<l_value>).
        CHECK sy-subrc 0.
        ls_it_cont-posnr <l_value>.
        ASSIGN COMPONENT 'MATNR' OF STRUCTURE <ls_result> TO <l_value>.
        CHECK sy-subrc 0.
        ls_it_cont-matnr <l_value>.
        ASSIGN COMPONENT 'KWMENG' OF STRUCTURE <ls_result> TO <l_value>.
        CHECK sy-subrc 0.
        ls_it_cont-kwmeng <l_value>.

        APPEND ls_it_cont TO et_it_cont.

      ENDLOOP.

    ENDIF.


  ENDMETHOD.

Funções para checagem de crédito de cliente


      *** SALDO DO CRÉDITO **********  

      CALL FUNCTION 'UKM_COMMTS_BUPA_DISPLAY'
        EXPORTING
          i_partner  = <id_kunnr>
          i_segment  ls_sgm-credit_sgmnt
        IMPORTING
          e_amount_l l_amount.

      ADD <total> TO l_amount.

      *********** CALCULA EM PERCENTUAL SE ULTRAPASSOU O VALOR   
      CALL FUNCTION 'UKM_CALCULATE_EXPOSURE'
        EXPORTING
          i_credit_limit     ls_sgm-credit_limit
          i_commitment       l_amount
        IMPORTING
          e_exposure_percent l_exp_percent.

      IF l_exp_percent > '99.9'.
       

        ***** LIMPA OBJETOS
        FIELD-SYMBOLS <lo_check_worth> TYPE REF TO cl_ukm_credit_check_simu.
        ASSIGN ('(SAPLUKM_CREDIT_WORTHINESS_SIMU)g_gui_check_worthiness')
           TO <lo_check_worth>.
        IF sy-subrc 0.
          FREE <lo_check_worth>.
        ENDIF.
           
     *********** VERIFICA PARTIDAS EM ABERTO EM ATRASO
        CALL FUNCTION 'UKM_CREDIT_CHECK_SIMU'
          EXPORTING
            i_partner      = <id_kunnr>
            i_segment      ls_sgm-credit_sgmnt
            i_currency     'BRL'
            i_no_dialog    abap_true
          IMPORTING
            e_check_result ls_check_result.

        CHECK ls_check_result IS NOT INITIAL.

        DATA(lt_denialls_check_result-denial_reasons[].

     endif.
     

quinta-feira, 2 de abril de 2020

Util - SQL ABAP 740

    DELETE FROM demo_expressions.
    INSERT demo_expressions FROM TABLE @( VALUE #(
      ( id = 'X'
        char1 = ' 0123'
        char2 = 'aAaA' ) ) ).

    SELECT SINGLE
           char1 AS text1,
           char2 AS text2,
           CONCAT(            char1,char2 )     AS concat,
           CONCAT_WITH_SPACE( char1,char2, 1 )  AS concat_with_space,
           INSTR(             char1,'12' )      AS instr,
           LEFT(              char1,3 )         AS left,
           LENGTH(            char1 )           AS length,
           LOWER(             char2 )           AS lower,
           LPAD(              char1,10,'x' )    AS lpad,
           LTRIM(             char1,' ' )       AS ltrim,
           REPLACE(           char1,'12','__' ) AS replace,
           RIGHT(             char1,3 )         as right,
           RPAD(              char1,10,'x' )    AS rpad,
           RTRIM(             char1,'3' )       AS rtrim,
           SUBSTRING(         char1,3,3 )       AS substring,
           UPPER(             char2 )           AS upper
           FROM demo_expressions
           INTO @DATA(result).

    cl_demo_output=>display( result ).

========================================================================

        SELECT SINGLE concatconcatrtrimort01,' ' ),'-' )regio AS incol2
          FROM t001w
         WHERE werks EQ @ls_ped_transf-werks_dest
          INTO @DATA(l_incol2).


======================================================================

  TYPESBEGIN OF tp_upl,
           partner_coop TYPE zsdt_0099-partner_coop,
           id_coop      TYPE zsdt_0099-id_coop,
           partner_prop TYPE zsdt_0099-partner_prop,
           barracao     TYPE zsdt_0099-barracao,
           semana       TYPE zsdt_0099-semana,
           ano          TYPE zsdt_0099-ano,
           rodada       TYPE zsdt_0099-rodada,
           dt_cri_lote  TYPE zsdt_0099-dt_cri_lote,
         END OF tp_upl.

  TYPEStp_dados_sel TYPE TABLE OF tp_upl WITH DEFAULT KEY.


    DATA(lt_uplVALUE tp_dados_sel(
                  FOR ls_dados IN gt_zsdt_0099
                  WHERE partner_prop zsds_0041-id_propr )
                  partner_coop ls_dados-partner_coop
                    id_coop      ls_dados-id_coop
                    partner_prop ls_dados-partner_prop
                    barracao     ls_dados-barracao
                    semana       ls_dados-semana
                    ano          ls_dados-ano
                    rodada       ls_dados-rodada
                    dt_cri_lote  ls_dados-dt_cri_lote ).


============================
DATA: lt_flights_all TYPE STANDARD TABLE OF spfli 
                     WITH NON-UNIQUE SORTED KEY carrid
                     COMPONENTS carrid,
 
      lt_flight_lh   TYPE STANDARD TABLE OF spfli.

SELECT *  FROM spfli
          INTO TABLE @lt_flights_all.
IF sy-subrc = 0.

lt_flight_lh = FILTER #( lt_flights_all USING KEY carrid 
                                        WHERE carrid = 'LH ' ).

ENDIF.
================================
https://blogs.sap.com/2015/10/25/abap-740-quick-reference/