Boa tarde, Ana Luiza,
Já conseguiu criar a formula? Caso não, tenho uma solução que pode ser que funcione pra você.
1) criar uma formula que recupere o ID do produto que está sendo movimentado:
Codigo da formaula: ID.001 (id e Nome de sua preferencia)
TABITM ('IDPRD' , 'I')
2) Criar uma consulta slq para verificar a data:
CÓDIGO DA CONSULTA: SQL_DTVALIDADE
SELECT CASE WHEN DATAEXTRA1 > GETDATE() THEN 1 ELSE 0 END AS RESULTADO
FROM TPRODUTO
WHERE IDPRD = :FRM_ID.001
/** (Obs: sempre usar FRM_COD-FORMULA aqui será a formula do id produto) **/
3) Agora criar a formula de consistência, caso não exista nenhuma no movimento:
Codigo: DATAPRD - PRODUTO VENCIDO
DECL DT1;
EXECSQL("SQL_DTVALIDADE");
SETVAR (DT1, RESULTSQL("SQL_DTVALIDADE", 'RESULTADO'));
SE DT1 = 1
ENTAO 0
SENAO 1
FIMSE
O nome da formula será mostrada na hora que a formula entrará em ação, então use tipo: " Produto fora da data de validade! "
Agora é adicionar a formula "DATAPRD" no parâmetro do movimento do item e testar.