Árvore de páginas

MRPEDITEXP - Alterar informações dos produtos na exportação dos resultados do MRP

Linha de Produto:

Protheus

Segmento:

Manufatura

Módulo:

SIGAPCP - Planejamento e Controle da Produção

Parâmetro(s):

NomeTipoDescriçãoDefaultObrigatórioReferência
PARAMIXB[1]CaracterTicket do MRP.


PARAMIXB[2]Json

Objeto Json com as informações dos produtos que serão exportados:

  • oJson["headers"]: é um array (de objetos Json) ordenados conforme a ordem que será exportado.
  • itens oJson["items"]: é um array (também de objetos Json) com todos os produtos que serão exportados.


X

Idiomas:

Todos

País(es):

Todos

Banco(s) de Dados:

Todos

Sistema(s) Operacional(is):

Todos

Ponto de Entrada

Descrição:O ponto de entrada MRPEDITEXP permite o usuário realizar alterações nos campos de produto no arquivo Excel dos resultados do MRP.
Localização:

Função getProds do fonte MRPData, chamada pela ação "Exportar Excel" da tela Resultados MRP (em Po UI).

Eventos:

Permite que sejam manipuladas as informações dos produtos a serem exportadas no o arquivo Excel.

Programa Fonte:MRPData.prw

Sintaxe:

MRPEDITEXP()

Retorno:

Nil

Observações:

O segundo parâmetro é um objeto Json que possui a seguinte estrutura:

oJson["headers"][nOrdemDaColuna]["id"] := "id_info_item"

oJson["headers"][nOrdemDaColuna]["label"] := "Título da Coluna"

Onde nOrdemDaColuna é a ordem em que a coluna aparecerá no arquivo Excel.

oJson["items"][nItem]["id_info_item"] := "Informação"

Onde nItem é o índice para percorrer os produtos e atualizar as informações.


Exemplo

#Include "Totvs.ch"

//Ponto de Entrada para alterar as informações dos produtos que estão sendo exportados
User Function MRPEDITEXP()
    Local cAliasQry  := GetNextAlias()
	Local cTicket    := ParamixB[1] //Recupera o Ticket que está sendo exportado
	Local oJson      := ParamixB[2] //Recupera o Json com os dados que serão exportados
	Local nIndex     := 1
	Local nLenHeader := Len(oJson["headers"]) //Número de Colunas
	Local nLenItems  := Len(oJson["items"])   //Quantidade de produtos
/*
	Estrutura padrão do oJson:
		oJson
		oJson["headers"]
		oJson["headers"][ 1]["id"]    - "product"
		oJson["headers"][ 1]["label"] - "Produto"
		oJson["headers"][ 2]["id"]    - "productDescription"
		oJson["headers"][ 2]["label"] - "Descrição"
		oJson["headers"][ 3]["id"]    - "productType"
		oJson["headers"][ 3]["label"] - "Tipo"
		oJson["headers"][ 4]["id"]    - "packing"
		oJson["headers"][ 4]["label"] - "Embalagem"
		oJson["headers"][ 5]["id"]    - "deliveryLeadTime"
		oJson["headers"][ 5]["label"] - "Lead Time"
		oJson["headers"][ 6]["id"]    - "deadlineType"
		oJson["headers"][ 6]["label"] - "Tipo Prazo"
		oJson["headers"][ 7]["id"]    - "warehouse"
		oJson["headers"][ 7]["label"] - "Armazém"
		oJson["headers"][ 8]["id"]    - "optionalSelected"
		oJson["headers"][ 8]["label"] - "Opcional"
		oJson["headers"][ 9]["id"]    - "minimumLotSize"
		oJson["headers"][ 9]["label"] - "Lote Mínimo"
		oJson["headers"][10]["id"]    - "economicLotSize"
		oJson["headers"][10]["label"] - "Lote Econômico"
		oJson["headers"][11]["id"]    - "safetyStock"
		oJson["headers"][11]["label"] - "Estoque Segurança"
		oJson["headers"][12]["id"]    - "orderPoint"
		oJson["headers"][12]["label"] - "Ponto Pedido"
		oJson["headers"][13]["id"]    - "unity"
		oJson["headers"][13]["label"] - "Unidade de Medida"
		oJson["headers"][14]["id"]    - "value"
		oJson["headers"][14]["label"] - "Valor"

		oJson["items"][nProd]["product"]            - Código do Produto
		oJson["items"][nProd]["productDescription"] - Descrição do Produto
		oJson["items"][nProd]["productType"]        - Tipo do Produto
		oJson["items"][nProd]["packing"]            - Embalagem
		oJson["items"][nProd]["deliveryLeadTime"]   - Lead Time
		oJson["items"][nProd]["deadlineType"]       - Tipo Prazo
		oJson["items"][nProd]["warehouse"]          - Armazém
		oJson["items"][nProd]["optionalSelected"]   - Opcional
		oJson["items"][nProd]["minimumLotSize"]     - Lote Mínimo
		oJson["items"][nProd]["economicLotSize"]    - Lote Econômico
		oJson["items"][nProd]["safetyStock"]        - Estoque Segurança
		oJson["items"][nProd]["orderPoint"]         - Ponto Pedido
		oJson["items"][nProd]["unity"]              - Unidade de Medida
		oJson["items"][nProd]["value"]              - Valor
*/

	//Adiciona uma coluna com o título "Cabeçalho Específico"
	aAdd(oJson["headers"], JsonObject():New())
	nLenHeader++
	oJson["headers"][nLenHeader]["id"]    := "especifico"
	oJson["headers"][nLenHeader]["label"] := "Cabeçalho Específico"

	//Adiciona uma coluna com o título "Nível"
	aAdd(oJson["headers"], JsonObject():New())
	nLenHeader++
	oJson["headers"][nLenHeader]["id"]    := "level"
	oJson["headers"][nLenHeader]["label"] := "Nível"

	//Percorre todos os produtos para preencher as novas colunas com a informação desejada
	For nIndex := 1 To nLenItems
		cProduto := oJson["items"][nIndex]["product"] //Recupera o código do produto

		//Busca o nível do produto na HWB
		BeginSql Alias cAliasQry
			SELECT MAX(HWB_NIVEL) Nivel
			  FROM %Table:HWB%
			 WHERE HWB_TICKET = %exp:cTicket%
			   AND HWB_PRODUT = %exp:cProduto%
			   AND %NotDel%
		EndSql

		oJson["items"][nIndex]["especifico"] := "Valor Específico" //Preenche a nova coluna de título "Cabeçalho Específico" com o texto "Valor Específico"
		oJson["items"][nIndex]["level"]      := (cAliasQry)->Nivel //Preenche a nova coluna de título "Nível" com o nível obtido na query

		(cAliasQry)->(dbCloseArea())
	Next nIndex

Return
  • Sem rótulos