Нужно видеть отправляемые параметры запроса ColdFusion и возвращать данные

Новичок в ColdFusion.

У меня есть скрипт, который работает для всех поставщиков, кроме одного. Сценарий передает несколько параметров и получает список заявок для указанного поставщика, за исключением ранее упомянутого поставщика.

Я хотел бы отладить одну функцию, чтобы убедиться, что я передаю правильные параметры для этого одного поставщика, а также вижу ответ, возвращаемый для того же поставщика.

Какой лучший способ отладить мой сценарий? Является ли один из них хорошим вариантом?

<cfdump var="#VARIABLES#">
<cfdump var="#getPageContext().getBuiltInScopes()#"/>

Я уверен, что у всех вас был случай, когда вам нужно было доказать, что это проблема с базой данных, а не сценарий.

вот функция

<!--- function getAllRenewalRequestsChrisTest for testing --->   
<cffunction name="getAllRenewalRequestsChrisTest" access="public" returnType="Query" hint="">
   <cfargument name="Domain" type="String" required="true" hint="Domain for Database Identification.">
   <cfargument name="Org_ID" type="Numeric" required="true" hint="Org_Id - Primary Key">
   <cfargument name="UserKey" type="Numeric" required="true" hint="UserPK - Primary Key">

   <cfset var Local = StructNew()>

   <cftry>
       <cfset Local.ERXInfo = CreateObject("component","cfc.org.Org").getEprescribeStatus("#Arguments.Domain#","#Arguments.Org_ID#")>
       <cfset Local.credentials = StructNew()>
       <cfset Local.credentials.PartnerName = "#Local.ERXInfo.eRxPartnerName#">
       <cfset Local.credentials.Name = "#Local.ERXInfo.eRxName#">
       <cfset Local.credentials.Password = "#Local.ERXInfo.eRxPassword#">

       <cfset Local.accountRequest = StructNew()>
       <cfset Local.accountRequest.AccountId = "#getEMRDataDSN(Arguments.Domain)#-#Arguments.Org_ID#">
       <cfset Local.accountRequest.SiteId = "#Local.ERXInfo.eRxSiteId#">

       <cfset Local.wsargs = StructNew()>
       <cfset Local.wsargs.timeout = 5>
       <cfset Local.objWebService = CreateObject("webservice","#getErxServer(Arguments.Domain)#v7/WebServices/Update1.asmx?WSDL", Local.wsargs)>

       <cfset Local.objSearchResponse = Local.objWebService.GetAllRenewalRequestsV2 (Local.credentials, Local.accountRequest, "","")>

       <cfset Local.qTemp = QueryNew("DoctorFullName,DrugInfo,ExternalPrescriptionId,ExternalDoctorId,NumberOfRefills,PatientDOB,PatientName,FirstName,LastName,MiddleName,PatientGender,ReceivedTimestamp,RenewalRequestGuid,Quantity,Sig,RenewalRequestMed,EcastPharmacyId,EcastPharmacyName,EcastPharmacyInfo,EcastPharmacyInfoToolTip")>

        <cfset Local.renewalRequests = Local.objSearchResponse.getRenewalSummaryArray().getRenewalSummaryV2()>

        <cfset Local.objPharmacy = CreateObject("component","cfc.pharmacy")> 

        <cfloop from="1" to="#ArrayLen(Local.renewalRequests)#" index="Local.indexB">
            <cfset QueryAddRow(Local.qTemp)>
            <cfset QuerySetCell(Local.qTemp, "DoctorFullName", "#Local.renewalRequests[Local.indexB].getDoctorFullName()#")>
            <cfset QuerySetCell(Local.qTemp, "DrugInfo", "#Local.renewalRequests[Local.indexB].getDrugInfo()#")>
            <cfset QuerySetCell(Local.qTemp, "ExternalPrescriptionId", "#Local.renewalRequests[Local.indexB].getExternalPrescriptionId()#")>
            <cfif Trim(Local.renewalRequests[Local.indexB].getExternalDoctorId()) EQ "">
                <cfset QuerySetCell(Local.qTemp, "ExternalDoctorId", "0")>
            <cfelse>
                <cfset QuerySetCell(Local.qTemp, "ExternalDoctorId", "#Trim(Local.renewalRequests[Local.indexB].getExternalDoctorId())#")>
            </cfif>

            <cfset QuerySetCell(Local.qTemp, "NumberOfRefills", "#Local.renewalRequests[Local.indexB].getNumberOfRefills()#")>

            <cfif Len(trim(Local.renewalRequests[Local.indexB].getPatientDOB())) EQ 8>  
               <cfset QuerySetCell(Local.qTemp, "PatientDOB", "#DateFormat(CreateDate(Left(trim(Local.renewalRequests[Local.indexB].getPatientDOB()), 4), Mid(trim(Local.renewalRequests[Local.indexB].getPatientDOB()), 5, 2), Mid(trim(Local.renewalRequests[Local.indexB].getPatientDOB()), 7, 2)),'mm/dd/yyyy')#")>
            <cfelse>
               <cfset QuerySetCell(Local.qTemp, "PatientDOB", "#Trim(Local.renewalRequests[Local.indexB].getPatientDOB())#")>
            </cfif>

            <cfset QuerySetCell(Local.qTemp, "PatientName", "#Local.renewalRequests[Local.indexB].getPatientLastName()#, #Local.renewalRequests[Local.indexB].getPatientFirstName()# #Local.renewalRequests[Local.indexB].getPatientMiddleName()#")>
            <cfset QuerySetCell(Local.qTemp, "FirstName", "#Local.renewalRequests[Local.indexB].getPatientFirstName()#")>
            <cfset QuerySetCell(Local.qTemp, "LastName", "#Local.renewalRequests[Local.indexB].getPatientLastName()#")>
            <cfset QuerySetCell(Local.qTemp, "MiddleName", "#Local.renewalRequests[Local.indexB].getPatientMiddleName()#")>
            <cfset QuerySetCell(Local.qTemp, "PatientGender", "#UCase(Local.renewalRequests[Local.indexB].getPatientGender())#")>

            <cfset Local.tempPharmacyInfo = Local.objPharmacy.getPharmacyInfoByNCPDID(Arguments.Domain,Arguments.Org_ID,Local.renewalRequests[Local.indexB].getNcpdpID(),0)>
            <cfif Local.tempPharmacyInfo.recordcount GT 0><!--- non hidden pharmacy already exists--->
               <cfset Local.currentPharmacyInfo = Local.objPharmacy.getPharmacyInfoById(Arguments.Domain,Local.tempPharmacyInfo.Pharmacy_Id)>
               <cfif Trim(Local.currentPharmacyInfo.PharmacyDisplayName) NEQ "">
                  <cfset QuerySetCell(Local.qTemp, "EcastPharmacyName", "#Trim(Local.currentPharmacyInfo.PharmacyDisplayName)#")> 
               <cfelse>
                  <cfset QuerySetCell(Local.qTemp, "EcastPharmacyName", "#Trim(Local.currentPharmacyInfo.Pharmacy_Name)#")>
               </cfif>
               <cfset QuerySetCell(Local.qTemp, "EcastPharmacyId", "#Local.currentPharmacyInfo.Pharmacy_Id#")>
            <cfelse>
               <cfset Local.tempPharmacyInfo = Local.objPharmacy.getPharmacyInfoByNCPDID(Arguments.Domain,Arguments.Org_ID,Local.renewalRequests[Local.indexB].getNcpdpID(),1)>
               <cfif Local.tempPharmacyInfo.recordcount GT 0><!--- hidden pharmacy already exists--->
                  <cfset Local.currentPharmacyInfo = Local.objPharmacy.getPharmacyInfoById(Arguments.Domain,Local.tempPharmacyInfo.Pharmacy_Id)>
                  <cfset QuerySetCell(Local.qTemp, "EcastPharmacyId", "#Local.currentPharmacyInfo.Pharmacy_Id#")>
                  <cfif Trim(Local.currentPharmacyInfo.PharmacyDisplayName) NEQ "">
                     <cfset QuerySetCell(Local.qTemp, "EcastPharmacyName", "#Trim(Local.currentPharmacyInfo.PharmacyDisplayName)#")> 
                  <cfelse>
                     <cfset QuerySetCell(Local.qTemp, "EcastPharmacyName", "#Trim(Local.currentPharmacyInfo.Pharmacy_Name)#")>
                  </cfif>
               <cfelse> <!--- add pharmacy to org --->
                  <cfset Local.tempPharmacyInfo = getPharmacyByNCPDID(Arguments.Domain,Arguments.Org_Id,Local.renewalRequests[Local.indexB].getNcpdpID())>
                  <cfset Local.newPharmacyId = Local.objPharmacy.setPharmacy(Arguments.domain,Arguments.Org_ID,Arguments.UserKey,Local.tempPharmacyInfo.NAME,Local.tempPharmacyInfo.NAME,Local.tempPharmacyInfo.PHONE,Local.tempPharmacyInfo.FAX,Local.tempPharmacyInfo.ADDRESS,Local.tempPharmacyInfo.CITY,Local.tempPharmacyInfo.ZIP,Local.tempPharmacyInfo.STATE,-1,Local.tempPharmacyInfo.NCPDID,Local.tempPharmacyInfo.PHARMACYTYPE,1)>
                  <cfset Local.currentPharmacyInfo = Local.objPharmacy.getPharmacyInfoById(Arguments.Domain,Local.newPharmacyId)>
                  <cfset QuerySetCell(Local.qTemp, "EcastPharmacyId", "#Local.newPharmacyId#")>
                  <cfif Trim(Local.currentPharmacyInfo.PharmacyDisplayName) NEQ "">
                     <cfset QuerySetCell(Local.qTemp, "EcastPharmacyName", "#Trim(Local.currentPharmacyInfo.PharmacyDisplayName)#")> 
                  <cfelse>
                     <cfset QuerySetCell(Local.qTemp, "EcastPharmacyName", "#Trim(Local.currentPharmacyInfo.Pharmacy_Name)#")>
                  </cfif>
               </cfif>
            </cfif>
            <cfif Trim(Local.currentPharmacyInfo.PharmacyDisplayName) NEQ "">
               <cfset QuerySetCell(Local.qTemp, "EcastPharmacyInfoToolTip", "#Trim("Name: #Local.currentPharmacyInfo.PharmacyDisplayName#$SPLIT$Address: #Local.currentPharmacyInfo.Pharmacy_Address# #Local.currentPharmacyInfo.Pharmacy_City# #Local.currentPharmacyInfo.Pharmacy_State# #Local.currentPharmacyInfo.Pharmacy_Zip#$SPLIT$Phone: #Local.currentPharmacyInfo.Pharmacy_Phone#$SPLIT$Fax: #Local.currentPharmacyInfo.Pharmacy_Fax#")#")>
               <cfset QuerySetCell(Local.qTemp, "EcastPharmacyInfo", "#Trim("#Local.currentPharmacyInfo.PharmacyDisplayName#$SPLIT$#Local.currentPharmacyInfo.Pharmacy_Address#$SPLIT$#Local.currentPharmacyInfo.Pharmacy_City#, #Local.currentPharmacyInfo.Pharmacy_State# #Local.currentPharmacyInfo.Pharmacy_Zip#$SPLIT$#Local.currentPharmacyInfo.Pharmacy_Phone# (phone)$SPLIT$#Local.currentPharmacyInfo.Pharmacy_Fax# (fax)")#")>
            <cfelse>
               <cfset QuerySetCell(Local.qTemp, "EcastPharmacyInfoToolTip", "#Trim("Name: #Local.currentPharmacyInfo.Pharmacy_Name#$SPLIT$Address: #Local.currentPharmacyInfo.Pharmacy_Address# #Local.currentPharmacyInfo.Pharmacy_City# #Local.currentPharmacyInfo.Pharmacy_State# #Local.currentPharmacyInfo.Pharmacy_Zip#$SPLIT$Phone: #Local.currentPharmacyInfo.Pharmacy_Phone#$SPLIT$Fax: #Local.currentPharmacyInfo.Pharmacy_Fax#")#")>
               <cfset QuerySetCell(Local.qTemp, "EcastPharmacyInfo", "#Trim("#Local.currentPharmacyInfo.Pharmacy_Name#$SPLIT$#Local.currentPharmacyInfo.Pharmacy_Address#$SPLIT$#Local.currentPharmacyInfo.Pharmacy_City#, #Local.currentPharmacyInfo.Pharmacy_State# #Local.currentPharmacyInfo.Pharmacy_Zip#$SPLIT$#Local.currentPharmacyInfo.Pharmacy_Phone# (phone)$SPLIT$#Local.currentPharmacyInfo.Pharmacy_Fax# (fax)")#")>
            </cfif>
            <cfset QuerySetCell(Local.qTemp, "ReceivedTimestamp", "#Local.renewalRequests[Local.indexB].getReceivedTimestamp()#")>
            <cfset QuerySetCell(Local.qTemp, "RenewalRequestGuid", "#Local.renewalRequests[Local.indexB].getRenewalRequestGuid()#")>
            <cfset QuerySetCell(Local.qTemp, "Quantity", "#Local.renewalRequests[Local.indexB].getQuantity()#")>
            <cfset QuerySetCell(Local.qTemp, "Sig", "#Local.renewalRequests[Local.indexB].getSig()#")>

            <cfif Trim(Local.renewalRequests[Local.indexB].getQuantity()) NEQ "" AND Trim(Local.renewalRequests[Local.indexB].getSig()) NEQ "">
                <cfset QuerySetCell(Local.qTemp, "RenewalRequestMed", "#Local.renewalRequests[Local.indexB].getDrugInfo()# (#Trim(Local.renewalRequests[Local.indexB].getQuantity())#, #Trim(Local.renewalRequests[Local.indexB].getSig())#)")>
            <cfelse>
                <cfif Trim(Local.renewalRequests[Local.indexB].getQuantity()) NEQ "">
                    <cfset QuerySetCell(Local.qTemp, "RenewalRequestMed", "#Local.renewalRequests[Local.indexB].getDrugInfo()# (#Trim(Local.renewalRequests[Local.indexB].getQuantity())#)")>
                <cfelse>
                    <cfset QuerySetCell(Local.qTemp, "RenewalRequestMed", "#Local.renewalRequests[Local.indexB].getDrugInfo()# (#Trim(Local.renewalRequests[Local.indexB].getSig())#)")>
                </cfif>
            </cfif>
        </cfloop>

        <cfcatch type="Any">
            <cfset Local.qTemp = QueryNew("DoctorFullName,DrugInfo,ExternalPrescriptionId,ExternalDoctorId,NumberOfRefills,PatientDOB,PatientName,FirstName,LastName,MiddleName,PatientGender,ReceivedTimestamp,RenewalRequestGuid,Quantity,Sig,RenewalRequestMed,EcastPharmacyId,EcastPharmacyName,EcastPharmacyInfo,EcastPharmacyInfoToolTip")>
        </cfcatch>
    </cftry>
  <cfreturn Local.qTemp>
    <cfdump var="getAllRenewalRequestsChrisTest">
 </cffunction>

2 ответа

Решение

Ваши параметры передаются в форме или области видимости URL? Или вы имеете в виду, что у вас есть несколько параметров, которые передаются в запрос?

Похоже, что вы хотите сделать, это сбросить параметры до того, как они привыкнут (или сразу после того, как они были переданы), чтобы увидеть, что они для вашего поставщика проблем.

Например, если ваши параметры передаются в области видимости формы, вы можете сначала вывести область видимости формы в сценарий, который должен выполнять запрос.

<!--- params passed in via form scope --->
<cfdump var="#form#" output="browser" />

<!--- do query --->
<cfquery name="myVendorData" datasource="...">
    ... SQL which uses the suspect parameters goes here...
</cfquery>

Это помогает?

Пример кода поможет мне дать вам лучший ответ.

Другие вопросы по тегам