José, existem alguns erros.
Primeiro, vamos pensar que o seu campo PW_XNR10 é uma data, tipo date, logo a criação variável dData está incorreta, pois ela está sendo criada como string:
Local dData := "27/04/2020"
O correto seria converter a string para date:
Local dData := StoD("27/04/2020")
Segundo, você atribuiu um valor para o campo PW_MSBLQL
sem efetuar um reclock
antes, aí podemos pensar duas coisas, você não fez o reclock
ou na verdade você queria alterar o valor de memória M->
:
SPW->PW_MSBLQL := 1
Existem duas possíveis correções aqui, colocar o valor na memória:
M->PW_MSBLQL := "1"
Ou efetuar o reclock
antes de alterar esse valor:
RecLock("SPW")
SPW->PW_MSBLQL := "1"
SPW->(MsUnLock())
Terceiro, o campo reservado do Protheus _MSBLQL
costuma ser um campo do tipo char, e você colocou um valor numérico:
SPW->PW_MSBLQL := 1
Como já deixei de exemplo na correção anterior, o valor precisa estar entre aspas, simples ou duplas, o ADVPL compreende ambas como string:
SPW->PW_MSBLQL := "1"
Sendo assim, seu fonte com as correções pode ficar da seguinte forma:
include "protheus.ch'"
user function pont01()
local dData as date
local dDt_NR10 as date
dData := StoD("27/04/2020")
dDt_NR10 := M->PW_XNR10
DbSelectArea("SPW")
if dDt_NR10 < dData
RecLock("SPW")
SPW->PW_MSBLQL := "1"
SPW->(MsUnLock())
endif
return
Ou
include "protheus.ch"
user function pont01()
local dData as date
local dDt_NR10 as date
dData := StoD("27/04/2020")
dDt_NR10 := M->PW_XNR10
DbSelectArea("SPW")
if dDt_NR10 < dData
M->PW_MSBLQL := "1"
endif
return
Documentações:
https://tdn.totvs.com/pages/viewpage.action?pageId=24347041
https://tdn.totvs.com/pages/releaseview.action?pageId=6814879
https://tdn.totvs.com/pages/viewpage.action?pageId=27677486
0
Primeiramente obrigado pelo esclarecimento das duvidas estou inciando e esta sendo novo essa parte ai apanho um pouco. Nesse caso oque queria fazer era pegar o campo MSBLQL que inicalmente vai estar vazio apos a valiudacao da data ser menor ele preenche a informacao do MSBLQL = "1" que no caso bloqueia so que ele ainda nao esta preenchendo esse campo teria algo mais que precisaria fazer ?
— jose 28 de Apr de 2020