CE PLUS - Nota 005442

Módulo: DOC. EXPORTAÇÃO

Funcionalidade: Comissão de Agente

Data/Hora da Publicação: 12/12/2007 00:00:00

Data/Hora Última Alteração: 04/03/2010 13:26:53

Descrição da Nota: BUSCA CONTA PARAMETRIZADA NA VKOA

Sintoma

 

Desenvolvimento Adicional

 

Solução

 

Desenvolvimento Adicional

Versões Tratadas

7.0

Informações Complementares

 

----------------------------------------------------------------------------------------------------

Nota Número 05442 Data: 12/12/2007 Hora: 16:43:23

----------------------------------------------------------------------------------------------------

 

----------------------------------------------------------------------------------------------------

Nota Número              : 05442

Categoria                : Melhoria

Prioridade               : Baixa

Versão PW.CE             : 7.0

Pacote                   : 00003

Agrupamento              : 00024

----------------------------------------------------------------------------------------------------

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

----------------------------------------------------------------------------------------------------

BUSCA CONTA PARAMETRIZADA NA VKOA

----------------------------------------------------------------------------------------------------

Palavras Chave:

CONTA PARAMETRIZADA VKOA CONTÁBIL AGENTE RECEITA VENDAS ADIANTAMENTO

 

----------------------------------------------------------------------------------------------------

Objetos da nota:

FUNC /PWS/ZYCE_BUSCA_CONTA_VKOA

REPS /PWS/LZYCEGF6UXX

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em FUNC /PWS/ZYCE_BUSCA_CONTA_VKOA

 

Criar Função: /PWS/ZYCE_BUSCA_CONTA_VKOA

 

Características:

 

Grupo de Funções: /PWS/ZYCEGF6

Texto Breve: Busca Conta Parametrizada na VKOA

Marcar Módulo de Acesso Normal

Marcar Início Imediato

 

Importação:

 

Nome Parâmetro  Atrib.tipo  Tipo referência

AUART             TYPE        TVAK-AUART

BUKRS             TYPE        T001-BUKRS

MATNR             TYPE        MARA-MATNR

WERKS             TYPE        T001W-WERKS

KUNNR             TYPE        KNA1-KUNNR

VKORG             TYPE        TVKO-VKORG

VTWEG             TYPE        TVTW-VTWEG

SPART             TYPE        TSPA-SPART

KSCHL             TYPE        T685A-KSCHL

 

Exportação:

 

Nome Parâmetro  Atrib.tipo  Tipo referência

SAKN1             TYPE        SKA1-SAKNR

SAKN2             TYPE        SKA1-SAKNR

 

Exceções:

 

Exceção            Texto Breve

ACCOUNT_NOT_FOUND   Nenhuma Conta Contábil foi encontrada!

 

Texto Fonte:

 

...

 

*"     REFERENCE(SPART) TYPE  TSPA-SPART

*"     REFERENCE(KSCHL) TYPE  T685A-KSCHL

*"  EXPORTING

*"     REFERENCE(SAKN1) TYPE  SKA1-SAKNR

*"     REFERENCE(SAKN2) TYPE  SKA1-SAKNR

*"  EXCEPTIONS

*"      ACCOUNT_NOT_FOUND

*"----------------------------------------------------------------------

 

