Diferenças entre o namespace 006 e 008

Olá pessoall boa tarde a todos,
Poderia por gentileza me tirar uma singela dúvida, estou iniciando um projeto de XML 3.10 e estava comparando os objetos do namespace 006 e 008.
Abaixo existe uma tabela com os integrations process da versao 006 e da 008:
Gostaria de entender o motivo pelo qual não existe o EVENT_CANC_WebAS_OutBound_EventCancellationRequest.
Vocês tiveram esse mesmo problema ?
Atenciosamente,

Oi Viana
Os eventos são agora enviados e recebidos através do:
EVENT_WebAS_Outbound_EventReceipt
para o B2B:
ETB2B_WebAS_Outbound_B2B_Event
EFB2B_WebAS_Inbound_B2B_Event
* qualquer dúvida...
Integration Scenarios for NF-e Configuration (Outbound) - SAP Nota Fiscal Eletrônica (SAP Electronic Invoicing for Brazi…
Abraço
Eduardo Chagas

Similar Messages

  • Diferença entre F.98 e FS10N

    Qual a difrença nos relatórios apresentados pela F.98 --> Relatório --> Brasil --> Registro de inventário e a FS10N. Os valores apresentados devem ser iguais.
    Obrigado.

    Olá Edson,
    O reporte que comentaste é o livro fiscal modelo 7 do Brazil, que demonstra todo o estoque e movimentações a FS10N serve para mostrar balanço de qualquer conta contábil, ela lê a tabela GLT0 do sap que é a tabela de totais, com oo livro modelo 7 faz uma série de manipulãções dos dados as vezes os valores não batem, segue a descrição do help do livro modelo 7:
    Modelo 7 (Own stock, Special Stocks, WIP stocks)
    Source code: J_1BLB07_NEW
    Transaction: J1B_LB07N
    Laws: Convênio SINIEF s/nº de 15.12.1970, art. 63, and Convênio
    SINIEF 6/89, art. 87
    Modelo 7 displays a company's stock, per valuation area. It splits the stock into two sections: Own stock (stock controlled by the company) and Vendor stock (stock controlled by the company's vendors). Within these two sections, the materials are split per valuation class.
    Some special stocks, such as consignment stock, can be flagged to be seen in this report. The most important data about these stocks that appear in Modelo 7 are: NCM Code, Material Name, Unit of Measure, Quantity and Total Value.
    Work-in-process stocks can also be flagged to be seen in this report.
    Espero que tenha esclarecido.
    sds,
    Gustavo

  • Dúvidas entre TAXBRA e TAXBRJ

    Bom dia pessoal!
    Vou ser direito hoje, pois está meio corrido aqui hoje, gostaria de saber qual a diferença entre TAXBRA e TAXBRJ, já verifiquei que no fórum de um post explanando tais diferenças, porém não sei qdo se aplica o TAXBRA e o TAXBRJ, essa escolha fica por conta do cliente? Há algumas regras para a implementação de um ou de outro?
    Agradeço novamente a ajuda de vocês.

    A difrença técnica é que na TAXBRA, todas as alíquotas etc. estão sendo armazenadas em Condition Records.
    Além disso temos uma funcionalidade na transação J1BTAX para mapear praticamente qualquer Condition (Base, Value etc.) para um campo na Nota Fiscal.
    Isso tem várias vantagens:
    - É possível resolver algumas mudanças legais com apenas Customizing quando na TAXBRJ é preciso mexer em ABAP.
    - É mais fácil analisar erros no cálculo de imposto pois todas as informações são visíveis na análise de pricing - pode até verificar qualquer acesso e ver porque certa alíquota foi encontrada. Na TAXBRJ não tem como rastrear a não ser com debug.
    - É possível configurar cenários especiais não cobertos pelo standard atraves do mapeamento.
    - É possível conectar um sistema CRM, replicando as Conditions de imposto. Em CRM não há as tabelas de impostos do Brasil - ou seja, TAXBRA é praticamente prerequisito para quem deseja utilizar CRM Sales.
    Desvantagem é que o esquema de cálculo fica um pouquinho carregado e - claro - precisa de uma configuração bem desenhada.
    Convem mencionar que pode ter limitações com algumas indústrias, por exemplo Oil&Gas funciona somente com TAXBRJ neste momento.
    Mas em geral recomendamos TAXBRA.

  • Qual a diferença do LabVIEW FPGA e o LabVIEW REAL- TIME?

    Hello,
    Could anyone help me? This question arose in my work and could not answer. Does anyone know tell me?
    Thank you.
    Solved!
    Go to Solution.

    Olá, 
    Com o LabVIEW FPGA você programa diretamente o chip FPGA presente no chassis cRIO, placas da NI Série R e single Board RIO. Você programa as E/S diretamente no chip, sendo assim uma programação de mais baixo nível. A grande vantagem do FPGA é o "paralelismo real", o que garante altas velocidades na execução das rotinas programadas.
    Assista ao webcast Introduction to LabVIEW FPGA
    Com o LabVIEW Real-Time você desenvolve aplicações que são críticas em relação a "tempo". Chamamos de aplicações "deterministicas". A idéia é que, se você tem uma rotina que deve ser executada em um tempo determinado, a diferença entre o tempo real e o que você programou seja o menor possível. Aplicações em Computadores comuns não são deterministicas, pois enquanto o LabVIEW executa uma certa rotina programada, o Windows está executando outras tarefas, monitorando a utilização de periféricos, atualizando a tela, etc.
    Real time não significa "Velocidade", mas "Confiabilidade".
    Assista ao webcast LabVIEW Real-Time: Graphical Development, Hard Real-Time Performance
    Hello, 
    With LabVIEW FPGA you program the FPGA chip itself. The FPGA chip is found into cRIO chassis, NI R-Series Boards, and NI Single board RIO. You program the I/O directly in the chip, so we consider this as a low level programing. The main FPGA advantage is the "Real Paralelism", which guarantees high speed execution programming.
    Whatch Introduction to LabVIEW FPGA webcast
    With LabVIEW Real-Time you develop called "time crictical" or "Deterministics" applications. In case of you routine must be executed in a specified period of time, the difference between the real time execution and the time you programmed is as low as possible. Commom computers programming are not deterministic, because in the meantime of executing a certain programmed routine, the OS (e.g. Windows) is running other appication tasks, monitoring peripherals like mouse and keyboard, uptading screen, etc.
    Real-Time doesn't mean "faster" but "reliable".
    Watch LabVIEW Real-Time: Graphical Development, Hard Real-Time Performance webcast
    I hope the information helps you!
    Best Regards
    Felipe Flores
    Engenharia de Aplicações
    National Instruments Brasil

  • NFE Boas discussões - Leia antes de postar

    EM DESENVOLVIMENTO - SUGESTÕES DE ADIÇÃO E REMOÇÃO SÃO BEM VINDAS ***
    Bom dia Pessoal,
    Segue abaixo uma compilação de threads de NF-e. Observação: Estas threads estão respondidas, caso tenha algo "parecido" SEMPRE crie uma nova thread, pode até referenciar a thread que você olhou, mas lembre-se de descrever seu problema, versão de SP, background...
    ERP Saída:
    Aplicação de Notas --> como procurar notas
    Criação de NF a partir de documento de devolução - BAdI alteração tipo categoria NFe
    Inutilização OK porém Status DOc. Aguardando Resposta
    Como fazer entrada no SAP de NFe´s que foram inputadas diretamente na SEFAZ
    Dúvidas entre TAXBRA e TAXBRJ
    Emissão em congingência por local de negócio e por região NFE 2.0
    Erro ao criar BAdI da Nota 1370016
    Escolha do tipo de formulario de contingencia (FS x FS-DA)
    "212 - Rejeicao: Data de emissao NF-e posterior a data de recebimento" --> timezone
    Decouple elimina GAP de numeração?
    Relacionamento entre CallRFC do Decouple com J_1BNFECHECKNUMBERRANGES
    Performance/Funcionamento J_1BNFECHECKNUMBERRANGES
    J_1BNFECHECKNUMBERRANGES - Gap Monitor
    Funcao J_1BNFE_CALL_RSNAST00
    Dúvida - Job /XNFE/UPDATE_ERP_STATUS
    Impressão automática da DANFE
    J_1BNFE_CALL_RSNAST00: erro ao ser executada em IN BACKGROUND TASK
    ERP Saída - Preenchimento tags:
    NF-e Bloco Y dados da Cobrança
    Preencher  Bloco Y dados da Cobrança   na BADI CL_NFE_PRINT
    TAG IPI não informada no XML
    Dúvida sobre preenchimento de PIS/COFINS
    NFE 2.0 - XML_ADI - XML_IMP
    Validation error: Field IT_NFE_IMP: V12 (Field NDI)
    NFE V2.0 - Tags dSaiEnt & hSaiEnt
    Nota de Importação em SP para realizar Desembaraço Aduaneiro. Dicas?
    ERP Entrada:
    Atualizar dados NFe 2.0 na Miro
    Tipo de emissão de NF-e de entrada (XML 2.00)
    NFE 10.0:
    Blog sobre SAP NFE 10.0 New
    Componente Java SLL-NFE-JWS para SLL NFe 10 New
    GRC NFE:
    Instalação GRC independente do NetWeaver atual
    Nao SAP X GRC
    Teste dos Cenários de Comunicação com a SEFAZ
    Rejeição: 218 x 420
    Rejeição por erro 539 Duplicidade de NF-e, com diferença na Chave de Acesso
    Problemas ao entrar em Contingência SCAN
    Loop programa /XNFE/PROCESS_REPORTS
    /XNFE/CORE_KPRO_XML_READ - Problemas com download de documentos XML
    Validation error: Field (INFADPROD) ->  Varios espaços "000   00  00000   "
    GRC versão 7.1
    Diagnóstico -unable to create a socket- Represando lotes
    NT 2011.002 Hot --> sugestão de código para mascarar dados do destinatário em Homologação
    CC-e "MESSAGE_NOT_USED" New
    GRC NFE - B2B:
    Cadastro de CNPJ para interface NFB2B_procNFe_OB --> sugestão automatização por email
    Falha no Envio B2B
    B2B Entrada
    B2B Versão 2.0
    B2B NFE 2.0 - Erro Envio de e-mail dinâmico
    Múltiplas NFes de entrada em um email
    Texto dinâmico no corpo do e-mail B2B Outbound
    GRC NFE - Certificado:
    Quebra linha SignatureValue & X509Certificate - Visualizador NF-e
    Problema com certificado
    HSM e certificados para SSL
    GRC NFE - Tunning e outros:
    SWF_INB_CONF (2)
    SWF_INB_CONF
    GRC: Batch com status Request Sent parados --> como criar o alerta do GRC
    SAP NFE v2 namespace 006
    Business System não aparece Integration Builder
    Configuração GRC - NF-e-Main menu
    INTERFACE_REGISTRATION_ERROR
    SPED:
    e-PIS/Cofins

    Aproveitando essa thread sobre Nfe.
    Um dos grandes problemas relacionados a nfe são as rejeições de nota. Não se encontra em lugar algum descrições mais elaboradas sobre as rejeições, muito menos as formas de solução para cada uma delas. Visando ajudar desenvolvedores e usuários que emitem notas em qualquer sistema, foi criado um "forum" para descrever cada uma das possíveis rejeições de nota, assim como suas possíveis causas e soluções.
    Qualquer um pode dar sua contribuição, no entando, como não existe cadastro no site, a resposta precisa ser aprovada pelo moderador.
    O "fórum" acabou de entrar no ar e ainda está incompleto. Conto com a ajuda de todos para melhorá-lo. Seque o link:
    EDITADO PELA MODERAÇÃO
    Obrigado a todos,
    Edited by: Henrique Pinto on Sep 2, 2011 10:09 PM

  • Verificação de NF-e de entrada dispara proxy da versão errada

    Pessoal,
    estou fazendo alguns testes com o B2B de entrada e notei um possível BUG/Falha na minha customizing.
    Quando envio uma NF-e na versão 2.0 para a interface NFB2B*, ele entra normalmente no GRC e grava na /XNFE/XMLIN. O problema é quando ele dispara a interface NFESC para verificação do status da mesma na SEFAZ. No caso, ao invés de chamar a interface do namespace 006 ele chama a do namespace 005a.
    Olhando o código da função /XNFE/RECEIVE_INCOMING_B2B, depois de efetuar a gravação da NFE na /XNFE/XMLIN, ele chama o FM /XNFE/GET_XML_VERSION passando a UF, TIPO AMBIENTE e ELEMENT. Aqui nesse ponto, ele vai na tabela de customizing /XNFE/TSRV fazendo um SELECT SINGLE sem passar a chave completa da tabela (ok, se a função vai justamente pegar a versão do XML, que faz parte da chave primaria da tabela, não faria sentido ele usar a chave completa, mas...), pegando somente o PRIMEIRO registro encontrado.
    No meu caso, tenho customizado na SPRO as duas versões de XML para verificação de status do servico, sendo 005a e 006.
    Como eu imagino que seja possível utilizar as duas versões de XML em paralelo, considerando também que o customizing permite que eu insira registros para as duas versões nessa tabela, eu penso que isso reflete uma abordagem errada na forma de definir qual é a versão do XML da NF-e de entrada.
    IMHO, deveria-se verificar a versão do XML da NF-e de entrada pelo próprio XML entrado(tem os atributos de versao) e não pelo que está na customizing do GRC. Identificada a versão do XML que entrou, aí sim verificaria no GRC se ele suporta essa versão e daria continuidade no processo caso suporte, gerando log de erro caso não suporte.
    Alguém já passou por isso? É falha na minha customizing ou posso abrir chamado?
    Grato,
    José Nunes

    Oi Carlos.
    No meu caso e acredito que outras empresas emitimos notas (outra série) através de outro sistema que não o SAP. Ex. notas fiscais de importação.
    Na verdade tenho um cenário um pouco mais complexo; pois temos hoje diferentes fábricas, com diferentes aplicações se comunicando via GRC. Entre elas uma (sistema próprio) cujo desenvolvimento foi feito todo nos EUA com todas as regras e requisitos tributários para emissão de nota fiscal.
    As mudanças de versão já são complexas por si só e ainda ter que "colocar" todos num mesmo time se torna ainda maior. Por diversas questões... recursos, demanda do mercado...
    Abraço
    Eduardo
    Edited by: Eduardo Chagas on Aug 18, 2010 9:17 PM

  • NFE 3.10 layout de conteúdo atualização PI/XI

    NFE 3.10 layout de conteúdo atualização XI
    Olá Experts,
    Estamos planejando fazer o upgrade para NFE layout de 3.10. Tenho consultas soem regardign os chnages PI / XI para a atualização. De acordo com a guia de disposição é mencionado:
    Os novos WebServices precisam de um novo conjunto de configuração PI - os cenários de integração correspondentes são entregues com namespace http://sap.com/xi/NFE/008. Note que você também precisa configurar os Cenários de Integração para emissão de eventos do mesmo espaço! A única atualização para Layout 3.10 exceção são os dois cenários de integração necessários para o XML download que você ainda pode acessar emhttp :/ / sap.com/xi/NFE/006.
    Minhas consultas são:
    1. Será que precisamos para configurar cada cenário usando 008 namespace? Por exemplo BATCH_AEX_WebAS_Outbound_Batch ou ETB2B_AEX_WebAS_Outbound_B2B_Event. Será que precisamos para configurar estes também no novo namespace?
    2. Uma vez que configurar as interfaces no novo namespace ou seja, 008. Depois disso deve ser desativar a configuração do 006 ou deixá-lo como ele é.
    Se alguém está tendo uma correlação precisa para o qual será necessária todas as alterações PI / XI, em seguida, por favor, compartilhe.
    obrigado
    Gaurav

    Obrigado novamente,
    Outra consulta está no portal do governo para links webservice eu descobri há certas regiões para as quais não existe uma versão 3.10 webservices URL definida. Por exemplo Sefaz Ceará - (CE) e Sefaz Paraná - (PR).
    Além disso, algumas outras regiões não têm wbservice 3.10 URL para todos os serviços. Por exemplo SEFAZ_RS - No 3.10 serviços para estes? :
    NfeConsultaCadastro
    NfeConsultaDest
    NfeDownloadNF
    A única agência adequada / região que encontrei é de SEFAZ_SP que tem conjunto completo de URL webservice.
    Você pode por favor, compartilhe yor views / comentários.
    obrigado
    Gaurav Ranjan

  • About material master data batch input

    hello
        i wrote a batch input for material master data. but it can't work ,i can't use it to create material.hope someone help me!thanks.code is below.
    report z_mat_batchinput no standard page heading
          line-size 255 message-id YB.
           mat batch input
    include bdcrecx1.
    include .
    tables: mara,marm,MARC,MARD,T134,NRIV,T006A,T023,T001W,T001L,
            TVKO,TVTW,T025,TTGR,TLGR,TVKWZ,T006.
    data: DIMID like t006-DIMID.
    data: flag, K, tmp.
    DATA: X TYPE I.
    ************ÉÏÔØÎļþÄÚ±í************************
    data: begin of record occurs 0,
            MATNR(018),        " ÎïÁϺÅ
            MTART(004),        " ÎïÁÏÀàÐÍ
    **generaldata1**
            MAKTX(040),        " ÎïÁÏÃèÊö
           EAKTX(040),        " Ó¢ÎÄÃèÊö
            MEINS(003),        " »ù±¾¼ÆÁ¿µ¥Î»
            MATKL(009),        " ÎïÁÏ×é
            BISMT(018),        " ¾ÉÎïÁϺÅ
           EXTWG(018),        " ÍⲿÎïÁÏ×é
           SPART(002),        " ²¿ÃÅ
            MTPOS_MARA(004),   " ÆÕͨÏîÄ¿Àà±ð×é
            BRGEW(017),        " ëÖØ
            GEWEI(003),        " ÖØÁ¿µ¥Î»
            NTGEW(017),        " ¾»ÖØ
            VOLUM(017),        " Ìå»ý
            VOLEH(003),        " Ìå»ýµ¥Î»
            GROES(032),        " Á¿¸Ù
            MAGRV(004),        " ÎïÁÏ×éµÄ°ü×°Îï
    **generaldata2**
            NORMT(018),        " ¹¤Òµ±ê×¼ÃèÊö
            FERTH(018),        " ÀàÐÍ
            WRKST(048),        " ¹æ¸ñ
    **generaldata1**
           EAN11(018),        " ²úÆ·±íʶÂë
    **generaldata2**
           ZEIAR(003),        " ÎĵµÀàÐÍ£¬ºÏÀí´¢±¸ÖÜתÆÚ
            WERKS(004),        " ¹¤³§
            VKORG(004),        " ÏúÊÛ×éÖ¯
            VTWEG(002),        " ·ÖÏúÇþµÀ
    **salesorg 1**
           VRKME(003),        " ÏúÊÛµ¥Î»
           VMREN(006),        " ÏúÊÛµ¥Î»×ª»»Òò×Ó
           VMREZ(006),        " »ù±¾µ¥Î»×ª»»Òò×Ó
            SPART(002),        " ²úÆ·×é
            DWERK(004),        " ½»»õ¹¤³§
            TAXKM(001),        " ÎïÁÏË°·ÖÀà
    **salesorg 2**
            KONDM(002),        " ÎïÁ϶¨¼Û×é
            KTGRM(002),        " ¿ÆÄ¿ÉèÖÃ×é
           MVGR1(003),                                         " ÎïÁÏ×é 1
           MVGR2(003),                                         " ÎïÁÏ×é 2
            MTPOS(004),        " ÏîÄ¿Àà±ð×é
           VERSG(001),        " ÎïÁÏͳ¼Æ×é
    **ÏúÊÛ£ºÒ»°ã/¹¤³§Êý¾Ý**
            MTVFP(002),        " ¿ÉÓÃÐÔ¼ì²é
            XCHPF(001),        " Åú´Î¹ÜÀí
           YCHPF(001),        " ÅúÁ¿¹ÜÀí
            TRAGR(004),        " ÔËÊä×é
            ladgr(004),        " ×°ÔØ×é
    **pur**
           BSTME(003),        " ¶©µ¥µ¥Î»
           UMREZ(006),        " »ù±¾µ¥Î»×ª»»Òò×Ó
           UMREN(006),        " ¶©µ¥µ¥Î»×ª»»Òò×Ó
           WEBAZ(003),        " ÊÕ»õ´¦Àíʱ¼ä
            EKGRP(003),        " ²É¹º×é
          LGORT(004),        " ¿â´æµØ
    **Ò»°ã¹¤³§Êý¾Ý/²Ö´¢1**
           AUSME(003),        " ·¢»õµ¥Î»
           UMREJ(006),        " »ù±¾µ¥Î»×ª»»Òò×Ó
           UMREF(006),        " ·¢»õµ¥Î»×ª»»Òò×Ó
           XCHPF(001),        " ÅúÁ¿¹ÜÀí
    **MRP 1**
           DISGR(004),        " MRP×é
            DISMM(002),        " MRPÀàÐÍ
           FXHOR(003),        " ¼Æ»®µÄʱ½ì
            DISPO(003),        " MRP¿ØÖÆÕß
            DISLS(002),        " ÅúÁ¿
            MAABC(001),        " ABC±êʶ
           BSTFE(018),        " ¹Ì¶¨ÅúÁ¿´óС
    **MRP 2**
           RESKZ(001),        " »ñÈ¡ÀàÐÍ
            BESKZ(001),        " ²É¹ºÀàÐÍ
           SOBSL(002),        " ÌØÊâ²É¹ºÀà
           LGPRO(004),        " ·¢»õ²Ö´¢µØµã
           RGEKZ(001),        " ·´³å
            PLIFZ(003),        " ¼Æ»®½»»õʱ¼ä
           VEBAZ(003),        " ÊÕ»õ´¦Àíʱ¼ä
            DZEIT(008),        "×ÔÖÆÉú²ú
            FHORI(003),        " ¼Æ»®±ß¼ÊÂë
           EISBE(018),        " °²È«¿â´æ
    **MRP 3**
            PERKZ(001),        " ÆÚ¼ä±êʶ
            STRGR(002),        " ²ßÂÔ×é
           VRMOD(001),        " ÏûºÄģʽ
           VINT1(003),        " ÄæÏòÏûºÄÆÚ¼ä
           VINT2(003),        " ÏòÇ°ÏûºÄÆÚ¼ä
            NTVFP(002),        " ¿ÉÓÃÐÔ¼ì²é
    **MRP 4**
           SAUFT(001),        " Öظ´ÖÆÔì±êÖ¾
           SFEPR(004),        " Öظ´Éú²ú²ÎÊýÎļþ
    **¹¤×÷¼Æ»®**
           FEVOR(003),        " Éú²úµ÷¶ÈÔ±
           FRTME(003),        " Éú²úµ¥Î»
           SMREZ(006),        " »ù±¾µ¥Î»×ª»»Òò×Ó
           SMREN(006),        " Éú²úµ¥Î»×ª»»Òò×Ó
           UEETK(001),        " ÎÞÏÞÖƹýÁ¿½»»õ
    **»á¼Æ 1**
            BKLAS(004),        " ÆÀ¹ÀÀà
           BWTTY(001),        " ¹À¼Û·ÖÀà
            VPRSV(001),        " ¼Û¸ñ¿ØÖÆ
            PEINH(006),        " ¼Û¸ñµ¥Î»
            VERPR(015),        " Òƶ¯Æ½¾ù¼Û
            STPRS(015),        " ±ê×¼¼Û
    **»á¼Æ 2**
           BWPRH(014),        " ÉÌÒµ¼Û¸ñ 1
    **³É±¾ 1**
           LOSGR(018),        " ÅúÁ¿³É±¾ºËËã
    **³É±¾ 2**
           ZPLP1(014),        " ¼Æ»®¼Û¸ñ 1
           ZPLD1(010),        " ¼Æ»®ÈÕÆÚ 1
    **qm**
            ART1(8),            "¼ìÑéÀàÐÍ1
            AKTIV1(1),          "ÒѼ¤»î
            QMPUR(1),             "¼¤»î²É¹ºÖÐµÄ QM
            SSQSS(8),          "QM ¿ØÖÆÂë¡¢
           QMATV(8),          "QM¼ìÑéÉèÖÃ
           ART2(8),            "¼ìÑéÀàÐÍ2
           AKTIV2(6),          "ÒѼ¤»î
           ART3(8),            "¼ìÑéÀàÐÍ3
           AKTIV3(6),          "ÒѼ¤»î
          end of record.
    ************ÏÂÔظñʽ/´íÎóÎļþÄÚ±í**************
    data: begin of record1 occurs 0,
            MATNR(018),        " ÎïÁϺÅ
            MTART(008),        " ÎïÁÏÀàÐÍ
    **»ù±¾Êý¾Ý1**
            MAKTX(040),        " ÎïÁÏÃèÊö
           EAKTX(040),        " Ó¢ÎÄÃèÊö
            MEINS(013),        " »ù±¾¼ÆÁ¿µ¥Î»
            MATKL(009),        " ÎïÁÏ×é
            BISMT(018),        " ¾ÉÎïÁϺÅ
           EXTWG(018),        " ÍⲿÎïÁÏ×é
           SPART(002),        " ²¿ÃÅ
            MTPOS_MARA(004),   " ÆÕͨÏîÄ¿Àà±ð×é
            BRGEW(017),        " ëÖØ
            GEWEI(008),        " ÖØÁ¿µ¥Î»
            NTGEW(017),        " ¾»ÖØ
            VOLUM(017),        " Ìå»ý
            VOLEH(008),        " Ìå»ýµ¥Î»
            GROES(032),        " Á¿¸Ù
            MAGRV(014),        " ÎïÁÏ×éµÄ°ü×°Îï
    **»ù±¾Êý¾Ý2**
            NORMT(018),        " ¹¤Òµ±ê×¼ÃèÊö
            FERTH(018),        " ÀàÐÍ
            WRKST(048),        " ¹æ¸ñ
    **»ù±¾Êý¾Ý1**
           EAN11(018),        " ²úÆ·±íʶÂë
    **»ù±¾Êý¾Ý2**
           ZEIAR(003),        " ÎĵµÀàÐÍ£¬ºÏÀí´¢±¸ÖÜתÆÚ
            WERKS(004),        " ¹¤³§
            VKORG(008),        " ÏúÊÛ×éÖ¯
            VTWEG(008),        " ·ÖÏúÇþµÀ
    **ÏúÊÛ×éÖ¯ 1**
           VRKME(003),        " ÏúÊÛµ¥Î»
           VMREN(006),        " ÏúÊÛµ¥Î»×ª»»Òò×Ó
           VMREZ(006),        " »ù±¾µ¥Î»×ª»»Òò×Ó
            SPART(006),        " ²úÆ·×é
            DWERK(008),        " ½»»õ¹¤³§
            TAXKM(010),        " ÎïÁÏË°·ÖÀà
    **ÏúÊÛ×éÖ¯ 2**
            KONDM(010),        " ÎïÁ϶¨¼Û×é
            KTGRM(010),        " ¿ÆÄ¿ÉèÖÃ×é
           MVGR1(003),                                         " ÎïÁÏ×é 1
           MVGR2(003),                                         " ÎïÁÏ×é 2
            MTPOS(010),        " ÏîÄ¿Àà±ð×é
           VERSG(001),        " ÎïÁÏͳ¼Æ×é
    **ÏúÊÛ£ºÒ»°ã/¹¤³§Êý¾Ý**
            MTVFP(010),        " ¿ÉÓÃÐÔ¼ì²é
            XCHPF(008),        " Åú´Î¹ÜÀí
           YCHPF(001),        " ÅúÁ¿¹ÜÀí
            TRAGR(006),        " ÔËÊä×é
            ladgr(006),        " ×°ÔØ×é
    **²É¹º**
           BSTME(003),        " ¶©µ¥µ¥Î»
           UMREZ(006),        " »ù±¾µ¥Î»×ª»»Òò×Ó
           UMREN(006),        " ¶©µ¥µ¥Î»×ª»»Òò×Ó
           WEBAZ(003),        " ÊÕ»õ´¦Àíʱ¼ä
            EKGRP(006),        " ²É¹º×é
          LGORT(004),        " ¿â´æµØ
    **Ò»°ã¹¤³§Êý¾Ý/²Ö´¢1**
           AUSME(003),        " ·¢»õµ¥Î»
           UMREJ(006),        " »ù±¾µ¥Î»×ª»»Òò×Ó
           UMREF(006),        " ·¢»õµ¥Î»×ª»»Òò×Ó
           XCHPF(001),        " ÅúÁ¿¹ÜÀí
    **MRP 1**
           DISGR(004),        " MRP×é
            DISMM(009),        " MRPÀàÐÍ
           FXHOR(003),        " ¼Æ»®µÄʱ½ì
            DISPO(011),        " MRP¿ØÖÆÕß
            DISLS(004),        " ÅúÁ¿
            MAABC(007),        " ABC±êʶ
           BSTFE(018),        " ¹Ì¶¨ÅúÁ¿´óС
    **MRP 2**
           RESKZ(001),        " »ñÈ¡ÀàÐÍ
            BESKZ(008),        " ²É¹ºÀàÐÍ
           SOBSL(002),        " ÌØÊâ²É¹ºÀà
           LGPRO(004),        " ·¢»õ²Ö´¢µØµã
           RGEKZ(001),        " ·´³å
            PLIFZ(012),        " ¼Æ»®½»»õʱ¼ä
           VEBAZ(003),        " ÊÕ»õ´¦Àíʱ¼ä
            DZEIT(008),        "×ÔÖÆÉú²ú
            FHORI(010),        " ¼Æ»®±ß¼ÊÂë
           EISBE(018),        " °²È«¿â´æ
    **MRP 3**
            PERKZ(008),        " ÆÚ¼ä±êʶ
            STRGR(006),        " ²ßÂÔ×é
           VRMOD(001),        " ÏûºÄģʽ
           VINT1(003),        " ÄæÏòÏûºÄÆÚ¼ä
           VINT2(003),        " ÏòÇ°ÏûºÄÆÚ¼ä
            NTVFP(010),        " ¿ÉÓÃÐÔ¼ì²é
    **MRP 4**
           SAUFT(001),        " Öظ´ÖÆÔì±êÖ¾
           SFEPR(004),        " Öظ´Éú²ú²ÎÊýÎļþ
    **¹¤×÷¼Æ»®**
           FEVOR(003),        " Éú²úµ÷¶ÈÔ±
           FRTME(003),        " Éú²úµ¥Î»
           SMREZ(006),        " »ù±¾µ¥Î»×ª»»Òò×Ó
           SMREN(006),        " Éú²úµ¥Î»×ª»»Òò×Ó
           UEETK(001),        " ÎÞÏÞÖƹýÁ¿½»»õ
    **»á¼Æ 1**
            BKLAS(006),        " ÆÀ¹ÀÀà
           BWTTY(001),        " ¹À¼Û·ÖÀà
            VPRSV(008),        " ¼Û¸ñ¿ØÖÆ
            PEINH(008),        " ¼Û¸ñµ¥Î»
            VERPR(015),        " Òƶ¯Æ½¾ù¼Û
            STPRS(015),        " ±ê×¼¼Û
    **»á¼Æ 2**
           BWPRH(014),        " ÉÌÒµ¼Û¸ñ 1
    **³É±¾ 1**
           LOSGR(018),        " ÅúÁ¿³É±¾ºËËã
    **³É±¾ 2**
           ZPLP1(014),        " ¼Æ»®¼Û¸ñ 1
           ZPLD1(010),        " ¼Æ»®ÈÕÆÚ 1
    **ÖÊÁ¿¹ÜÀí**
            ART1(8),            "¼ìÑéÀàÐÍ1
            AKTIV1(6),          "ÒѼ¤»î
            QMPUR(010),             "¼¤»î²É¹ºÖÐµÄ QM
            SSQSS(8),          "QM ¿ØÖÆÂë¡¢
           QMATV(8),          "QM¼ìÑéÉèÖÃ
           ART2(8),            "¼ìÑéÀàÐÍ2
           AKTIV2(6),          "ÒѼ¤»î
           ART3(8),            "¼ìÑéÀàÐÍ3
           AKTIV3(6),          "ÒѼ¤»î
          end of record1.
    selection-screen begin of block 0 with frame title text-001.
    selection-screen begin of line .
    selection-screen position 1.
    parameters: test like rkec1-test .
    selection-screen
      comment 3(4) text-004 for field test.
    selection-screen position 26.
    parameters: oldfile like rlgrap-filename.
    selection-screen
      comment 9(17) text-003 for field oldfile.
    selection-screen: end of line.
    selection-screen begin of line.
    selection-screen position 1.
    parameters: dnldflag like rkec1-test default 'X'.
    selection-screen
      comment 3(4) text-005 for field dnldflag.
    selection-screen position 26.
    parameters: outfile like rlgrap-filename .
    selection-screen
      comment 9(17) text-006 for field outfile.
    selection-screen: end of line.
    selection-screen end of block 0 .
    SELECTION-SCREEN BEGIN OF BLOCK 1 WITH FRAME TITLE TEXT-002.
    selection-screen begin of line.
    selection-screen position 1.
    PARAMETERS: GEN1 LIKE RKEC1-TEST.
    selection-screen
      comment 3(9) text-007 for field GEN1.
    selection-screen position 26.
    PARAMETERS: GEN2 LIKE RKEC1-TEST.
    selection-screen
      comment 28(9) text-008 for field GEN2.
    selection-screen end of line.
    selection-screen begin of line.
    selection-screen position 1.
    PARAMETERS: SALORG1 LIKE RKEC1-TEST.
    selection-screen
      comment 3(21) text-009 for field SALORG1.
    selection-screen position 26.
    PARAMETERS: SALORG2 LIKE RKEC1-TEST.
    selection-screen
      comment 28(21) text-010 for field SALORG2.
    selection-screen position 51.
    PARAMETERS: SALPLANT LIKE RKEC1-TEST.
    selection-screen
      comment 53(19) text-011 for field SALPLANT.
    selection-screen end of line.
    selection-screen begin of line.
    selection-screen position 1.
    PARAMETERS: PURCHASE LIKE RKEC1-TEST.
    selection-screen
      comment 3(21) text-012 for field PURCHASE.
    selection-screen position 26.
    PARAMETERS: PLTSTRG1 LIKE RKEC1-TEST.
    selection-screen
      comment 28(21) text-018 for field PLTSTRG1.
    selection-screen end of line.
    selection-screen begin of line.
    selection-screen position 1.
    PARAMETERS: MRP1 LIKE RKEC1-TEST.
    selection-screen
      comment 3(4) text-013 for field MRP1.
    selection-screen position 13.
    PARAMETERS: MRP2 LIKE RKEC1-TEST.
    selection-screen
      comment 15(4) text-014 for field MRP2.
    selection-screen position 26.
    PARAMETERS: MRP3 LIKE RKEC1-TEST.
    selection-screen
      comment 28(4) text-015 for field MRP3.
    selection-screen position 37.
    PARAMETERS: MRP4 LIKE RKEC1-TEST.
    selection-screen
      comment 39(4) text-016 for field MRP4.
    selection-screen position 51.
    PARAMETERS: PLANTSTR LIKE RKEC1-TEST.
    selection-screen
      comment 53(8) text-017 for field PLANTSTR.
    selection-screen end of line.
    selection-screen begin of line.
    selection-screen position 1.
    PARAMETERS: QAU LIKE RKEC1-TEST.
    selection-screen
      comment 3(8) text-023 for field QAU.
    selection-screen position 13.
    PARAMETERS: ACC1 LIKE RKEC1-TEST.
    selection-screen
      comment 15(5) text-019 for field ACC1.
    selection-screen position 26.
    PARAMETERS: ACC2 LIKE RKEC1-TEST.
    selection-screen
      comment 28(5) text-020 for field ACC2.
    selection-screen position 37.
    PARAMETERS: COR1 LIKE RKEC1-TEST.
    selection-screen
      comment 39(5) text-021 for field COR1.
    selection-screen position 51.
    PARAMETERS: COR2 LIKE RKEC1-TEST.
    selection-screen
      comment 53(5) text-022 for field COR2.
    selection-screen end of line.
    SELECTION-SCREEN END OF BLOCK 1.
    at selection-screen on value-request for oldfile.
      call function 'KD_GET_FILENAME_ON_F4'
           EXPORTING
                mask      = ',Îı¾Îļþ(ÖƱí·û·Ö¸ô),*.txt'
                static    = 'X'
           CHANGING
                file_name = oldfile.
    at selection-screen on value-request for outfile.
      call function 'KD_GET_FILENAME_ON_F4'
           EXPORTING
                mask      = ',Microsoft Excel¹¤×÷²¾,*.xls'
                static    = 'X'
           CHANGING
                file_name = outfile.
    initialization.
    ******µÃµ½ÎļþĿ¼*******
      call function 'WS_QUERY'
           EXPORTING
                query  = 'CD'
           IMPORTING
                return = outfile.
      if sy-subrc <> 0.
        message e005 with outfile.
      endif.
      oldfile = outfile.
      concatenate outfile 'mat_fat' into outfile.
    *ÅúÊäÈëĬÈÏÃû³Æ
      group = 'MATBATCHIN'.
    start-of-selection.
      if dnldflag eq 'X' and not ( outfile is initial ).
        perform download_data.
        stop.
      endif.
      perform upload_data.
      if test = ' '.
    *ÊÓͼ²ÎÊý¼ì²é
        IF ( GEN1 NE 'X' AND GEN2 NE 'X' AND SALORG1 NE 'X'
           AND SALORG2 NE 'X' AND SALPLANT NE 'X'
           AND PURCHASE NE 'X' AND PLTSTRG1 NE 'X'
           AND MRP1 NE 'X' AND MRP2 NE 'X' AND MRP3 NE 'X'
               AND MRP4 NE 'X' AND PLANTSTR NE 'X'
           AND ACC1 NE 'X' AND ACC2 NE 'X'
           AND COR1 NE 'X' AND COR2 NE 'X' and qau ne 'X' ) .
          MESSAGE E000 WITH 'ÇëÑ¡ÔñÐèά»¤ÊÓͼ'.
        ENDIF.
        perform open_group.
        SORT RECORD BY WERKS MATNR.
        loop at record.
          perform bdc_fill.
          perform bdc_transaction using 'MM01'.
          clear: bdcdata.
          refresh: bdcdata.
        endloop.
        perform close_group.
      else.
        perform file_check.
      endif.
    end-of-selection.
    *&      Form  UPLOAD_DATA
          ÉÏÔØÅúÊäÈëÊý¾Ý
    -->  p1        text
    <--  p2        text
    form upload_data.
      call function 'WS_UPLOAD'
           EXPORTING
                filename                = oldfile
                filetype                = 'DAT'
           TABLES
                data_tab                = record
           EXCEPTIONS
                conversion_error        = 1
                file_open_error         = 2
                file_read_error         = 3
                invalid_table_width     = 4
                invalid_type            = 5
                no_batch                = 6
                unknown_error           = 7
                gui_refuse_filetransfer = 8
                customer_error          = 9
                others                  = 10.
      if sy-subrc <> 0.
        message E000 with 'ÇëÊäÈëÉÏÔØÎļþ'.
      endif.
      read table record with key MATNR = '**'.
      if sy-tabix lt 1.
        message E000 with 'ÉÏÔØÎļþÎļþÍ·ÓëÊý¾ÝÖ®¼äÎÞ**'.
      endif.
      delete record from 1 to sy-tabix.
    endform.                               " UPLOAD_DATA
    *&      Form  BDC_FILL
          ÅúÊäÈë
    -->  p1        text
    <--  p2        text
    form bdc_fill.
      data: N type I,
            M type I,
            S_MATNR(018),
            test(1) type N.
      PERFORM BDC_FILL_INITALSCR.    "³õʼÆÁÄ»
      tmp = '0'.
      condense record-matnr no-gaps.
      test =  record-matnr(1).
      if test <> ''.
        M = STRLEN( RECORD-MATNR ).
        M = 18 - M.
        DO M TIMES.
          CONCATENATE '0' RECORD-MATNR INTO S_MATNR.
          RECORD-MATNR = S_MATNR.
        ENDDO.
      endif.
    **ÅжÏÎïÁÏ»ù±¾ÊÓͼÊÇ·ñÒѾ±»Î¬»¤¹ý**
      SELECT SINGLE * FROM MARA WHERE MATNR = RECORD-MATNR.
      IF SY-SUBRC NE 0.
        K = '0'.
      Else.
        condense MARA-PSTAT no-gaps.
        N = strlen( mara-pstat ).
        M = 0.
        record-meins = mara-meins.
        do N times.
          K = MARA-PSTAT+M.
          IF K = 'K'.
            EXIT.
          ENDIF.
          M = M + 1.
        enddo.
      ENDIF.
      IF ( ( GEN1 EQ 'X' OR GEN2 EQ 'X' ) AND SALORG1 NE 'X'
         AND SALORG2 NE 'X' AND SALPLANT NE 'X'
         AND PURCHASE NE 'X' AND PLTSTRG1 NE 'X'
         AND MRP1 NE 'X' AND MRP2 NE 'X' AND MRP3 NE 'X'
             AND MRP4 NE 'X' AND PLANTSTR NE 'X'
         AND ACC1 NE 'X' AND ACC2 NE 'X'
         AND COR1 NE 'X' AND COR2 NE 'X' and qau ne 'X' ) .
        IF K EQ 'K'.
          perform bdc_dynpro      using 'SAPLMGMM' '0070'.
          perform bdc_field       using 'BDC_CURSOR'
                                        'MSICHTAUSW-DYTXT(15)'.
          perform bdc_field       using 'BDC_OKCODE'
                                        '/N'.
        ELSE.
          PERFORM BDC_FILL_CHOICEVIEW.   "Ñ¡ÔñÊÓͼ
        ENDIF.
      ELSE.
        PERFORM BDC_FILL_CHOICEVIEW.   "Ñ¡ÔñÊÓͼ
        PERFORM BDC_FILL_ORGVIEW.      "×éÖ¯¼¶±ð
      ENDIF.
      TRANSLATE record-MEINS TO UPPER CASE.
    TRANSLATE record-BSTME TO UPPER CASE.
    TRANSLATE record-VRKME TO UPPER CASE.
    TRANSLATE record-FRTME TO UPPER CASE.
    TRANSLATE record-AUSME TO UPPER CASE.
      if gen1 eq 'X'.
        IF K NE 'K'.
          PERFORM GENERALDATA1.
        ENDIF.
      endif.
      if gen2 eq 'X'.
        IF K NE 'K'.
          perform generaldata2.
        ENDIF.
      endif.
      if salorg1 eq 'X'.
        perform salorg1.
      endif.
      if salorg2 eq 'X'.
        perform salorg2.
      endif.
      if salplant eq 'X'.
        perform salplant.
      endif.
      if purchase eq 'X'.
        perform purchasedata.
      endif.
      if mrp1 eq 'X'.
        perform MRP1.
      endif.
      if mrp2 eq 'X'.
        perform MRP2.
      endif.
      if mrp3 eq 'X'.
        perform MRP3.
      endif.
      if mrp4 eq 'X'.
        perform MRP4.
      endif.
      if PLANTSTR eq 'X'.
        perform PLANTSTR.
      endif.
      if PLTSTRG1 eq 'X'.
        perform PLTSTRG1.
      endif.
      if qau eq 'X'.
        perform qualitydata.
      endif.
      if ACC1 eq 'X'.
        perform ACC1DATA.
      endif.
      if ACC2 eq 'X'.
        perform ACC2DATA.
      endif.
      if COR1 eq 'X'.
        perform COR1DATA.
      endif.
      if COR2 eq 'X'.
        perform COR2DATA.
      endif.
      perform BDC_SAVE.
    endform.                               " BDC_FILL
    *&      Form  GENERALDATA1
          Ò»°ãÊý¾Ý 1
    -->  p1        text
    <--  p2        text
    form generaldata1.
      perform bdc_dynpro      using 'SAPLMGMM' '4004'.
      perform bdc_field       using 'BDC_OKCODE'
                                    "'=ZU01'.
                                    '/00'.
      perform bdc_field       using 'MAKT-MAKTX'
                                    record-MAKTX.       " ÎïÁÏÃèÊö
      perform bdc_field       using 'MARA-MEINS'
                                    record-MEINS.       " »ù±¾¼ÆÁ¿µ¥Î»
      perform bdc_field       using 'MARA-MATKL'
                                    record-MATKL.       " ÎïÁÏ×é
      perform bdc_field       using 'MARA-BISMT'
                                    record-BISMT.
    perform bdc_field       using 'MARA-EXTWG'
                                   record-EXTWG.
    perform bdc_field       using 'MARA-SPART'
                                   record-SPART.
      perform bdc_field       using 'MARA-MTPOS_MARA'
                                    record-MTPOS_MARA.
      perform bdc_field       using 'BDC_CURSOR'
                                    'MARA-GROES'.
      perform bdc_field       using 'MARA-BRGEW'
                                    record-BRGEW.
      if record-gewei = '' and ( salorg1 = 'X' or salorg2 = 'X'
                           or salplant = 'X' ).
        perform bdc_field       using 'MARA-GEWEI'
                                      'KG'.              " ÖØÁ¿µ¥Î»
      else.
        perform bdc_field       using 'MARA-GEWEI'
                                      record-GEWEI.      " ÖØÁ¿µ¥Î»
      endif.
      perform bdc_field       using 'MARA-NTGEW'
                                    record-NTGEW.
      perform bdc_field       using 'MARA-VOLUM'
                                    record-VOLUM.
      perform bdc_field       using 'MARA-VOLEH'
                                    record-VOLEH.
      perform bdc_field       using 'MARA-GROES'
                                    record-GROES.
    condense record-EAN11 no-gaps.
    if record-EAN11 <> ''.
       perform bdc_field       using 'MARA-EAN11'
                                     record-EAN11.
       perform bdc_field       using 'MARA-NUMTP'
                                     'HT'.
    endif.
      perform bdc_field       using 'MARA-MAGRV'
                                    record-MAGRV.
    perform bdc_dynpro      using 'SAPLMGMM' '4300'.
    perform bdc_field       using 'BDC_OKCODE'
                                   '=ZU02'.
    condense record-EAKTX no-gaps.
    if record-EAKTX <> ''.
       perform bdc_field       using 'SKTEXT-SPRAS(2)'
                                     'EN'.
       perform bdc_field       using 'SKTEXT-MAKTX(2)'
                                     record-EAKTX.
    endif.
    perform bdc_dynpro      using 'SAPLMGMM' '4300'.
    perform bdc_field       using 'BDC_OKCODE'
                                   '=MAIN'.
    if record-meins <> 'PAK'.
       perform bdc_field       using 'SMEINH-UMREN(05)'
                                     '1'.
       perform bdc_field       using 'SMEINH-MEINH(05)'
                                     'PAK'.
       perform bdc_field       using 'SMEINH-UMREZ(05)'
                                     '1'.
    endif.
      perform bdc_dynpro      using 'SAPLMGMM' '4004'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '/00'.
    endform.                               " GENERALDATA
    *&      Form  generaldata2
          Ò»°ãÊý¾Ý 2
    -->  p1        text
    <--  p2        text
    FORM generaldata2.
      perform bdc_dynpro      using 'SAPLMGMM' '4004'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '/00'.
      perform bdc_field       using 'MAKT-MAKTX'
                                    record-MAKTX.
      perform bdc_field       using 'BDC_CURSOR'
                                    'MARA-NORMT'.
      condense record-ferth no-gaps.
      if record-ferth <> ''.
        perform bdc_field       using 'MARA-FERTH'
                                      record-FERTH.
      endif.
      perform bdc_field       using 'MARA-NORMT'
                                    record-NORMT.
      perform bdc_field       using 'MARA-WRKST'
                                    record-WRKST.
    perform bdc_field       using 'MARA-ZEIAR'
                                   record-ZEIAR.
    ENDFORM.                    " generaldata2
    *&      Form  salorg1
          ÏúÊÛ×éÖ¯ 1
    -->  p1        text
    <--  p2        text
    FORM salorg1.
      condense RECORD-SPART no-gaps.
      PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '4000'.
      PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                    '/00'.
      PERFORM BDC_FIELD       USING 'MAKT-MAKTX'
                                    RECORD-MAKTX.     " ÎïÁÏÃèÊö
      IF K NE 'K'.
        perform bdc_field       using 'MARA-MEINS'
                                      record-MEINS.   " »ù±¾¼ÆÁ¿µ¥Î»
      ENDIF.
      perform bdc_field       using 'MARA-SPART'
                                    record-SPART.     " ²úÆ·×é
      perform bdc_field       using 'MVKE-DWERK'
                                    record-DWERK.     " ½»»õ¹¤³§
      PERFORM BDC_FIELD       USING 'MG03STEUER-TAXKM(01)'
                                    RECORD-TAXKM.     " ÎïÁÏË°·ÖÀà
    condense RECORD-VRKME no-gaps.
    IF RECORD-MEINS <> RECORD-VRKME and RECORD-VRKME <> ''.
       perform bdc_field       using 'MVKE-VRKME'
                                     record-VRKME.     " ÏúÊÛµ¥Î»
       select single * from MARM where matnr = record-matnr
                     and meinh = record-vrkme.
       if SY-SUBRC NE 0.
         tmp = 'W'.
         select single * from t006 where MSEHI = record-meins.
         if t006-DIMID = 'AAAADL'.
           DIMID = ''.
         else.
           DIMID = t006-DIMID.
         endif.
         select single * from t006 where MSEHI = record-vrkme.
         if dimid <> t006-DIMID.
           PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '0510'.
           PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                         '=ENTR'.
           perform bdc_field       using 'RMMZU-UMREN'
                                         record-VMREN.  "ÏúÊÛµ¥Î»×ª»»Òò×Ó
           perform bdc_field       using 'RMMZU-UMREZ'
                                         record-VMREZ.  "»ù±¾µ¥Î»×ª»»Òò×Ó
           PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '4000'.
           PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                         '/00'.
         endif.
       endif.
    ENDIF.
      perform bdc_dynpro      using 'SAPLMGMM' '4200'.
      perform bdc_field       using 'BDC_OKCODE'      " µ÷ÓÃË°Àà×ÓÆÁÄ»
                                    '/00'.
      PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '4000'.
      PERFORM BDC_FIELD       USING 'BDC_OKCODE'      " ·µ»ØÏúÊÛ×éÖ¯ 1ÆÁÄ»
                                    '/00'.
    ENDFORM.                                                    " salorg1
    *&      Form  salorg2
          ÏúÊÛ×éÖ¯ 2
    -->  p1        text
    <--  p2        text
    FORM salorg2.
      PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '4000'.
      PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                    '/00'.
      PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                    'MVKE-KTGRM'.
    PERFORM BDC_FIELD       USING 'MVKE-VERSG'
                                   RECORD-VERSG.     " ÎïÁÏͳ¼Æ×é
      PERFORM BDC_FIELD       USING 'MVKE-KTGRM'
                                    RECORD-KTGRM.     " ¿ÆÄ¿ÉèÖÃ×é
      PERFORM BDC_FIELD       USING 'MVKE-KONDM'
                                    RECORD-KONDM.     " ÎïÁ϶¨¼Û×é
      perform bdc_field       using 'MVKE-MTPOS'
                                    RECORD-MTPOS.     " ÏîÄ¿Àà±ð×é
    PERFORM BDC_FIELD       USING 'MVKE-MVGR1'
                                   RECORD-MVGR1.               " ÎïÁÏ×é 1
    PERFORM BDC_FIELD       USING 'MVKE-MVGR2'
                                   RECORD-MVGR2.               " ÎïÁÏ×é 2
    ENDFORM.                                                    " salorg2
    *&      Form  salplant
          ÏúÊÛ£ºÒ»°ã/¹¤³§Êý¾Ý
    -->  p1        text
    <--  p2        text
    FORM salplant.
      PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '4000'.
      PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                    '/00'.
      select single * from marc where matnr = record-matnr
                                  and werks = record-werks.
      if SY-SUBRC NE 0  OR  MARC-MTVFP = ''.
        PERFORM BDC_FIELD       USING 'MARC-MTVFP'
                                      RECORD-MTVFP.     " ¿ÉÓÃÐÔ¼ì²é
      endif.
      PERFORM BDC_FIELD       USING 'MARA-TRAGR'
                                      RECORD-TRAGR.   " ÔËÊä×é
      PERFORM BDC_FIELD       USING 'MARC-LADGR'
                                    RECORD-LADGR.     " ×°ÔØ×é
      perform bdc_field       using 'MARC-XCHPF'
                                    record-XCHPF.     " ÅúÁ¿¹ÜÀí
    ENDFORM.                    " salplant
    *&      Form  PURCHASEDATA
          ²É¹ºÊý¾Ý
    -->  p1        text
    <--  p2        text
    form purchasedata.
      perform bdc_dynpro      using 'SAPLMGMM' '4000'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '/00'.
      perform bdc_field       using 'BDC_CURSOR'
                                    'MARC-WEBAZ'.
      perform bdc_field       using 'MAKT-MAKTX'
                                    record-MAKTX.
      IF K NE 'K'.
        perform bdc_field       using 'MARA-MEINS'
                                      record-MEINS.     " »ù±¾¼ÆÁ¿µ¥Î»
        perform bdc_field       using 'MARA-MATKL'
                                      record-MATKL.     " ÎïÁÏ×é
      ENDIF.
    condense RECORD-BSTME no-gaps.
    IF RECORD-MEINS <> RECORD-BSTME and RECORD-BSTME <> ''.
       perform bdc_field       using 'MARA-BSTME'
                                     record-BSTME.     " ¶©µ¥µ¥Î»
       select single * from MARM where matnr = record-matnr
                     and meinh = record-bstme.
       if SY-SUBRC NE 0 and
             ( record-vrkme <> record-bstme or tmp <> 'W' ).
         tmp = 'W'.
         select single * from t006 where MSEHI = record-meins.
         if t006-DIMID = 'AAAADL'.
           DIMID = ''.
         else.
           DIMID = t006-DIMID.
         endif.
         select single * from t006 where MSEHI = record-bstme.
         if dimid <> t006-DIMID.
           PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '0510'.
           PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                         '=ENTR'.
           perform bdc_field       using 'RMMZU-UMREN'
                                         record-UMREN.  "¶©µ¥µ¥Î»×ª»»Òò×Ó
           perform bdc_field       using 'RMMZU-UMREZ'
                                         record-UMREZ.  "»ù±¾µ¥Î»×ª»»Òò×Ó
           PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '4000'.
           PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                         '/00'.
         endif.
       endif.
    ENDIF.
      perform bdc_field       using 'MARC-EKGRP'
                                    record-EKGRP.       " ²É¹º×é
    perform bdc_field       using 'MARC-WEBAZ'
                                   record-WEBAZ.       " ÊÕ»õ´¦Àíʱ¼ä
    endform.                               " PURCHASEDATA
    *&      Form  MRP1
          text
    -->  p1        text
    <--  p2        text
    FORM MRP1.
      perform bdc_dynpro      using 'SAPLMGMM' '4000'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '/00'.
    perform bdc_field       using 'MAKT-MAKTX'
                                   record-MAKTX.       " ÎïÁÏÃèÊö
    IF K NE 'K'.
       perform bdc_field       using 'MARA-MEINS'
                                     record-MEINS.     " »ù±¾µ¥Î»
    ENDIF.
    perform bdc_field       using 'MARC-DISGR'
                                   record-DISGR.       " MRP×é
      perform bdc_field       using 'MARC-MAABC'
                                    record-MAABC.       " ABC±êʶ
      perform bdc_field       using 'MARC-DISMM'
                                    record-DISMM.       " MRPÀàÐÍ
    perform bdc_field       using 'MARC-FXHOR'
                                   record-FXHOR.       " ¼Æ»®µÄʱ½ì
      perform bdc_field       using 'MARC-DISPO'
                                    record-DISPO.       " MRP¿ØÖÆÕß
      perform bdc_field       using 'MARC-DISLS'
                                    record-DISLS.       " ÅúÁ¿
    perform bdc_field       using 'MARC-BSTFE'
                   

    Here is a sample program which creates a material with the bare minmal fields,  this will get you started.
    report zrich_0003 .
    data: headdata type bapimathead.
    data: clientdata type bapi_mara.
    data: clientdatax type bapi_marax.
    data: descdata type table of BAPI_MAKT with header line.
    data: return type  bapiret2 .
    data: returnm type table of bapi_matreturn2 with header line.
    data: xmara type mara.
    parameters: p_matnr type mara-matnr.
    headdata-material        = p_matnr.
    headdata-ind_sector      = 'M'.
    headdata-matl_type       = 'FERT'.
    headdata-basic_view = 'X'.
    clientdata-BASE_UOM   = 'EA'.
    clientdatax-BASE_UOM   = 'X'.
    clientdata-old_mat_no = 'Old Material'.
    clientdatax-old_mat_no = 'X'.
    clientdata-division = '00'.
    clientdatax-division = 'X'.
    descdata-LANGU = sy-langu.
    descdata-MATL_DESC = 'This is the description'.
    append descdata.
    call function 'BAPI_MATERIAL_SAVEDATA'
      exporting
        headdata                   = headdata
        clientdata                 = clientdata
        clientdatax                = clientdatax
    *   PLANTDATA                  =
    *   PLANTDATAX                 =
    *   FORECASTPARAMETERS         =
    *   FORECASTPARAMETERSX        =
    *   PLANNINGDATA               =
    *   PLANNINGDATAX              =
    *   STORAGELOCATIONDATA        =
    *   STORAGELOCATIONDATAX       =
    *   VALUATIONDATA              =
    *   VALUATIONDATAX             =
    *   WAREHOUSENUMBERDATA        =
    *   WAREHOUSENUMBERDATAX       =
    *   SALESDATA                  =
    *   SALESDATAX                 =
    *   STORAGETYPEDATA            =
    *   STORAGETYPEDATAX           =
    importing
       return                     = return
      tables
        MATERIALDESCRIPTION        = descdata
    *   UNITSOFMEASURE             =
    *   UNITSOFMEASUREX            =
    *   INTERNATIONALARTNOS        =
    *   MATERIALLONGTEXT           =
    *   TAXCLASSIFICATIONS         =
        returnmessages             = returnm
    *   PRTDATA                    =
    *   PRTDATAX                   =
    *   EXTENSIONIN                =
    *   EXTENSIONINX               =
    check sy-subrc  = 0.
    Regards,
    Rich Heilman

  • Tipos de nota fiscal

    Oi,
    Alguém pode me explicar qual é a diferença entre os grupos G1, G4, R1 e R4 tipos de nota fiscal??
    Além disso não iam certeza se esses são os tipos de nota fiscal padrão definido pela SAP?
    adv

    Caro Adv,
    G1 - Nota fiscal de saída
         tem formulario amarrado na parametrização dela, que significa que você ira se utilizar da sequencia de numeração interna da empresa.
    ex.: envio de mercadoria para industrializacão em MM via MB1B mov 541.
    G4 - Retorno de saída.
         O fornecedor emite a NF dele para retornar os itens não utilizados, então é uma nota fiscal que vai registrar a NF do fornecedor no sistema somente e acobertar seu retorno de estoque.
    R1 - Serve também para registrar a nota fiscal de um fornecedor no seu sistema, e pode ser usado na MB04 por exemplo, quando o fornecedor emite uma nota pra fatura, que vai ser capturada na MIRO e uma nota fiscal de retorno simbólico dos itens utilizados na subcontratação.
    R4 - esta nota tem um formulario atrelado, assim como a G1, o que significa que ela ira se utilizar de uma numeração interna da empresa, porém ela é para devolver o material se necessário apos o recebimento acima. Ela tem quase que os mesmos settings internos que a E4 que é usada para devolução de compras via MIRO-credit memo, mas a R4 é via MM , movimentação de mercadoria.
    Espero ter ajudado.
    Moçatto

  • Dúvida no fluxo do processo de rejeição/recusa

    Bom dia, pessoal,
    Embora tenha participado de alguns projetos de nota fiscal eletrônica, uma coisa nunca ficou muito clara para mim. Estou em um novo projeto agora e eu queria fazer da melhor forma possível.
    A primeira dúvida é sobre Recusa/Rejeição. Basicamente qual a diferença entre os dois? Eu sempre entendi que uma nota é rejeitada pela SEFAZ, e recusada pela validação do GRC ou do outro sistema de mensageria. Essa abordagem está correta?
    A segunda dúvida é sobre essa mesma validação. Quando o GRC, ou outro sistema encontra erros de sintaxe do arquivo, ou de qualquer informação, qual deve ser o status dessa nota? Ela deve ficar como recusada? E o status de comunicação do sistema?
    Quando uma nota fiscal está recusada, qual o melhor fluxo? Considerando que o erro foi apontado pelo sistema de mensageria e não pela SEFAZ, a nota fiscal não pode ser cancelada. O sistema também não permite o estorno da nota, nem mesmo depois de resetar seu status . Uma vez eu debuguei e vi que é porque ela está numerada.
    Meu último problema é sobre inutilização. Alem do report, existe alguma outra forma de fazer a inutilização, direto pelo monitor? Penso em fazer isso justamente quando uma nota está recusada/rejeitada sem ter ido para o SEFAZ. Daí usaríamos a própria entrada dela, no monitor, para solicitar a inutilização da numeração.
    É Isso...
    Obrigado,
    Fernando Fussi

    Bom dia Fernando,
    Esta dúvida é comum principalmente que boa parte dos projetos (no início) não fez a implementação de NF-e por Support Package mas por aplicação de notas, então os termos originais Rejected and Denied foram traduzidos de forma diferente em cada projeto (a SAP só entrega traduções por SP), isso deu margem a boa confusão no tema.
    A primeira dúvida é sobre Recusa/Rejeição. Basicamente qual a diferença entre os dois?
    Existe rejeição (2xx, 4xx,999) e denegação (301 / 302)
    - Na rejeição a Sefaz rejeita por algum dado incorreto e não deixa salvo no banco de dados dela, você deve tentar corrigir e enviar quantas vezes necessário
    - Na denegação é uma situação específica que o emissor ou o destinatário estão com irregularidade fiscal junto à Receita, neste caso a NF-e é armazenada na base da Sefaz e não deve ser novamente enviada (o ERP ao receber a denegação dispara o cancelamento automaticamente)
    Eu sempre entendi que uma nota é rejeitada pela SEFAZ, e recusada pela validação do GRC ou do outro sistema de mensageria. Essa abordagem está correta?
    - Sim, a rejeição da validação é devido a algo que provocaria uma rejeição da Sefaz se enviado você também pode tentar acertar até passar pelo validador/Sefaz
    A segunda dúvida é sobre essa mesma validação. Quando o GRC, ou outro sistema encontra erros de sintaxe do arquivo, ou de qualquer informação, qual deve ser o status dessa nota?Ela deve ficar como recusada? E o status de comunicação do sistema?
    - Sim, rejeitado pelo validador MSS=V   DOCSTAT=vazio (o ERP não considera que a rejeição do validador tem peso igual a validação da Sefaz, porém pro processo é a mesma coisa que no ERP tem status específicos)
    Veja detalhes sobre status e situações aqui:
    Status do SAP Nota Fiscal Eletrônica (ERP x GRC x PI)
    ou em inglês:
    NF-e Status on SAP Nota Fiscal Electronica Solution (ERP x GRC x PI)
    Quando uma nota fiscal está recusada, qual o melhor fluxo? Considerando que o erro foi apontado pelo sistema de mensageria e não pela SEFAZ
    - Em linhas gerais o fluxo básico seria RESET + tentar corrigir o que o GRC ou a Sefaz informaram + NF-e -> Send
    , a nota fiscal não pode ser cancelada. O sistema também não permite o estorno da nota, nem mesmo depois de resetar seu status . Uma vez eu debuguei e vi que é porque ela está numerada.
    - Em um ERP e GRC corretamente atualizado com os SP's e notas isso não é normal em cada caso a causa raiz deve ser encontrada e sanada com notas ou chamado à SAP
    Meu último problema é sobre inutilização. Alem do report, existe alguma outra forma de fazer a inutilização, direto pelo monitor?
    - Que report? O de encontrar gaps? Este report é para sanar um side effect quando os clientes não implementaram ainda o decouple. Hoje em dia todos os clientes devem implementar o decouple job para evitar vários transtornos como (gaps (já não dá mais medo), NF-e autorizada no GRC/Sefaz e não existe no ERP (isso é terrível), inconsistência de transmissão (dados obtidos em memória X dados obtidos do banco)....
    - Inutilização é direto no monitor, que situação está descrevendo?
    Penso em fazer isso justamente quando uma nota está recusada/rejeitada sem ter ido para o SEFAZ. Daí usaríamos a própria entrada dela, no monitor, para solicitar a inutilização da numeração.
    - não entendi. Hoje uma nota Rejected seja pela Sefaz ou pelo validador deve ser cancelada pelo monitor J1BNFE. Entendi errado sua pergunta?
    - Existe também uma nova funcionalidade "Cancel Prior Authorization" que permite o cancelamento de uma NF-e antes mesmo dela ter sido numerada
    Atenciosamente, Fernando Da Ró

  • CFOP de Importação e não informado dados da DI

    Ola!
    Há mudanças no processo de entrada de documentos de importação para NF-e de layout XML 3.10? A NF-es nós emitidas desde 3.10 obter o erro Rejeicao: 525 CFOP de Importação e não informado dados da DI.
    Cholen

    Oi Cholen,
    Você provavelmente tem um sistema 604 ou inferior. No blog post http://scn.sap.com/community/portuguese/sped-and-nf-e/blog/2014/12/15/diferen%C3%A7as-na-solu%C3%A7%C3%A3o-de-nf-e-entre… foram explicadas as diferenças entre os releases novos e os mais antigos. Os campos Intermediate_mode e transport_mode só existem no 605 e superiores.
    att,
    Renan Correa

  • 1933985     NF-e new layout 3.10 - Versão Obsoleta

    Caros,
    Estou com uma dúvida em relação a aplicação da nota 1933985 - NF-e new layout 3.10.
    Há 2 meses aplicamos completamente  a nota 1933985, porém ao baixarmos novamente esta note via SNOTE, seu status não está mais como "Completamente Aplicada" e sim como "Aplicada Versão Obsoleta". Sendo assim, gostaria de saber se o correto neste caso, é voltar o status de implementação desta nota e executar a SNOTE novamente para ela? Ou se há alguma sugestão para este caso?
    Temos outra nota na mesma situação e não temos certeza se podemos voltar seu status para executarmos novamente a SNOTE.
    Muito Obrigada

    Olá Cristiane.
    Boa tarde.
    A última versão lançada para esta nota 1933985 , é a versão 9, do dia 22 de Agosto de 2014.
    Acredito não ser possível implementar apenas a diferença entre as versões. Então, tente verificar qual versão foi implementada em seu sistema e atente aos detalhes de mudanças entre as versões, como descrito na nota.
    O que acontece é que algumas outras notas foram inseridas como pré requisitos, assim como parte da solução e dos textos, mudaram ao longo das versões.
    Então, verifique a possibilidade de reverter a sua aplicação feita anteriormente para proceder, desde o ínicio, com a última versão (9).
    Atenciosamente,
    Felipe Silveira

  • NFE com status "em processamento" que não foi enviada ao PI para assinatura

    Olá pessoal.
    No dia 08/03 tivemos um problema no servidor do PI e GRC (ambiente de produção) devido a uma diferença entre os horários do Application Server e do Database Server.
    A grande maioria das NF-eu2019s geradas durante o problema,  tiveram o fluxo normal retomado depois da correção no dia 09/03, porém existem três NF-eu2019s que ficaram u201Ctravadasu201D,  pois não saíram do GRC para serem assinadas.
    As filas do PI e do GRC tiveram que ser reativadas para que o fluxo das NFE's com problema fosse retomado. Não há nenhum registro parado nas filas do GRC e nem do PI.
    Percebemos que o envio para assinatura dá-se no momento da criação da NF-e no GRC. Tentamos re-enviar as NF-e's pelo monitor do ECC, mas não surtiu nenhum efeito.
    Existe dentro do GRC alguma forma de reenviar para assinatura estas NF-e's?
    Obrigado,
    Dorval Neto.

    Bom dia Pessoal,
    Só para chamar a atenção das modificações em tabelas do GRC NFe, isto somente deverá ser feito após esgotadas todas as opções possíveis ( PI, filas, RFC, tunning, basis, java, monitores do aplicativo e também aplicação de notas ).
    No suporte, tenho encontrado em produção problemas que foram ignorados em tempo de DEV / QAS onde o acesso é facilidado.
    Em produção além do acesso limitado o alto volume de notas juntamente com a pressão dos usuários pela resolução rápida pode desgastar a imagem da implementação e do consultor.
    Felizmente temos este canal, e também o suporte oficial, para apoio à esta identificação.
    Abraços,
    Fernando Da Ró

  • Inutilização de NFe - J_1BNFE_OUTNFE_CREATE - Mensageria não-sap

    Olá pessoal!             
    Preciso esclarecer uma dúvida:
    A SAP disponibilizou a função J_1BNFE_OUTNFE_CREATE para fazer interface com sistemas de mensageria não-sap, para o layout 3.10.
    Dúvida:
    Nessa função, como eu faço para identificar que a ação do usuário foi uma solicitação de inutilização da nfe e não a solicitação de autorização? Não encontrei nenhum parâmetro que me diga isso.
    Na versão 2.0 era utilizada a função J_1B_NFE_XML_OUT, que com a combinação dos parâmetros XML_IN-DOCSTAT, XML_IN-SCSSTAT e XML_IN-TPEMIS era possível determinar qual era a ação a ser realizada (solicitar aprovação, cancelamento [ quando ainda não era por evento] , inutilização...)
    Me parece que falta algum parâmetro na nova função que nos diga qual foi a ação realizada...
    Notei que para casos de inutilização o parametro IS_NFE_IDE-TP_EMIS, e alguns outros, ficam em branco. Mas não achei seguro fazer a validação dessa forma.
    Será que existe alguma nota que corrige isso? procurei, mas não encontrei.
    Enfim, agradeço por qualquer ajuda.
    Abraços!

    Oi,
    A diferença entre a autorização e a inutilização pode ser identificada pelos parâmetros em branco. Na solicitação de autorização as estruturas com dados de produto/impostos/destinatário estão preenchidas, na inutilização elas estão em branco.
    Além disso algumas informações de header da nota estarão em branco na inutilização, como por exemplo o tpemis.
    Acredito que independente da mensageria é possível que eles mapeiem os dados usando essas diferenças como parâmetros para identificação.
    att,
    Renan

  • Erro "B2B: erro de sistema PI"

    Olá a todos. Aplicamos a versão 2.0 do GRC, Support Package 15 e após isso, quando uma Nota Fiscal é cancelada, o cliente não recebe o XML desse cancelamento, apresentando um erro no GRC como: B2B: erro de sistema PI. Nessa nova versão esse envio é obrigatório. Alguém já passou por esse erro? Tem alguma idéia do que pode ser?
    Obrigado a todos que puderem ajudar
    Marcos Cristiano Ickert
    Basis

    Marcos,
    Alem de configurar o Cenário para o novo namespace 006, no Design para o Produto/SWCV usado o B2B você precisa alterar o Interface Mapping(7.0)/Operation Mapping(7.1) de Envio(NTB2B_procNFe_TO_procNFe)/Cancelamento(CTB2B_procCancNFe_TO_procCancNFe) para o namespace 006, assim como já deve estar para a versão 005a.
    (isso apenas para os objetos do seu produto/swcv)
    OBS.: caso vocês utilizem a solução igual ou parecida com o que Henrique postou no forum.
    E caso você precise reiniciar esse erro de B2B no GRC, como você está SPK 15 será necessário aplicar a nota 1512936 para tirar o dump que gera.
    Espero que ajude.
    Abraço,
    Bruno Lima

Maybe you are looking for