Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current Restore this Version View Version History

Version 1 Next »

A Chamada da Simulate consiste em consultar e extrair as informações, com base no arquivos de parâmetros, da API. A integração fornecida para possibilitar a extração dessa informações é a conexão entre o SAP e a API. O retorno dessa chamada é no formato Json. O propósito do desenvolvimento desta chamada é obter informações de preço, valores totais e de impostos, em função do Tipo de Documento (ZDX, ZCPP e ZCPI), os quais apresentarão a utilidade de construir uma tabela com o cálculo.

Recursos Necessários

Os recursos utilizados devem ser mencionados para apoio no entendimento e desenvolvimento da Chamada Simulate. Abaixo segue a lista de todos os insumos utilizados para o estabelecimento deste projeto:

  • Postman: apresenta a utilidade de validar o retorno da API com os parâmetros especificados;

  • Amostra de Parâmetros: arquivo solicitante à área de negócios para fornecer os parâmetros necessários para o retorno das informações da chamada simulate.

  • Notebook do Databricks da Chamada da Simulate: desenvolvimento de script da Chamada Simulate que realiza a requisição das informações de preço, valores totais e impostos, a partir da leitura e configuração do arquivo de parâmetros, da API. (COLOCAR O LINK)

  • Notebook do Databricks para a leitura e configuração do arquivo de parâmetros: desenvolvimento de script da leitura do arquivo extraído, adequação das informações com o modelo atual e configuração do Tipo de Documento para ocorrer a chamada da simulate. (COLOCAR O LINK

  • Jira: este sistema pode ser usado para a consulta do Card DGA - 535 a qual apresenta todas as informações do projeto e o commit dos notebooks do Databricks.

METODOLOGIA

Arquivo de Parâmetros

Após a solicitação do arquivo de parâmetros em excel e a adaptação para csv, o processo de geração, importação e gravação do arquivo de parâmetros pode ser vista na Figura 1:

De acordo com a Figura 1, a área de negócios extrai um arquivo de parâmetros em excel e é enviado para o nosso domínio. Posteriormente, é criado um código Python que lê este arquivo (transformado em csv) e extrai para o storage como gravação de uma tabela relacional no Databricks.

Após a gravação do arquivo de parâmetros, deve-se adequar na mesma configuração de nomenclatura e tipos de dados das colunas da tabela genesis_pricing.parametersv4.

Observações: Pode ocorrer a ausência de algumas colunas no arquivo extraído pela área de negócios, por exemplo, “FuncaoParceiro”. Para este caso deve-se criar uma coluna com este nome e atribuir o valor “AG”. Caso este comportamento ocorra para outras colunas, verificar com a área de negócios.

A extração das informações de preço, valores totais e impostos é dependente do tipo de Documento. O Arquivo de parâmetros extraídos pela área de negócios geralmente está com o Tipo de Documento (coluna “Tp.Doc”) associado ao valor ZDX (Venda Normal). Para este caso, caso seja necessário buscar as informações para ZCPL (Preço Lucro) e ZCPI (Impostos), deve-se duplicar os registros para cada grupo baseado no ZDX e unir tudo conforme na Figura 2:

Para mais informações sobre o desenvolvimento do script, acessar:

Após essas configurações do arquivo de parâmetros, a tabela é gravada no database genesis_pricing e deve seguir este padrão.

Tp_Doc

Org_Vendas

Eq_Vendas

Escr_Vendas

Regiao_de_vendas

Cond_de_Pgto

Cond_Expedicao

Moeda

Entrega_Paletizada

Incoterms

Incoterms_2

Setor_de_atividade

Canal_distribuicao

Louca_Embalada

Funcao_parceiro

Utilizacao

Emissor_da_Ordem

Centro

Material

ZDX

DH01

35

DB05

MS02

BP19

1

BRL

4

CIF

CIF

HY

45

4

AG

ZR

92001

HY01

1167.METVMHMN

ZDX

DH01

35

DB05

MS02

BP19

1

BRL

4

CIF

CIF

HY

45

4

AG

ZR

92001

HY01

1168.METPTHMN

ZCPP - Consulta Preco

DH01

510

DI05

ZH02

B120

1

BRL

4

CIF

CIF

HY

45

null

AG

ZR

1186836

HY01

DPBL.3SAR.532BR

ZCPP - Consulta Preco

DH01

510

DI05

ZH25

B100

1

BRL

4

CIF

CIF

HY

45

null

AG

ZR

712531

HY01

DPMD.4.622BR

ZCPI - Consulta Imposto

DH01

35

DB05

MS02

BP19

1

BRL

4

CIF

CIF

HY

45

4

AG

ZR

92001

HY01

1167.METVMHMN

ZCPI - Consulta Imposto

DH01

35

DB05

MS02

BP19

1

BRL

4

CIF

CIF

HY

45

4

AG

ZR

92001

HY01

1168.METPTHMN

Os campos extraídos e configurados são:

'Tp_Doc': Descrição do Tipo de Documento referente a ZDX - Venda Normal, ZCPP - Consulta Preço e ZCPL - Consulta Imposto
'Org_Vendas': Organização das Vendas
'Eq_Vendas':
'Escr_Vendas':
'Regiao_de_vendas':
'Cond_de_Pgto':
'Cond_Expedicao':
'Moeda':
'Entrega_Paletizada':
'Incoterms':
'Incoterms_2':
'Setor_de_atividade':
'Canal_distribuicao':
'Louca_Embalada':
'Funcao_parceiro':
'Utilizacao':
'Emissor_da_Ordem':
'Emissor_Razao_Social':
'Centro':
'Material':

Chamada Simulate

A chamada da Simulate ocorre a partir do payload em função do dataframe passado como parâmetro. Este dataframe é construída a partir da leitura do arquivo de parâmetros configurados e da sua relação com as tabelas de clientes e de expedição. Além disso, é feita adaptação em algumas colunas como no Tipo de Documento, Preço e entre outros. Esta adaptação é feita para que a requisição da API possa ocorrer com o êxito. Caso contrário, haverá erro de integração da chamada com o server do SAP.

Em relação a afirmativa do êxito do payload, mais um requisito é necessário: a construção da chamada do payload deve ter formato json com os parâmetros ajustados para que a requisição ocorra. Tais parâmetros deve ser usado desta forma:

{
    "schedule": {
        "Item": {
            "scheduleLineDate": "",
            "salesDocumentItem": "000150",
            "orderQuantityInSalesUnits": "10"
        }
    },
    "rotationHeader": {
        "yourReference": "SF",
        "valueShipping": "0",
        "valueAccessoryCosts": "0",
        "termsOfPaymentKey": "B028",
        "shippingConditions": "Standard",
        "sdDocumentCurrency": "BRL",
        "salesOrganization": "DC01",
        "salesOffice": "DB03",
        "salesGroup": "091",
        "salesDocumentType": "ZDX - Venda Normal",
        "salesDistrict": "Deca - MG Região 07",
        "requestedDeliveryDate": "",
        "priceListType": "Não",
        "incotermsPart2": "CIF - Custo, seguro & frete",
        "incotermsPart1": "CIF - Custo, seguro & frete",
        "division": "MS",
        "distributionChannel": "40",
        "dateForPricingAndExchangeRate": None,
        "customerPurchaseOrderNumber": "",
        "customerPurchaseOrderDate": "2020-07-30",
        "customerGroup": "false",
        "cup": "Revenda",
        "completeDeliveryDefinedForEachSalesOrder": ""



   },
    "quotePartners": {
        "Item": {
            "partnerFunction": "EmissorOrdem",
            "customerNumber": "0000032611"
        }
    },
    "quoteItems": {
        "Item": {
            "salesDocumentItem": "000150",
            "rateConditionRound": "0",
            "rateConditionAmountOrPercentage": "0.00",
            "plant": "D085",
            "materialNumber": "4688.931"
        }
    },
    "guuid": None,
    "extension": {
        "Item": {
            "dataPartOfBapiExtensionParameter3": None,
            "dataPartOfBapiExtensionParameter2": "",
            "dataPartOfBapiExtensionParameter1": None,
            "dataPartOfBapiExtensionParameter": ""
        }
    }
}

Observações: para os casos de ZCPP ou ZCPI deve alterar os parâmetros "yourReference" para "HUB" e

"salesDocumentType" para "ZCPP - Consulta Preço" ou "ZCPI - Consulta Imposto", respectivamente.

A Execução do Payload

0 Comments

You are not logged in. Any changes you make will be marked as anonymous. You may want to Log In if you already have an account.