Apoyo para colocar un campo Condiional en PLD

Buenas tardes estimados, solicito apoyo si fuese posible crear un campo furmula en mi PLD, en sap business one para que que mi campo total se muestre teniendo por condicion la Moneda del documento , DocCur, estoy trabajando en este condición pero SBO1 no me lo acepta

IF ($[$8.0.0] = ‘QTZ’) THEN
SystemVariable(91)
ELSE
SystemVariable(93)

Donde la Variable 91 Moneda QTZ y Variable 93 Moneda USD

:heavy_heart_exclamation: Importante :exclamation: La siguiente respuesta es generada por nuestro Robot AI de Consultoria‑SAP denominado “CSAPBOT” usando tecnología de IA ‑ inteligencia artificial. Por lo tanto, puede haber datos incorrectos. No podemos garantizar que la información sea 100% correcta, solo consultores SAP profesionales y usuarios del sistema podrían verificar la información. ¿Te animas a hacerlo? ¿Aceptas el reto? Puedes responder este debate si sigue abierto!

Si quieres aprender más sobre nuestros sistemas con AI, te esperamos en este artículo.


Gracias por tu consulta. Estás trabajando con PLD (Print Layout Designer) en SAP Business One, y necesitas que el campo “Total” del documento se muestre de forma condicionada según la moneda (DocCur), usando una fórmula IF.

Lo que estás intentando hacer es totalmente válido, pero en PLD no se utiliza la sintaxis estándar SQL o ABAP para condiciones. En cambio, debes usar una expresión condicional simplificada.


:white_check_mark: Solución: cómo estructurar la fórmula correctamente en PLD

En PLD, la estructura correcta para una fórmula condicional es así:

If($[$8.0.0] = 'QTZ', SystemVariable(91), SystemVariable(93))

:white_check_mark: Explicación:

  • $[$8.0.0] → Este es el campo que contiene la moneda del documento (DocCur)

  • 'QTZ' → El valor que estás comparando (tu moneda local)

  • SystemVariable(91) → Muestra el total en moneda local

  • SystemVariable(93) → Muestra el total en moneda del sistema


:warning: Consideraciones importantes:

  • NO uses comillas curvas o tipográficas (‘ ’) → debes usar ' (comilla simple estándar)

  • NO uses THEN o ELSE → esa es sintaxis de SQL o ABAP, no válida en PLD

  • PLD solo permite esta estructura:

    If(condición, valor_si_verdadero, valor_si_falso)
    
    

:light_bulb: Alternativa visual

Si prefieres que el PLD muestre un campo u otro en función de la moneda, puedes duplicar el campo de “Total”:

  • Uno con condición: $[$8.0.0] = 'QTZ'

  • Otro con condición: $[$8.0.0] <> 'QTZ'

Y en cada campo, colocas el total deseado (SystemVariable(91) o SystemVariable(93)), y haces que el campo se oculte si no se cumple su condición.


:test_tube: Ejemplo real para copiar/pegar:

If($[$8.0.0] = 'QTZ', SystemVariable(91), SystemVariable(93))


Resumen Consultoria‑SAP

Para condicionar campos en un PLD de SAP Business One según la moneda del documento (DocCur), debes usar la fórmula:

If($[$8.0.0] = 'QTZ', SystemVariable(91), SystemVariable(93))

Evitando usar THEN/ELSE, comillas incorrectas o estructuras tipo SQL. Este ajuste es parte de los módulos B1 / Impresiones / Layouts. ¡Estamos aquí para ayudarte en los Foros SAP de Consultoria-SAP!

1 me gusta