J'invoque un cfc, le cfc dispose d'un ensemble par défaut d'arguments comme ceci:Pouvez-vous réaffecter le <cfargument par défaut dans un cfc?
<cfargument name="EMAIL_TEMPLATE_CODE" type="string" required="yes" hint="EMAIL_TEMPLATE_CODE is required.">
<cfargument name="EMAIL_TEMPLATE_SUBJECT" default="" type="string" required="no" hint="EMAIL_TEMPLATE_SUBJECT is NOT required.">
<cfargument name="EMAIL_TEMPLATE_BODY" default="" type="string" required="no" hint="EMAIL_TEMPLATE_BODY is NOT required.">
Ce que je voudrais faire est de ces arguments ne requred (comme vous pouvez le voir nécessaire = "no ") mais j'aimerais réaffecter la variable arguments si nécessaire.
donc quelque chose comme:
<cfargument name="EMAIL_TEMPLATE_CODE" type="string" required="yes" hint="EMAIL_TEMPLATE_CODE is required.">
<cfargument name="EMAIL_TEMPLATE_SUBJECT" default="" type="string" required="no" hint="EMAIL_TEMPLATE_SUBJECT is NOT required.">
<cfargument name="EMAIL_TEMPLATE_BODY" default="" type="string" required="no" hint="EMAIL_TEMPLATE_BODY is NOT required.">
<cfinvoke component="#Request.CFCPath#.email_template" method="getEmailTemplate" returnvariable="getEmailTemplate">
<cfinvokeargument name="EMAIL_TEMPLATE_CODE" value="#ARGUMENTS.EMAIL_TEMPLATE_CODE#">
</cfinvoke>
<cfif getEmailTemplate.RecordCount>
<cfparam name="ARGUMENTS.EMAIL_TEMPLATE_SUBJECT" default="#getEmailTemplate.EMAIL_TEMPLATE_SUBJECT#" type="string">
<cfparam name="ARGUMENTS.EMAIL_TEMPLATE_BODY" default="#getEmailTemplate.EMAIL_TEMPLATE_BODY#" type="string">
</cfif>
Mais je ne suis pas en mesure de remplacer la variable par défaut ARGUMENTS. Y at-il quelque chose que vous pouvez repérer que je fais mal?
EDIT:
Je fais cela parce que si aucun argument est passé au cfc, je veux créer un. Je suppose que je devrais cfset une variable locale si l'argument n'a pas de longueur?
<cfif Len(ARGUMENTS.EMAIL_TEMPLATE_ADDRESS_FROM)>
<cfset EMailTemplateAddressFrom = ARGUMENTS.EMAIL_TEMPLATE_ADDRESS_FROM>
<cfelse>
<cfset EMailTemplateAddressFrom = getEmailTemplate.EMAIL_TEMPLATE_ADDRESS_FROM>
</cfif>
J'ai essayé la première option que vous avez fournie plus tôt, avant que je pose la question. Il semble que, pour une raison quelconque, la fonction ferait erreur si quelque chose était au-dessus des arguments. Afin de définir la valeur par défaut comme # getEmailTemplate.EMAIL_TEMPLATE_ADDRESS_FROM # je devais exécuter la requête au-dessus des arguments. Comportement étrange et je n'ai jamais rencontré ce problème, jusqu'à aujourd'hui. – jyoseph
bien, ça dépend si ça peut référencer la variable getEmailTemplate, quelle qu'elle soit. Si c'est une variable dans la portée This ou Variables, ça ira. – Henry