Error: / apex / lightningAccountLayout: Error de sintaxis y error de sintaxis

Oct 12 2020

Me encuentro con estos dos errores y no estoy seguro de por qué. ¿Alguna sugerencia?

  • Error: / apex / lightningAccountLayout: Error de sintaxis

  • Error Error: error de sintaxis

Soy nuevo en SF y estoy aprendiendo Apex. También estoy pasando por el curso Trailhead para esto, pero el código a continuación me parece bien.

     
</apex:page>
<apex:page standardController="Account">
  <apex:stylesheet value="{!$Resource.styleforAccountLightningPage}"/>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
  <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script> 
  
  
  <p>{!IF(CONTAINS(Account.Systems_Pick__c,"Medication Dispenser"), 
      '"Medication Dispenser Device Number: " + {Account.MED_Device_Number__c}', false)}</p>

       
     
</apex:page>

Respuestas

1 sfdcfox Oct 12 2020 at 21:30

Los apóstrofos simples son incorrectos, así como las llaves adicionales. Pones toda la fórmula {!...}y no debe haber llaves adicionales en ninguna parte. Además, la concatenación de cadenas es & en Visualforce. Finalmente, no puede mezclar tipos de retorno en una declaración IF (cadena frente a booleano). En su lugar, use una cadena vacía.

  <p>{!IF(CONTAINS(Account.Systems_Pick__c,"Medication Dispenser"), 
      "Medication Dispenser Device Number: " & TEXT(Account.MED_Device_Number__c), '')}</p>
AlexisFrisch Oct 12 2020 at 22:50

Este fue el código que funcionó

<apex:page standardController="Account">

  <apex:stylesheet value="{!$Resource.styleforAccountLightningPage}"/>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
  <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script> 
  
  
 <p> {!IF(CONTAINS(Account.Systems_Pick__c,"Medication Dispenser"), 
      "Medication Dispenser Device Number: " & TEXT(Account.MED_Device_Number__c), '')} </p>
     
</apex:page>

El error que recibí arriba fue porque Account.MED_Device_Number__c era un número y no una cadena. Poniendo TEXT () alrededor, solucionó el error.

¡El código funciona muy bien!

¡Enorme agradecimiento a @sfdcfox por ayudar y explicar tan bien!