...
| Expandir | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
...
A continuación se pueden visualizar los parámetros y tablas utilizados por el NFC:
| Expandir | ||||
|---|---|---|---|---|
| ||||
| Parámetros | |||
|
| Expandir | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
La rutina automática de edición de cotización se realiza por medio de la instancia del modelo NFCA020. A continuación, un ejemplo de utilización:
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Expandir | ||
|---|---|---|
| ||
|
| Expandir | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Con la rutina de Cotización híbrida de la NFC, en la pantalla de edición de la cotización (en MVC), tenemos algunos campos exclusivos presentes en la pantalla, que tienen nombres reservados y que no deben utilizarse en la creación de campos personalizados en las tablas SC8 - Cotizaciones y DHU - Encabezado de la cotización, pues pueden generar conflictos con la rutina. A continuación, listamos los nombres reservados de los campos en la rutina NFCA020, que no deben utilizarse en la creación/personalización de campos en las tablas SC8 y DHU:
|
| Aviso | ||
|---|---|---|
| ||
Los puntos de entrada del Nuevo flujo de compras no permiten la presentación de interfaz debido a la tecnología utilizada. Las personalizaciones posibles se activarán en momentos de procesamiento, semejante al comportamiento de execauto. |
| Expandir | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||
Es posible incluir una cotización en el Nuevo flujo de compras por API REST. A continuación, un ejemplo de utilización:
Headers:
A continuación se muestra un ejemplo de body de inclusión de cotización con 1 Solicitud de compra que se cotizará con 2 Proveedores, uno que tiene registro y el otro no. { {
|
| Expandir | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Es posible incluir una cotización en el Nuevo flujo de compras por User Function. A continuación, un ejemplo de utilización:
|
| Expandir | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
La rutina automática de edición de cotización se realiza por medio de la instancia del modelo NFCA020. A continuación, un ejemplo de utilización:
|
| Expandir | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
La rutina automática de nueva propuesta se realiza por medio de la instancia del modelo NFCA020.
|
| Expandir | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
La rutina automática de nuevo participante se realiza por medio de la instancia del modelo NFCA020.
|
| Expandir | |||||
|---|---|---|---|---|---|
| |||||
La rutina automática de cálculo del impuesto se realiza por medio de la instancia del modelo NFCA020. El siguiente ejemplo tiene como finalidad cálculo del impuesto con los datos que se transfieren a la rutina.
|
| Expandir | ||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||
Pontos de Entrada MVC na rotina de Inclusão de Cotação híbrida PGCA020 Por ser una rutina en MVC, la Inclusión de cotización híbrida permite a los usuarios la utilización de diversos Puntos de entrada (sin presentación de interfaz), para que puedan realizar los desvíos y procesamientos personalizados, adecuados a la realidad de la organización. En los fuentes convencionales tenemos un "nombre" para cada punto de entrada creado, por ejemplo, en la rutina MATA010 – Registro de productos tenemos los puntos de entrada: MT010BRW, MTA010OK, MT010CAN, etc. En MVC, no es de esta manera, creamos un único punto de entrada y este se activa en varios momentos. Este punto de entrada único debe tener una User Function y tener como nombre el ID del Modelo de datos (Model) del fuente. Para el funcionamiento del punto de entrada MVC de la inclusión de la cotización, debe utilizarse el nombre de la función PGCA020:
El punto de entrada creado recibe por medio del parámetro (PARAMIXB) un vector con informaciones referentes al fuente. Estos parámetros varían para cada situación, en común todos estos tienen los 3 primeros elementos que se listan a continuación, en el cuadro siguiente existe la lista de parámetros de cada ID: Posiciones del array de parámetros comunes a todos los ID:
El punto de entrada se activa en varios momentos dentro del fuente, en la 2ª posición de la estructura del vector se pasa un ID que identifica cuál es este momento. Esta puede tener como contenido:
Observaciones:
|
| Expandir | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||
Puntos de entrada MVC en la rutina de Edición de cotización híbrida NFCA020 Por ser una rutina en MVC, la Edición de cotización híbrida permite a los usuarios la utilización de diversos Puntos de entrada, para que puedan realizar los desvíos y procesamientos personalizados, adecuados a la realidad de la organización. Breve explicación sobre puntos de entrada MVC: En los fuentes convencionales tenemos un "nombre" para cada punto de entrada creado, por ejemplo, en la rutina MATA010 – Registro de productos tenemos los puntos de entrada: MT010BRW, MTA010OK, MT010CAN, etc. En MVC, no es de esta manera, creamos un único punto de entrada y este se activa en varios momentos. Este punto de entrada único debe tener una User Function y tener como nombre el ID del Modelo de datos (Model) del fuente. Para el funcionamiento del punto de entrada MVC de la edición de la cotización, debe utilizarse el nombre de la función NFCA020:
El punto de entrada creado recibe por medio del parámetro (PARAMIXB) un vector con informaciones referentes al fuente. Estos parámetros varían para cada situación, en común todos estos tienen los 3 primeros elementos que se listan a continuación, en el cuadro siguiente existe la lista de parámetros de cada ID: Posiciones del array de parámetros comunes a todos los ID:
El punto de entrada se activa en varios momentos dentro del fuente, en la 2ª posición de la estructura del vector se pasa un ID que identifica cuál es este momento. Esta puede tener como contenido:
Observaciones:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||
| Expandir | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||
Puntos de entrada MVC en la rutina de Edición de cotización híbrida NFCA020 Como es una rutina en MVC, la Edición de cotización híbrida permite a los usuarios la utilización de diversos Puntos de entrada, para que puedan realizar los desvíos y procesamientos personalizados, adecuados a la realidad de la organización.Breve explicación sobre puntos de entrada MVC: En los fuentes convencionales tenemos un "nombre" para cada punto de entrada creado, por ejemplo, en la rutina MATA010 – Registro de productos tenemos los puntos de entrada: MT010BRW, MTA010OK, MT010CAN, etc. En MVC, no es de esta manera, creamos un único punto de entrada y este se llama en varios momentos. Este punto de entrada único debe tener una User Function y tener como nombre el ID del Modelo de datos (Model) del fuente. Para el funcionamiento del punto de entrada MVC de la edición de la cotización, debe utilizarse el nombre de la función NFCA020:
El punto de entrada creado recibe por medio del parámetro (PARAMIXB) un vector con informaciones referentes al fuente. Estos parámetros varían para cada situación, en común todos estos tienen los 3 primeros elementos que se listan a continuación, en el cuadro siguiente existe la lista de parámetros de cada ID: Posiciones del array de parámetros comunes a todos los ID:
El punto de entrada se llama en varios momentos dentro del fuente, en la 2ª posición de la estructura del vector se pasa un ID que identifica cuál es este momento. Esta puede tener como contenido: | ||||||||||||||||||||||||||||||||||||||||||||||||||||
ID | MOMENTO DE EJECUCIÓN DEL PUNTO DE ENTRADA | |||||||||||||||||||||||||||||||||||||||||||||||||||
MODELPRE | Antes de la modificación de cualquier campo del modelo. Parámetros recibidos: 1 El objeto del formulario o del modelo, según sea el caso 2 C ID del local de ejecución del punto de entrada 3 C ID del formulario Devolución: Requiere una devolución lógica | |||||||||||||||||||||||||||||||||||||||||||||||||||
MODELPOS | En la validación total del modelo. Parámetros recibidos: 1 El objeto del formulario o del modelo, según sea el caso 2 C ID del local de ejecución del punto de entrada 3 C ID del formulario Devolución: Requiere una devolución lógica | |||||||||||||||||||||||||||||||||||||||||||||||||||
FORMPRE | Antes de la modificación de cualquier campo del formulario. Parámetros recibidos: 1 El objeto del formulario o del modelo, según sea el caso 2 C ID del local de ejecución del punto de entrada 3 C ID del formulario Devolución: Requiere una devolución lógica | |||||||||||||||||||||||||||||||||||||||||||||||||||
FORMPOS | En la validación total del formulario. Parámetros recibidos: 1 El objeto del formulario o del modelo, según sea el caso 2 C ID del local de ejecución del punto de entrada 3 C ID del formulario Devolución: Requiere una devolución lógica | FORMLINEPRE | FORMLINEPOS | MODELCOMMITTTS | MODELCOMMITNTTS | FORMCOMMITTTSPRE | FORMCOMMITTTSPOS | MODELCANCEL | BUTTONBAR | MODELVLDACTIVE |
| Bloco de código | ||||
|---|---|---|---|---|
| ||||
#INCLUDE 'PROTHEUS.CH' #INCLUDE 'FWMVCDEF.CH' #INCLUDE "FWEVENTVIEWCONSTS.CH" #INCLUDE 'FWLIBVERSION.CH' #INCLUDE "MATA130.CH" #INCLUDE 'TOPCONN.ch' USER FUNCTION NFCA020() Local aParam := PARAMIXB Local xRet := .T. Local oObj := '' Local cIdPonto := '' Local cIdModel := '' Local lIsGrid := .F. Local nLinha := 0 Local nQtdLinhas := 0 Local cMsg := '' If ( aParam <> NIL ) oObj := aParam[1] cIdPonto := aParam[2] cIdModel := aParam[3] lIsGrid := iif(aParam[3] == "SC8DETAIL", .t., .f.) If ( lIsGrid ) nQtdLinhas := oObj:GetQtdLine() nLinha := oObj:nLine EndIf If ( cIdPonto == 'MODELPOS' ) cMsg := 'Activación en la validación total del modelo (MODELPOS).' + CRLF cMsg += 'ID ' + cIdModel + CRLF If !( xRet := ApMsgYesNo( cMsg + 'Continua ?' ) ) Help( ,, 'Help',, 'O MODELPOS retornou .F.', 1, 0 ) EndIf ElseIf ( cIdPonto == 'FORMPOSFORMCOMMITTTSPOS' ) cMsg := ApMsgInfo('Activación endespués de la validación totalgrabación de la tabla del formulárioformulario (FORMPOSFORMCOMMITTTSPOS).' + CRLF cMsg += 'ID ' + cIdModel + CRLF ) IfElseIf ( cClassecIdPonto == 'FWFORMGRIDMODELCANCEL' ) cMsg +:= 'ÉActivación en umla FORMGRIDopción comAnular (MODELCANCEL).' + Alltrim( Str( nQtdLinhas ) ) + ' linha(s).' + CRLFCRLF + '¿Realmente desea salir ?' If !( xRet := ApMsgYesNo( cMsg ) ) cMsg += 'Situado en la línea ' + Alltrim( Str( nLinha ) ) + CRLFHelp( ,, 'Help',, 'El MODELCANCEL devolvió .F.', 1, 0 ) EndIf ElseIf (cIdPonto cClasse == 'FWFORMFIELDBUTTONBAR' ) cMsg += 'É um FORMFIELD' + CRLF EndIf If !( xRet := ApMsgYesNo( cMsg ApMsgInfo('Incluyendo la opción en la barra de opciones (BUTTONBAR).' + CRLF + 'ContinuaID ?' )+ cIdModel ) Help( ,, 'Help',, 'El FORMPOS devolvió .F.', 1, 0 ) EndIf ElseIf ( cIdPonto == 'FORMLINEPRE' ) If ( aParam[5] == 'DELETE' ) cMsg := 'Activación en la validación previa de la línea del formulario FORMLINEPRE).' + CRLF cMsg += 'Donde se esta intentando borrar una línea' + CRLF cMsg += 'Es un FORMGRID con ' + Alltrim( Str( nQtdLinhas ) ) + ' líneas(s).' + CRLF cMsg += 'Situado en la línea ' + Alltrim( Str( nLinha ) ) + CRLF cMsg += 'ID ' + cIdModel + CRLF If !( xRet := ApMsgYesNo( cMsg + '¿Continua ?' ) ) Help( ,, 'Help',, 'El FORMLINEPRE devolvió .F.', 1, 0 ) EndIf EndIf ElseIf ( cIdPonto == 'FORMLINEPOS' ) cMsg := 'Activación en la validación de la línea del formulario (FORMLINEPOS).' + CRLF cMsg += 'ID ' + cIdModel + CRLF cMsg += 'É um FORMGRID com ' + Alltrim( Str( nQtdLinhas ) ) + ' líneas(s).' + CRLF cMsg += 'Situado en la línea ' + Alltrim( Str( nLinha ) ) + CRLF If !( xRet := ApMsgYesNo( cMsg + 'Continua ?' ) ) Help( ,, 'Help',, 'El FORMLINEPOS devolvió .F.', 1, 0 ) EndIf ElseIf ( cIdPonto == 'MODELCOMMITTTS' ) ApMsgInfo('Activación después de la grabación total del modelo y dentro de la transacción (MODELCOMMITTTS).' + CRLF + 'ID ' + cIdModel ) ElseIf ( cIdPonto == 'MODELCOMMITNTTS' ) ApMsgInfo('Activación después de la grabación total del modelo y fuera de la transacción (MODELCOMMITNTTS).' + CRLF + 'ID ' + cIdModel) ElseIf ( cIdPonto == 'FORMCOMMITTTSPOS' ) ApMsgInfo('Activación después de la grabación de la tabla del formulario (FORMCOMMITTTSPOS).' + CRLF + 'ID ' + cIdModel) ElseIf ( cIdPonto == 'MODELCANCEL' ) cMsg := 'Activación en la Opción Anular (MODELCANCEL).' + CRLF + '¿Realmente desea salir?' If !( xRet := ApMsgYesNo( cMsg ) ) Help( ,, 'Help',, 'El MODELCANCEL devolvió .F.', 1, 0 ) EndIf ElseIf cIdPonto == 'BUTTONBAR' ApMsgInfo('Incluyendo Opción en la Barra de opciones (BUTTONBAR).' + CRLF + 'ID ' + cIdModel ) xRet := { {'Grabar', 'GRABAR', { || Alert( 'Grabó' ) }, 'Esta opción Graba' } } EndIf EndIf Return xRet |
| title | Punto de entrada - Edición de los pedidos generados en el análisis |
|---|
Nombre del punto de entrada: AVALCOT
Objetivo: Permitir la edición de los pedidos de compra generados por medio del análisis de cotización (después de la grabación).
Documentación: Haga clic aquí - Documentación AVALCOT
| title | Punto de entrada - Edición de los ítems de los pedidos generados en el análisis |
|---|
Nombre del punto de entrada: AVALCOPC
Objetivo: Permitir la edición de los ítems de los pedidos de compra generados por medio del análisis de cotización (después de la grabación).
Documentación: Haga clic aquí - Documentación AVALCOPC
|
| Expandir | ||
|---|---|---|
| ||
Nombre del punto de entrada: AVALCOT Objetivo: Permitir la edición de los pedidos de compra generados por medio del análisis de cotización (después de la grabación). Documentación: Haga clic aquí - Documentación AVALCOT |
| Expandir | ||
|---|---|---|
| ||
Nombre del punto de entrada: AVALCOPC Objetivo: Permitir la edición de los ítems de los pedidos de compra generados por medio del análisis de cotización (después de la grabación). Documentación: Haga clic aquí - Documentación AVALCOPC |
| Expandir | ||
|---|---|---|
| ||
Nombre del punto de entrada: NFCFILFOR Objetivo: Este punto de entrada se utiliza para seleccionar proveedores de acuerdo con los Documentación: Haga clic aquí - Documentación NFCFILFOR |
| Expandir | ||
|---|---|---|
| ||
Nombre del punto de entrada: NFCFILTSC Objetivo: Este punto de entrada se utiliza en la necesidad de compra para filtrar SC de acuerdo con los filtros establecidos. Documentación: Clique Aqui - Documentação NFCFILTSC |
| Expandir | ||
|---|---|---|
| ||
Nombre del punto de entrada: MTA131C8 Objetivo: El punto de entrada se utiliza para aumentar información en la generación la cotización. Documentación: Haga clic aquí - Documentación MTA131C8 |
| Expandir | ||
|---|---|---|
| ||
Nombre del punto de entrada: NFCGERDOC Objetivo: Este punto de entrada se utiliza para autorizar la generación de documentos en el análisis de la cotización. Documentación: Haga clic aquí - Documentación NFCGERDOC |
| Expandir | |||||
|---|---|---|---|---|---|
| |||||
Nombre del punto de entrada: NFCWFCUSTOM Objetivo: Este punto de entrada se utiliza para sustituir el envío del workflow del NFC, pudiendo realizarse cualquier implementación de workflow personalizado. Documentación: Haga clic aquí - Documentación NFCWFCUSTOM
|
| Expandir | ||
|---|---|---|
| ||
Nombre del punto de entrada: MA131QSC Objetivo: Este punto de entrada es para definir el criterio de división de los ítems de la SC en la generación de la cotización por meio de un bloque de código. Documentación: Haga clic aquí - Documentación MA131QSC |
08. ASUNTOS RELACIONADOS
| HTML |
|---|
<!-- esconder o menu -->
<style>
div.theme-default .ia-splitter #main {
margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
display: none;
}
#main {
padding-left: 10px;
padding-right: 10px;
overflow-x: hidden;
}
.aui-header-primary .aui-nav, .aui-page-panel {
margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
margin-left: 0px !important;
}
</style>
|
Abaixo você pode visualizar algumas observações relevantes sobre o funcionamento do Novo Fluxo de Compras (NFC).
| Expandir | ||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||
Para assegurar o correto funcionamento do Novo Fluxo de Compras (NFC), é necessário atentar-se ao compartilhamento adequado das tabelas relacionadas aos processos de análise e geração de cotação/pedidos. Esse controle visa garantir a integridade dos dados e a fluidez das etapas do processo.
| ||||||||||||||||||||||||||||||
| HTML | ||||||||||||||||||||||||||||||
| <!-- esconder o menu -->
<style>
div.theme-default .ia-splitter #main {
margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
display: none;
}
#main {
padding-left: 10px;
padding-right: 10px;
overflow-x: hidden;
}
.aui-header-primary .aui-nav, .aui-page-panel {
margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
margin-left: 0px !important;
}
</style>
|