* >> Início da inclusão:

  DATA: v_mtpos_mara LIKE   mara-mtpos_mara,

        v_ktopl      LIKE   t001-ktopl,

        v_fkart      LIKE   tvak-fkarv,

        v_kalsmc     LIKE   tvfk-kalsmc,

        v_kalsm      LIKE   t683v-kalsm,

        v_kvsl1      LIKE   t683s-kvsl1.

  TABLES: dd03l. " Campos tabela

  DATA:

        itab_where LIKE abapsource OCCURS 100 WITH HEADER LINE,

 

        BEGIN OF itab_knvv OCCURS 0,

         bzirk LIKE knvv-bzirk,

         vkbur LIKE knvv-vkbur,

         vkgrp LIKE knvv-vkgrp,

         kdgrp LIKE knvv-kdgrp,

         kalks LIKE knvv-kalks,

         ktgrd LIKE knvv-ktgrd,

        END OF itab_knvv,

 

        BEGIN OF itab_mvke OCCURS 0,

         versg      LIKE   mvke-versg,

         kondm      LIKE   mvke-kondm,

         bonus      LIKE   mvke-bonus,

         ktgrm      LIKE   mvke-ktgrm,

         mtpos      LIKE   mvke-mtpos,

         provg      LIKE   mvke-provg,

        END OF itab_mvke,

 

        BEGIN OF itab_tvak OCCURS 0,

         kalvg     LIKE  tvak-kalvg,

         fkarv     LIKE  tvak-fkarv,

         fkara     LIKE  tvak-fkara,

         lfarv     LIKE  tvak-lfarv,

        END OF itab_tvak,

 

        BEGIN OF itab_t683s OCCURS 0,

         zaehk     LIKE  t683s-zaehk,

         kschl     LIKE  t683s-kschl,

        END OF itab_t683s,

 

        BEGIN OF itab_t682i OCCURS 0,

         kolnr     LIKE  t682i-kolnr,

         kotabnr   LIKE  t682i-kotabnr,

        END OF itab_t682i,

 

        BEGIN OF itab_tables OCCURS 0,

         tabela    LIKE  dd03l-tabname,

        END OF itab_tables,

 

        BEGIN OF itab_campos OCCURS 0,

          kappl       LIKE  t683s-kappl,    "Aplicação

          p_kschl     LIKE  t685-kschl,     "Tipo de Condição

          ktopl       LIKE  t001-ktopl,     "Plano de Contas

          werks       LIKE  t001w-werks,    "Centro

          kunnr       LIKE  kna1-kunnr,     "Código do Cliente

          vkorg       LIKE  tvko-vkorg,     "Organização Vendas

          vtweg       LIKE  tvtw-vtweg,     "Canal Distribuição

          spart       LIKE  tspa-spart,     "Setor Atividade

          kschl       LIKE  t683s-kschl,    "Código da Condition

          kalsmc      LIKE  tvfk-kalsmc,    "Código Det.ContaRazão

          ktgrm       LIKE  mvke-ktgrm,     "Grp Cls.Cont.Material

          kalks       LIKE  knvv-kalks,     "Esquema de Clientes

          kvsl1       LIKE  t683s-kvsl1,    "Chave de Conta

          bzirk       LIKE  knvv-bzirk,     "Região de Vendas

          vkbur       LIKE  knvv-vkbur,     "Escritório de Vendas

          vkgrp       LIKE  knvv-vkgrp,     "Grupo de Vendedores

          kdgrp       LIKE  knvv-kdgrp,     "Grupo de Clientes

          ktgrd       LIKE  knvv-ktgrd,     "Grp Clas.Fisc Cliente

          versg       LIKE  mvke-versg,     "Grupo Estat. Material

          kondm       LIKE  mvke-kondm,     "Grupo de Material

          bonus       LIKE  mvke-bonus,     "Grupo de Bônus

          mtpos_mara  LIKE  mara-mtpos_mara,"Grupo Cat. Item Geral

          mtpos       LIKE  mvke-mtpos,     "GrpCat.MestreMaterial

          provg       LIKE  mvke-provg,     "Grupo de Comissão

        END OF itab_campos.

  DATA: wa_itab_campos LIKE LINE OF itab_campos.

  FIELD-SYMBOLS <valor>.

  SELECT bzirk vkbur vkgrp kdgrp kalks ktgrd FROM knvv

    INTO TABLE itab_knvv

    WHERE kunnr = kunnr

      AND vkorg = vkorg

      AND vtweg = vtweg

      AND spart = spart.

 

  SELECT versg kondm bonus ktgrm mtpos provg FROM mvke

    INTO TABLE itab_mvke

    WHERE matnr = matnr

      AND vkorg = vkorg

      AND vtweg = vtweg.

 

  SELECT SINGLE mtpos_mara FROM mara

    INTO v_mtpos_mara

    WHERE matnr = matnr.

 

  SELECT SINGLE ktopl FROM t001

    INTO v_ktopl

    WHERE bukrs = bukrs.

 

  SELECT kalvg fkarv fkara lfarv FROM tvak

    INTO TABLE itab_tvak

    WHERE auart = auart.

 

  READ TABLE itab_tvak INDEX 1.

  IF NOT itab_tvak-lfarv IS INITIAL.

    v_fkart = itab_tvak-fkarv.

  ELSE.

    v_fkart = itab_tvak-fkara.

  ENDIF.

 

  SELECT SINGLE kalsmc FROM tvfk

    INTO v_kalsmc

    WHERE fkart = v_fkart.

 

  READ TABLE itab_knvv INDEX 1.

 

  SELECT SINGLE kalsm FROM t683v

    INTO v_kalsm

    WHERE vkorg = vkorg

      AND vtweg = vtweg

      AND spart = spart

      AND kalvg = itab_tvak-kalvg

      AND kalks = itab_knvv-kalks.

 

  SELECT SINGLE kvsl1 FROM t683s

    INTO v_kvsl1

    WHERE kvewe = 'A'

      AND kappl = 'V'

      AND kalsm = v_kalsm

      AND kschl = kschl.                                    "#EC *

 

  SELECT zaehk kschl FROM t683s

    INTO TABLE itab_t683s

    WHERE kvewe EQ 'C'

      AND kappl EQ 'V'

      AND kalsm EQ v_kalsmc.

 

  SORT itab_t683s BY zaehk.

  READ TABLE itab_mvke INDEX 1.

  MOVE: 'V'              TO  wa_itab_campos-kappl,

        v_ktopl          TO  wa_itab_campos-ktopl,

        werks            TO  wa_itab_campos-werks,

        kunnr            TO  wa_itab_campos-kunnr,

        vkorg            TO  wa_itab_campos-vkorg,

        vtweg            TO  wa_itab_campos-vtweg,

        spart            TO  wa_itab_campos-spart,

        kschl            TO  wa_itab_campos-p_kschl,

        v_kalsmc         TO  wa_itab_campos-kalsmc,

        itab_mvke-ktgrm  TO  wa_itab_campos-ktgrm,

        itab_knvv-kalks  TO  wa_itab_campos-kalks,

        v_kvsl1          TO  wa_itab_campos-kvsl1,

        itab_mvke-ktgrm  TO  wa_itab_campos-bzirk,

        itab_knvv-vkbur  TO  wa_itab_campos-vkbur,

        itab_knvv-vkgrp  TO  wa_itab_campos-vkgrp,

        itab_knvv-kdgrp  TO  wa_itab_campos-kdgrp,

        itab_knvv-ktgrd  TO  wa_itab_campos-ktgrd,

        itab_mvke-versg  TO  wa_itab_campos-versg,

        itab_mvke-kondm  TO  wa_itab_campos-kondm,

        itab_mvke-bonus  TO  wa_itab_campos-bonus,

        v_mtpos_mara     TO  wa_itab_campos-mtpos_mara,

        itab_mvke-mtpos  TO  wa_itab_campos-mtpos,

        itab_mvke-provg  TO  wa_itab_campos-provg.

 

  LOOP AT itab_t683s.

    REFRESH: itab_t682i, itab_tables.

    MOVE: itab_t683s-kschl TO wa_itab_campos-kschl.

    SELECT kolnr kotabnr FROM t682i

      INTO TABLE itab_t682i

      WHERE kozgf = itab_t683s-kschl.

    SORT itab_t682i BY kolnr.

    LOOP AT itab_t682i.

      CONCATENATE 'C' itab_t682i-kotabnr INTO itab_tables-tabela.

      APPEND itab_tables.

    ENDLOOP.

    LOOP AT itab_tables.

      SELECT *

          FROM dd03l

          WHERE tabname = itab_tables-tabela

            AND keyflag = 'X'

            AND fieldname <> 'MANDT'.

        CLEAR itab_where.

        ASSIGN COMPONENT dd03l-fieldname

            OF STRUCTURE wa_itab_campos

            TO <valor>.

        IF sy-subrc = 0.

          CONCATENATE dd03l-fieldname

                      ' = '''

                      <valor>

                      ''' AND '

                      INTO itab_where.

          APPEND itab_where.

        ENDIF.

      ENDSELECT.

      READ TABLE itab_where INDEX 1.

      READ TABLE itab_where INDEX sy-tfill.

      REPLACE ' AND ' WITH '' INTO itab_where.

      MODIFY itab_where INDEX sy-tfill.

      SELECT SINGLE sakn1 sakn2

          INTO (sakn1, sakn2)

          FROM (itab_tables-tabela)

          WHERE (itab_where).

      IF sy-subrc EQ 0.

        EXIT.

      ENDIF.

      REFRESH itab_where.

      CLEAR   itab_where.

    ENDLOOP.

    IF sy-subrc EQ 0.

      EXIT.

    ENDIF.

  ENDLOOP.

  IF sakn1 IS INITIAL AND sakn2 IS INITIAL.

    RAISE account_not_found.

  ENDIF.

ENDFUNCTION.

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/LZYCEGF6UXX

 

...

INCLUDE /PWS/LZYCEGF6U15.

INCLUDE /PWS/LZYCEGF6U16.

INCLUDE /PWS/LZYCEGF6U17.

INCLUDE /PWS/LZYCEGF6U18.

INCLUDE /PWS/LZYCEGF6U20.

INCLUDE /PWS/LZYCEGF6U19.

INCLUDE /PWS/LZYCEGF6U21.

INCLUDE /PWS/LZYCEGF6U22.

INCLUDE /PWS/LZYCEGF6U23.

INCLUDE /PWS/LZYCEGF6U24.

* >> Início da inclusão:

INCLUDE /PWS/LZYCEGF6U25.

* << Fim da inclusão

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em FUNC /PWS/ZYCE_BUSCA_CONTA_VKOA            DOKU

* >> Início da inclusão:

/HTEXT

/:OBJECT DOKU

/:NAME /PWS/ZYCE_BUSCA_CONTA_VKOA

/:ID FU

/:LANGUAGE P

/:FORM S_DOCU_SHOW

/:STYLE S_DOCUS1

/:FIRST-USER PWSCE

/:FIRST-DATE 12 12 2007

/:FIRST-TIME 15 37 33

/:LAST-USER PWSCE

/:LAST-DATE 12 12 2007

/:LAST-TIME 16 35 34

/:TITLE '                                                  '

/:TITLE1 '                '

/:TITLE2 '                '

/MTEXT

U1&FUNCTIONALITY&

ASBusca as Contas Parametrizadas na VKOA ( Tabelas Standart SAP ).

ASTodos os parâmetros são obrigatórios. Caso a conta não seja encontrada

  nas Tabelas Standart, a Função lançará uma Exceção: ACCOUNT_NOT_FOUND

U1&EXAMPLE&

ASPassar os Parametros: ,,

B1AUART: ZEXP

B1BUKRS: EMP1

B1MATNR: PA01

B1WERKS: CE01

B1KUNNR: 1

B1VKORG: OV01

B1VTWEG: C7

B1SPART: S1

B1KSCHL: ICMI

*

* A Função retornará as Contas:

B1SAKN1: 3332107

B1SAKN2: 3332105

*

U1&HINTS&

AS

U1&FURTHER_SOURCES_OF_INF&

U1

AS

* << Fim da inclusão