Gostaria de saber se é possível atribuir um valor aos campos S_T_A_M_P_ da tabela SB1 e DA1.
Atualmente precisamos realizar a limpeza dos campos para integração de preço nos Selfs. Para isso, fazemos a limpeza via SQL, porém, estou criando uma rotina para executar essa operação.
Mas ao processar o fonte está dando um erro de: invalid field name in Alias SLD->SB1.S_T_A_M_P_ on
Segue um pedaço do fonte:
Local cStmpB := ""
Local cStmpD := ""
cQryUpd := " SELECT "
cQryUpd += " SB1.S_T_A_M_P_, "
cQryUpd += " DA1.S_T_A_M_P_, "
/*==============================*/
TCQUERY cQryUpd NEW ALIAS "SLD"
Count To nTotal
DbSelectArea("SLD")
SLD->(DbGoTop())
If !SLD->(Eof())
cStmpB := SLD->SB1.S_T_A_M_P_
cStmpD := SLD->DA1.S_T_A_M_P_
Endif
SLD->( DbCloseArea() )
O campo stamp até onde possuo conhecimento, é visível apenas no banco e internamente no sistema, para atualizá-lo deverá executar a consulta diretamente no banco, via AdvPL a função TCSQLEXEC pode te atender pois ela executa diretamente no banco o comando.
O comando TCSQLEXEC realiza a validação da permissão de UPDATE para o usuário antes de executar a instrução SQL.
Caso o usuário não possua essa liberação, nenhuma operação é efetuada no banco de dados.
No meu cenário, estava tentando implementar a funcionalidade sem utilizar o TCSQLEXEC, justamente para evitar a necessidade de conceder permissão de UPDATE.
Esses campos são atualizados automaticamente, logo qualquer alteração na tabela já vai disparar a atualização desses campos.
Não é recomendado atualizar manualmente esses campos, você pode gerar inúmeros problemas no ERP, onde rotinas internas efetuam controles com base nesses campos, como por exemplo o envio de dados via SmartLink.
Como já mencionado, esses campos não ficam disponíveis na workarea de uma tabela, campos reservados são visíveis apenas via query, assim como o R_E_C_N_O_, R_E_C_D_E_L_ e D_E_T_E_D_, alguns possuem funções para consulta, como a função RecNo e a função Deleted.
Mas reforçamos, a manipulação indevida desses campos, pode trazer prejuízos para o funcionamento do ERP, pois diversas rotinas do produto fazem uso desses valores.
A TOTVS já fez o anúncio do Smart X, onde ele também fará controle de todos os registros, não somente um, mas de qualquer alias dentro do Smart X com base nesse campos, portanto reforço, não manipule esses valores, você pode trazer grandes problemas e prejuízos a você e/ou ao seu cliente.