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
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