#-------------------------------------#
FUNCTION wfman002_alterar_componentes()
#-------------------------------------#
DEFINE lr_return RECORD status SMALLINT"cod_item_compon_dest": "ITEM-TESTE-NOVO",
"cod_grade_compon_1_dest": "PRETO",
"cod_grade_compon_2_dest": "",
|
| msg CHAR(300) "cod_grade_compon_3_dest": "",
"cod_grade_compon_4_dest": "",
|
| "cod_grade_compon_5_dest": "",
|
| ENDRECORD
DEFINE lr_comp_orig,
lr_comp_dest RECORD
"justificativa": "ALTERACAO DO COMPONENTE ITEM-TESTE BRANCO PARA ITEM-TESTE-NOVO PRETO."
}
}
//Para registros de detalhes (listas).
{
"componentes": [
{
"cod_ |
| item_compon LIKE estrut_grade.cod_item_componempresa": "24",
"cod_item_compon": "ITEM-TESTE",
|
| comp LIKE estrut_grade.cod_grade_comp_1_orig": "BRANCO",
"cod_grade_compon_2_orig": "",
|
| comp_2 LIKE estrut_grade.cod_grade_comp_2compon_3_orig": "",
"cod_grade_compon_4_orig": "",
|
| comp3 LIKE estrut_grade.cod_grade_comp_3 gradecomp4 LIKE estrut_grade.cod_grade_comp_4dest": "ITEM-TESTE-NOVO",
"cod_grade_compon_1_dest": "PRETO",
|
| comp5 LIKE estrut_grade.cod_grade_comp_5dest": "",
"cod_grade_compon_3_dest": "",
|
| END RECORD
"cod_grade_compon_4_dest": "",
|
| DEFINEla_item_paiARRAY[100]OFRECORD
"cod_grade_compon_5_dest": "",
"justificativa": "ALTERACAO DO COMPONENTE ITEM-TESTE BRANCO PARA ITEM-TESTE-NOVO PRETO."
|
| cod_item_paiLIKE estrut_grade.cod_item_pai },
{
"cod_empresa": "24",
|
| cod_grade_1LIKEestrut_grade.grade_1item_compon": "ITEM-TESTE-NOVO",
"cod_grade_compon_1_orig": "PRETO",
|
| LIKE estrut_grade.cod_grade_2 "cod_grade_compon_3_orig": "",
|
| _3LIKEestrut.codgrade_35_orig": "",
"acao": "1",
|
| grade_4compon_dest": "ITEM-TESTE",
|
| LIKE estrut_grade.4compon_1_dest": "BRANCO",
"cod_grade_compon_2_dest": "",
|
| 5 LIKE estrut_grade.cod_grade_5compon_3_dest": "",
"cod_grade_compon_4_dest": "",
|
| qtd_necessaria LIKE estrut_grade.qtd_necessaria"cod_grade_compon_5_dest": "",
"justificativa": "ALTERACAO DO COMPONENTE ITEM-TESTE-NOVO PRETO PARA |
| dat_validade_ini LIKE estrut_grade.dat_validade_ini, dat_validade_fim LIKE estrut_grade.dat_validade_fim,
num_sequencia LIKE estrut_grade.num_sequencia
END RECORD
DEFINE l_justificativa CHAR(300),
l_acao CHAR(001),
l_altera_item CHAR(001)
DEFINE l_ind,
l_item_ind,
l_item_count SMALLINT
IF LOG_initApp("MANENG") > 0 THEN
LET lr_return.status = FALSE
LET lr_return.msg = "Usuário ",p_user CLIPPED," sem permissão para acessar a rotina."
RETURN lr_return
END IF
LET lr_comp_orig.cod_item_compon = _ADVPL_WfGetParameterValue("componentes","cod_item_compon_orig")
LET lr_comp_orig.cod_grade_comp_1 = _ADVPL_WfGetParameterValue("componentes","cod_grade_comp_1_orig")
LET lr_comp_orig.cod_grade_comp_2 = _ADVPL_WfGetParameterValue("componentes","cod_grade_comp_2_orig")
LET lr_comp_orig.cod_grade_comp_3 = _ADVPL_WfGetParameterValue("componentes","cod_grade_comp_3_orig")
LET lr_comp_orig.cod_grade_comp_4 = _ADVPL_WfGetParameterValue("componentes","cod_grade_comp_4_orig")
LET lr_comp_orig.cod_grade_comp_5 = _ADVPL_WfGetParameterValue("componentes","cod_grade_comp_5_orig")
LET lr_comp_dest.cod_item_compon = _ADVPL_WfGetParameterValue("componentes","cod_item_compon_dest")
LET lr_comp_dest. Card |
---|
label | Execução da Rotina no Logix |
---|
| Para que seja possível a execução da rotina no Logix é necessário seguir os passos abaixo: - Criar a rotina 4GL sem parâmetros.
- Os valores enviados devem ser recuperados através da função _ADVPL_WfGetParameterValue.
- Para recuperar a quantidade dos campos filhos nos valores enviados, utilizar a função _ADVPL_WfGetParameterLength.
- A função deve retornar uma variável RECORD com no mínimo dois atributos*:
- status: do tipo SMALLINT, deverá ter o valor TRUE ou FALSE para indicar se a rotina foi executada com sucesso; e
- msg: do tipo CHAR, deverá ter uma curta mensagem para que a mesma seja exibida para o usuário no arquivo de LOG do Fluig ou em tela.
* A variável RECORD de retorno poderá ter outros atributos conforme necessidade do processo.
Exemplo Bloco de código |
---|
| #-------------------------------------#
FUNCTION wfman002_alterar_componentes()
#-------------------------------------#
DEFINE lr_return RECORD
status SMALLINT,
msg CHAR(300)
END RECORD
DEFINE lr_comp_orig,
lr_comp_dest RECORD
cod_item_compon LIKE estrut_grade.cod_item_compon,
cod_grade_comp_1 |
| =_ADVPL_WfGetParameterValue("componentes","estrut_grade.cod_grade_comp |
| _1_dest")
LETlr_comp_dest.=_ADVPL_WfGetParameterValue("componentes","estrut_grade.cod_grade_comp_2 |
| _dest")
LETlr_comp_dest.=_ADVPL_WfGetParameterValue("componentes","estrut_grade.cod_grade_comp_3 |
| _dest")
LET lr_comp_dest.=_ADVPL_WfGetParameterValue("componentes","estrut_grade.cod_grade_comp_4 |
| _dest")
LET lr_comp_dest.=_ADVPL_WfGetParameterValue("componentes","estrut_grade.cod_grade_comp_5 |
| _dest")
LETl_justificativa=_ADVPL_WfGetParameterValue("componentes","justificativa")
LETl_acao=ADVPL_WfGetParameterValue("componentes","slct_acao")
item_pai ARRAY[100] OF RECORD
|
| #Verificaoscódigosdagradedeorigem.
IFlr_comp_orig.cod_grade_comp_1ISNULLTHEN
LETlrcomp_origgrade_comp_1 = " "
ENDIF
IFlr_comp_orig.cod_grade_comp_2ISNULLTHEN
LETlrcomp_origcomp_2 = " "
ENDIF
IFlr_comp_orig.cod_grade_comp_3ISNULLTHEN
LETlr_comp_orig.comp_3=""
END IF
IF lr_comp_origLIKE estrut_grade.cod_grade_ |
| comp_4 IS NULL THEN
LETlr_comp_orig.cod_grade_comp_4=""
ENDIF
IFlr_comp_origcod_grade_3 LIKE estrut_grade.cod_grade_ |
| comp_5 IS NULL THEN
LETlr_comp_orig.cod_grade_comp_5=""
ENDIF
#Verificaoscódigosdadedestino.
IF lr_comp_destcomp_1 IS NULL THEN
LETlr_comp_dest.cod_grade_comp_1=""
ENDIF
IFlr_comp_dest.comp_2 IS NULL THEN
LET lr_comp_destcomp_2 = " "
ENDIF
IFlr_comp_dest.cod_grade_comp_3ISNULLTHEN
LETlr_comp_dest.cod_grade_comp_3 = " "
qtd_necessaria LIKE estrut_grade.qtd_necessaria,
|
| ENDIF
IFlr_comp_dest.cod_grade_comp_4ISNULLTHEN
LETlrcomp_destcodgrade_comp_4 = " "
ENDIF
IFlr_comp_dest.cod_grade_comp_5ISNULLTHEN
LETlrcomp_dest.codvalidade_fim LIKE estrut_grade.dat_ |
| comp5=""
ENDIF
LET l_item_ind= 0
LETl_item_count=_ADVPL_WfGetParameterLength("item_pai")
FORlind=1TOlitemcountLETl_altera_item=_ADVPL_WfGetParameterValue("item_pai","altera_item",l_ind)
IFl_altera_item= "S" THEN
END RECORD
DEFINE l_justificativa CHAR(300),
|
| LETl_item_ind=item_ind+1
LETla_item_pai[l_item_ind].cod_item_pai=_ADVPL_WfGetParameterValue("item_pai","cod_item_pai",l_ind)
l_altera_item CHAR(001)
DEFINE l_ind,
|
| LETla_item_pai[l_item_ind].cod_grade_1=ADVPL_WfGetParameterValue("pai","cod_grade_1",l_ind) LET la_item_pai[ind].cod_grade_2 = _ADVPL_WfGetParameterValue("item_pai","cod_grade_2",l_ind)
LOG_initApp("MANENG") > 0 THEN
LET lr_return.status = FALSE
LET |
| la_item_pai[l_item_ind].cod_grade_3 = _ADVPL_WfGetParameterValue("item_pai","cod_grade_3",l_ind)
"Usuário ",p_user CLIPPED," sem permissão para acessar a rotina."
RETURN lr_return
END IF
LET |
| laitem_pai[l_item_ind]grade_4 item_compon = _ADVPL_WfGetParameterValue(" |
| item_paigrade4,l_ind laitem_pai[l_item_ind]grade_5 grade_comp_1 = _ADVPL_WfGetParameterValue(" |
| item_paicomponentes","cod_grade_comp_1_ |
| 5,l_ind laitem_pai[l_item_ind].qtd_necessaria comp_orig.cod_grade_comp_2 = _ADVPL_WfGetParameterValue(" |
| item_paiqtd_necessaria",l_ind la_item_pai[l_item_ind].dat_validade_inilr_comp_orig.cod_grade_comp_3 = _ADVPL_WfGetParameterValue(" |
| item_paidat_validade_ini",l_ind laitem_pai[l_item_ind].dat_validade_fimcomp_orig.cod_grade_comp_4 = _ADVPL_WfGetParameterValue(" |
| item_paidatvalidade_fim",l_ind)
laitem_pai[l_item_ind].num_sequencia comp_orig.cod_grade_comp_5 = _ADVPL_WfGetParameterValue(" |
| item_painum_sequencia",l_ind #Verifica os códigos da grade do item pai.
LET lr_comp_dest.cod_item_compon = _ADVPL_WfGetParameterValue("componentes","cod_item_compon_dest")
LET |
| IF la_item_pai[l_item_ind]lr_comp_dest.cod_grade_comp_1 |
| IS NULL THEN= _ADVPL_WfGetParameterValue("componentes","cod_grade_comp_1_dest")
|
| LET la_item_pai[l_item_ind]LET lr_comp_dest.cod_grade_ |
| 1" "_ADVPL_WfGetParameterValue("componentes","cod_grade_comp_2_dest")
LET lr_comp_dest.cod_grade_comp_3 |
| END IF
= _ADVPL_WfGetParameterValue("componentes","cod_grade_comp_3_dest")
LET |
| IF la_item_pai[l_item_ind]lr_comp_dest.cod_grade_comp_ |
| 2IS NULL THEN= _ADVPL_WfGetParameterValue("componentes","cod_grade_comp_4_dest")
LET lr_comp_dest.cod_grade_comp_5 |
| = _ADVPL_WfGetParameterValue("componentes","cod_grade_comp_5_dest")
|
| la_item_pai[item_ind].cod_grade_2" "
_ADVPL_WfGetParameterValue("componentes","justificativa")
LET l_acao |
| END IF= _ADVPL_WfGetParameterValue("componentes","slct_acao")
#Verifica os códigos da grade de origem.
IF |
| la_item_pai[l_item_ind]lr_comp_orig.cod_grade_comp_ |
| 3 laitem_pai[l_item_ind]3 laitem_pai[l_item_ind]4 laitem_pai[l_item_ind]comp_orig.cod_grade_comp_ |
| 4 laitem_pai[l_item_ind]5comp_3 IS NULL THEN
LET lr_comp_orig.cod_grade_comp_3 = " "
END IF
IF |
| LETlaitem_pai[l_item_ind]5=""THEN
LET lr_comp_orig.cod_grade_comp_4 = " |
| END IF END FOR
{
IF lr_comp_orig.cod_grade_comp_5 IS |
| Regra de negócio 4GL.}
return.statuscomp_orig.cod_grade_comp_5 = " |
| TRUELET lr_return.msg="Itemcomponentealteradocomsucesso"
RETURN lr_return
END FUNCTION |