code 33003 message looks Like the Image Is Not Attached Please Try Again

What?
This is an article to certificate how to use Zoho Deluge to download a file that was uploaded into a Zoho Creator course and then to attach it to a Sales Club in Zoho Books.

Why?
Because information technology took me so long to find out how to do this even after reading the official documentation and going through the online discussion forums to build this solution. As of May 2020, this is how I practise it.

How?
So the trick is, go over the official documentation, but don't take information technology every bit gospel. You only actually demand the syntax for attaching a document to a Sales Order in Books and the documentation leaves certain bits out. Simply getting the syntax right and using the

. setParamName

is fundamental.

Let's brand it even more interesting: I'g going to use a subform with the file upload field type so our tape tin can take more i file attached to it.

the CRM.attachFile command
Okay as a commencement example, there is a trouble here, yous asked for Books and this next bit shows how to attach it to a CRM record. This works in the scenario where you have disabled the transaction modules in CRM (so Sales Orders, Invoices, Buy Orders) and integrated your Zoho CRM with your Zoho Books. Why? Because so Zoho Books will create 3 custom modules in your CRM under the tab "Zoho Finance".

At that place is a lag/delay in the synchronization of Zoho Books to Zoho CRM and vice-versa. Annoyingly the attachment does not appear to be included in any sync... This method would be enough if the activeness was instantaneous and the attachments were also attached to the Sales Order in Books... but it isn't and doesn't. Information technology only attaches the file(southward) to the CRM record. Meet my "Additional" annotation further below in this article on how to sync the attachments to the CRM record, however for at present, check the logic of this as this is known to work on the CRM record:

copyrawstyler

// assuming I have a creator form chosen "myForm" // that the ID of the record is the value of the variable "myRecordID" // that a subform exists in the form called "Attachments" // that a field exists in the subform called "myUpload" // that the API proper name for the CRM Sales Orders module is "CustomModule5004" // that v_CrmSoID is the matched ID of the Sales Social club in CRM  r_CreatorForm = myForm[ID == myRecordID]; if(!isnull(r_CreatorForm.Attachments)) {     for each  row in r_CreatorForm.Attachments     {         r_AttachFile = zoho.crm.attachFile("CustomModule5004",v_CrmSoID, row.myUpload);     } }  // r_AttachFile should yield SUCCESS and if you lot bank check your CRM tape it volition have these under "attachments"
  1.  r_CreatorForm =myForm[ID ==myRecordID];
  2. if (!isnull (r_CreatorForm.Attachments) )
  3. {
  4. for each  row inr_CreatorForm.Attachments
  5. {
  6.          r_AttachFile = zoho.crm.attachFile ( "CustomModule5004" ,v_CrmSoID,  row.myUpload);
  7. }
  8. }

Setup a Zoho Oauth Connectedness
And then that we can apply invokeUrl and attempt the Residual via API (see what I did there?), we need a Zoho Oauth2 connection in Zoho Books.

  1. In Zoho Creator, go to Setup (3 horizontal lines in summit left if in edit mode » pops up the side bar to go to Home or Setup)
  2. Under "Extensions", click on "Connections"
  3. Click on "Add together Connection"
  4. Click on "Zoho Oauth"
  5. Give the connection an easy proper noun (volition be lowercased) but descriptive. For this test I volition call information technology "myconnector".
  6. Ensure that as a minimum, the telescopic ZohoBooks.salesorders.CREATE is ticked.
  7. Click on "Authorize"
  8. Read the notice proverb Creator would like access to bla bla bla and click on "Accept"

Get the file URL (ie. the PermaLink)
So if you've been googling how to download a file that was uploaded into a Creator form, you lot may take come across forums that are over 10 years old; URLs that were so custom that they didn't utilise to you because of the app owner, name, view link proper name, etc. The fastest mode I know how to get to it is to publish the study and right-click on the attachment to see what the link should be:

  1. Ensure a study exists with your grade and that one of the fields/columns viewable is the file upload or attachment field
  2. In Zoho Creator, in the "Edit" mode, go to "Settings"
  3. Under "Users and Control" click on "Publish"
  4. On the same row as your report, click on "Get embed Code" (ensure this report is published)
  5. Get the Permalink and copy and paste this into a new browser window/tab
  6. Correct-click on ane of the file upload/attachments and copy the link
  7. Return to your code and customize the permalink so it looks the same merely appends the file proper name

See the following every bit an instance of what you should finish up with:

copyrawstyler

// // adhere to ZohoBooks (for European union portal) v_CreatorDownloadBase = "https://creator.zoho.eu/file"; v_AppOwnerName = zoho.adminuser; v_AppLinkName = zoho.appname; v_ViewLinkName = "myForm_View";         // put your own study name v_CreatorRecordID = v_CreatorQuoteID;   // this is the creator record id that has the attachment v_SubFormName = "mySubform";            // put here the link name of your subform v_FieldName = "myField";                // put here the link name of the field in that subform v_PermalinkCode = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKL"; v_FileInternalName = row.Upload_File;   // looping through rows hither but it wants the internal proper name here eg. "1234567890123_temp.pdf" // // build the URL l_BuildUrl = List:String(); l_BuildUrl.add(v_CreatorDownloadBase); l_BuildUrl.add together(v_AppOwnerName); l_BuildUrl.add(v_AppLinkName); l_BuildUrl.add(v_ViewLinkName); l_BuildUrl.add(v_CreatorRecordID); l_BuildUrl.add together(v_SubFormName + "." + v_FieldName); l_BuildUrl.add("download"); l_BuildUrl.add together(v_PermalinkCode); v_DownloadUrl = l_BuildUrl.toString("/"); v_FileDownloadUrl = v_DownloadUrl + "?filepath=/" + v_FileInternalName; // // yields something similar // https://creator.zoho.eu/file/myadmin/myapp/myForm_View/123456789012345678/mySubform.myField/download/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKL?filepath=/1234567890123_temp.pdf
  1.  v_CreatorDownloadBase = "https://creator.zoho.eu/file";
  2.  v_AppOwnerName = zoho.adminuser;
  3.  v_AppLinkName = zoho.appname;
  4.  v_ViewLinkName = "myForm_View";
  5.  v_CreatorRecordID =v_CreatorQuoteID;
  6.  v_SubFormName = "mySubform";
  7.  v_FieldName = "myField";
  8.  v_PermalinkCode = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKL";
  9.  v_FileInternalName = row.Upload_File;
  10.  l_BuildUrl =List: String ( );
  11.  l_BuildUrl.add together (v_CreatorDownloadBase);
  12.  l_BuildUrl.add (v_AppOwnerName);
  13.  l_BuildUrl.add together (v_AppLinkName);
  14.  l_BuildUrl.add (v_ViewLinkName);
  15.  l_BuildUrl.add together (v_CreatorRecordID);
  16.  l_BuildUrl.add together (v_SubFormName+"."+ v_FieldName);
  17.  l_BuildUrl.add together ( "download" );
  18.  l_BuildUrl.add (v_PermalinkCode);
  19.  v_DownloadUrl =l_BuildUrl.toString ( "/" );
  20.  v_FileDownloadUrl =v_DownloadUrl+"?filepath=/"+ v_FileInternalName;

The total code with zipper to CRM and Zoho Books
Note that for the example below, my Creator form is called "Quote", my subform is called "Attachments" and the file upload field within that is chosen "Upload_File". The respective report is called "Quote_View".

copyrawstyler

string Internal.Attachment_Testing(int p_QuoteID, int p_SoID) { 	v_CreatorQuoteID = ifnull(p_QuoteID,0); 	v_BooksSoID = ifnull(p_SoID,0); 	// 	// config 	v_BooksOrgID = "1234567890";  // put here your client's own Books Organization ID 	v_CrmSoModule = "CustomModule5004";   // ensure this is the corresponding module API name in CRM 	v_BooksAPIBase = "https://books.zoho.eu/api/v3"; 	// 	// init 	v_OutputMessage = ""; 	v_CrmSoRef = ""; 	v_CrmSoID = 0; 	// 	// get books so name (sales club number) 	r_BooksSoDetails = zoho.books.getRecordsByID("Salesorders",v_BooksOrgID,v_BooksSoID.toString()); 	for each  r_SoBooks in r_BooksSoDetails 	{ 		if(!isnull(r_SoBooks.go("salesorder_number"))) 		{ 			v_CrmSoRef = r_SoBooks.get("salesorder_number").toString(); 		} 	} 	// 	// retrieve crm id 	if(v_CrmSoRef != "") 	{ 		r_SearchResults = zoho.crm.searchRecords(v_CrmSoModule,"(Name:equals:" + v_CrmSoRef + ")"); 		for each  r_Result in r_SearchResults 		{ 			v_CrmSoID = r_Result.get("id").toLong(); 		} 	} 	// 	// loop through attachments and associate to crm record 	if(v_CrmSoID != 0) 	{ 		r_CreatorQuoteDetails = Quote[ID == v_CreatorQuoteID]; 		if(!isnull(r_CreatorQuoteDetails.Attachments)) 		{ 			// loop through subform 			for each  row in r_CreatorQuoteDetails.Attachments 			{ 				// 				// attach to ZohoCRM 				r_AttachCRM = zoho.crm.attachFile(v_CrmSoModule,v_CrmSoID,row.Upload_File); 				 // 				// attach to ZohoBooks (for EU portal) 				v_CreatorDownloadBase = "https://creator.zoho.eu/file"; 				v_AppOwnerName = zoho.adminuser; 				v_AppLinkName = zoho.appname; 				v_ViewLinkName = "Quote_View";         // put your own report proper noun 				v_CreatorRecordID = v_CreatorQuoteID;   // this is the creator record id that has the attachment 				v_SubFormName = "Attachments";            // put here the link name of your subform 				v_FieldName = "Upload_Field";                // put hither the link name of the field in that subform 				v_PermalinkCode = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKL"; 				v_FileInternalName = row.Upload_File;   // looping through rows hither but information technology wants the internal proper noun here eg. "1234567890123_temp.pdf" 				// 				// build the URL 				l_BuildUrl = List:String(); 				l_BuildUrl.add(v_CreatorDownloadBase); 				l_BuildUrl.add(v_AppOwnerName); 				l_BuildUrl.add together(v_AppLinkName); 				l_BuildUrl.add(v_ViewLinkName); 				l_BuildUrl.add(v_CreatorRecordID); 				l_BuildUrl.add(v_SubFormName + "." + v_FieldName); 				l_BuildUrl.add("download"); 				l_BuildUrl.add together(v_PermalinkCode); 				v_DownloadUrl = l_BuildUrl.toString("/"); 				v_FileDownloadUrl = v_DownloadUrl + "?filepath=/" + v_FileInternalName; 				// 				// download the file into cache 				r_FileDownload = invokeurl 				[ 				     url :v_FileDownloadUrl 				     type :GET 				]; 				// 				// Important: employ setParamName on the response 				r_FileDownload.setParamName("attachment"); 				// 				// evaluate endpoint of Books API 				v_AttachUrl = v_BooksAPIBase + "/salesorders/" + v_BooksSoID + "/zipper?organization_id=" + v_BooksOrgID; 				// 				// send the file 				r_AttachBooks = invokeurl 				[ 				     url :v_AttachUrl 				     type :POST 				     files:r_FileDownload 				     connection:"myconnector" 				]; 				v_OutputMessage = v_OutputMessage + "File: " + v_FileInternalName.toString() + " CRM Response: " + r_AttachCRM.toString() + " Books Response: " + r_AttachBooks.toString(); 			} 		} 	} 	return v_OutputMessage; }  // output message should be each file name and response to attaching the file to the CRM and Books record
  1.  cordInternal.Attachment_Testing (int p_QuoteID,  intp_SoID)
  2. {
  3.      v_CreatorQuoteID = ifnull (p_QuoteID, 0 );
  4.      v_BooksSoID = ifnull (p_SoID, 0 );
  5.      v_BooksOrgID = "1234567890";
  6.      v_CrmSoModule = "CustomModule5004";
  7.      v_BooksAPIBase = "https://books.zoho.european union/api/v3";
  8.      v_OutputMessage = "";
  9.      v_CrmSoRef = "";
  10.      v_CrmSoID = 0;
  11.      r_BooksSoDetails = zoho.books.getRecordsByID ( "Salesorders" ,v_BooksOrgID,v_BooksSoID.toString ( ) );
  12. for each  r_SoBooks inr_BooksSoDetails
  13. {
  14. if (!isnull (r_SoBooks.get ( "salesorder_number" ) ) )
  15. {
  16.              v_CrmSoRef =r_SoBooks.get ( "salesorder_number" ).toString ( );
  17. }
  18. }
  19. if (v_CrmSoRef != "" )
  20. {
  21.          r_SearchResults = zoho.crm.searchRecords (v_CrmSoModule, "(Name:equals:"+ v_CrmSoRef+")" );
  22. for each  r_Result inr_SearchResults
  23. {
  24.              v_CrmSoID =r_Result.go ( "id" ).toLong ( );
  25. }
  26. }
  27. if (v_CrmSoID != 0 )
  28. {
  29.          r_CreatorQuoteDetails =Quote[ID ==v_CreatorQuoteID];
  30. if (!isnull (r_CreatorQuoteDetails.Attachments) )
  31. {
  32. for each  row inr_CreatorQuoteDetails.Attachments
  33. {
  34.                  r_AttachCRM = zoho.crm.attachFile (v_CrmSoModule,v_CrmSoID,row.Upload_File);
  35.                  v_CreatorDownloadBase = "https://creator.zoho.european union/file";
  36.                  v_AppOwnerName = zoho.adminuser;
  37.                  v_AppLinkName = zoho.appname;
  38.                  v_ViewLinkName = "Quote_View";
  39.                  v_CreatorRecordID =v_CreatorQuoteID;
  40.                  v_SubFormName = "Attachments";
  41.                  v_FieldName = "Upload_Field";
  42.                  v_PermalinkCode = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKL";
  43.                  v_FileInternalName = row.Upload_File;
  44.                  l_BuildUrl =List: String ( );
  45.                  l_BuildUrl.add (v_CreatorDownloadBase);
  46.                  l_BuildUrl.add (v_AppOwnerName);
  47.                  l_BuildUrl.add (v_AppLinkName);
  48.                  l_BuildUrl.add (v_ViewLinkName);
  49.                  l_BuildUrl.add (v_CreatorRecordID);
  50.                  l_BuildUrl.add (v_SubFormName+"."+ v_FieldName);
  51.                  l_BuildUrl.add ( "download" );
  52.                  l_BuildUrl.add together (v_PermalinkCode);
  53.                  v_DownloadUrl =l_BuildUrl.toString ( "/" );
  54.                  v_FileDownloadUrl =v_DownloadUrl+"?filepath=/"+ v_FileInternalName;
  55.                  r_FileDownload = invokeUrl
  56. [
  57. url: v_FileDownloadUrl
  58. type: Get
  59. ];
  60.                  r_FileDownload.setParamName ( "attachment" );
  61.                  v_AttachUrl =v_BooksAPIBase+"/salesorders/"+ v_BooksSoID+"/attachment?organization_id="+ v_BooksOrgID;
  62.                  r_AttachBooks = invokeUrl
  63. [
  64. url: v_AttachUrl
  65. type: Mail
  66. files: r_FileDownload
  67. connectedness: "myconnector"
  68. ];
  69.                  v_OutputMessage =v_OutputMessage+"file:  "+ v_FileInternalName.toString ( )+" CRM Response: "+ r_AttachCRM.toString ( )+" Books Response: "+ r_AttachBooks.toString ( );
  70. }
  71. }
  72. }
  73.  renderv_OutputMessage;
  74. }

A successful response to the Zoho Books attachment (per file) should be something similar to the following:

copyrawstyler

{   "code": 0,   "bulletin": "Your file has been fastened to the sales order.",   "documents": [     {       "document_id": "12345678901234567",       "file_name": "dummy.pdf",       "file_type": "pdf",       "file_size": 13264,       "file_size_formatted": "13 KB"     }   ] }
  1. {
  2. "code" :0 ,
  3. "bulletin" :"Your file has been attached to the sales club." ,
  4. "documents" :[
  5. {
  6. "document_id" :"12345678901234567" ,
  7. "file_name" :"dummy.pdf" ,
  8. "file_type" :"pdf" ,
  9. "file_size" :13264 ,
  10. "file_size_formatted" :"thirteen KB"
  11. }
  12. ]
  13. }

Boosted: Attach to Zoho Books Sales Society and Adhere to Zoho CRM Zoho Finance Sales Order
If you lot desire the attachments that yous've fastened the Zoho Books Sales Social club to sync over to the respective CRM Sales Club (now under Zoho Finance), you can't do this in one workflow because of the filibuster/lag in that

searchRecords

will non find the corresponding CRM sales social club record. Instead, do the in a higher place workflow to attach the files to the Sales Order in Zoho Books, then in your Creator app, do the post-obit for a delayed secondary workflow:

  1. Add together a single-line field to your Creator record called Zoho Books Sales Order Ref
  2. Add together a decision box field to your Creator record called Attached Files in CRM
  3. Setup a workflow that when So Ref changes, the tick box is unticked
    1. Form Workflows > New Workflow
    2. Select your grade
    3. Run when Created or Edited
    4. When to trigger: User input of a field
    5. Choose Field: ZohoBooks Sales Social club Ref
    6. Name it whatever: eg. OnUserInput_ZBSoRef
    7. Put the following Drench code:

      copyrawstyler

      input.Attached_Files_in_CRM = imitation;
      1. input.Attached_Files_in_CRM = false;
  4. Setup a scheduled task in Creator
    1. Schedules > New Workflow
    2. Choose a Date Field
    3. Kickoff Engagement: select course and cull Modified_Time
    4. Run this process on status "Attached Files in CRM equals false"
    5. Execute Workflow "After 2 Minutes"
    6. Repeat Interval = Once
    7. Name the workflow > Create Workflow
    8. Give information technology the code

      copyrawstyler

      // // ********************************************************** // attach to CRM record // Note: Because record cannot be retrieved with search in i workflow, run this ii minutes after Modified_Time // retrieve crm id v_CrmSoID=0; v_RecordID = ifnull(input.ID,0); if(v_RecordID != 0) { 	r_Record = Quote[ID == v_RecordID]; 	v_SoRef = ifnull(r_Record.ZohoBooks_Sales_Order_Ref,""); 	if(!isnull(r_Record.Attachments)) 	{ 		for each  r_Attachment in r_Record.Attachments 		{ 			// retrieve crm id 			if(v_SoRef != "") 			{ 				r_SearchResults = zoho.crm.searchRecords("CustomModule5004","(Proper noun:equals:" + v_SoRef + ")",1,one); 				for each  r_Result in r_SearchResults 				{ 					v_CrmSoID = r_Result.go("id").toLong(); 				} 			} 			// attach to CRM sales order 			if(v_CrmSoID != 0) 			{ 				r_AttachCRM = zoho.crm.attachFile("CustomModule5004",v_CrmSoID,r_Attachment.Upload_File); 			} 		} 	} 	r_Record.Attached_Files_in_CRM=true; }
      1.  v_CrmSoID=0;
      2.  v_RecordID = ifnull ( input.ID, 0 );
      3. if (v_RecordID != 0 )
      4. {
      5.      r_Record =Quote[ID ==v_RecordID];
      6.      v_SoRef = ifnull (r_Record.ZohoBooks_Sales_Order_Ref, "" );
      7. if (!isnull (r_Record.Attachments) )
      8. {
      9. for each  r_Attachment inr_Record.Attachments
      10. {
      11. if (v_SoRef != "" )
      12. {
      13.                  r_SearchResults = zoho.crm.searchRecords ( "CustomModule5004" , "(Name:equals:"+ v_SoRef+")" , ane , 1 );
      14. for each  r_Result inr_SearchResults
      15. {
      16.                      v_CrmSoID =r_Result.get ( "id" ).toLong ( );
      17. }
      18. }
      19. if (v_CrmSoID != 0 )
      20. {
      21.                  r_AttachCRM = zoho.crm.attachFile ( "CustomModule5004" ,v_CrmSoID,r_Attachment.Upload_File);
      22. }
      23. }
      24. }
      25.      r_Record.Attached_Files_in_CRM=truthful;
      26. }

Other timewasting activities but good code
Putting this code here on this article every bit information technology was the path I initially went downwardly.

Send mail attachment: creator file upload field value equally attached file
You lot might have tested using the trusty

sendmail

part and then got an fault when adding the "attachments" parameter. As a reminder,

content-type

in the sendmail is non supported in Zoho Creator and nor is List when submitted equally a file zipper.

copyrawstyler

sendmail [ 	from: zoho.adminuserid 	to: "This e-mail address is being protected from spambots. You need JavaScript enabled to view information technology." 	subject: "Testing an attachment" 	bulletin: "This is a exam" 	attachments: file: input.my_upload ]; // success!
  1. sendmail
  2. [
  3. from: zoho.adminuserid
  4. to: "This email address is existence protected from spambots. You need JavaScript enabled to view information technology."
  5. subject: "Testing an attachment"
  6. message: "This is a examination"
  7. attachments: file: input.my_upload
  8. ];

Send postal service attachment: creator report view as pdf

copyrawstyler

sendmail [ 	from: zoho.adminuserid 	to: "This email address is existence protected from spambots. You need JavaScript enabled to view information technology." 	subject field: "Testing an attachment" 	message: "This is a test" 	attachments: view: myFormReport[ID == myRecordID] equally PDF ]; // pretty cool: sends a study from Creator every bit a PDF attached to an email.
  1. sendmail
  2. [
  3. from: zoho.adminuserid
  4. to: "This email address is being protected from spambots. You demand JavaScript enabled to view it."
  5. subject: "Testing an attachment"
  6. message: "This is a test"
  7. attachments: view:  myFormReport[ID ==myRecordID] equally PDF
  8. ];

When attaching a file in CRM dissimilar in Books, you need the following line of code if invoking and attaching (NB: but does 1 attachment):

copyrawstyler

v_SoID = salesorder.get("salesorder_id"); v_SoRef = salesorder.go("salesorder_number"); v_BooksOrgID = organization.go("organization_id"); v_Url = "https://books.zoho.eu/api/v3/salesorders/" + v_SoID + "/attachment?organization_id=" + v_BooksOrgID; l_Attachments = invokeurl [ 	url :v_Url 	blazon :GET 	connection:"abbooks" ]; r_SearchResults = zoho.crm.searchRecords("CustomModule5004","(Proper noun:equals:" + v_SoRef + ")",i,ane); for each  r_Result in r_SearchResults { 	v_CrmSoID = r_Result.get("id"); 	l_Attachments.setParamName("file"); 	// v1 	// l_Attachments.setParamName("attachment"); 	// r_AttachCRM = zoho.crm.attachFile("CustomModule5004",v_CrmSoID,l_Attachments); 	// v2 	v_AttachUrl = "https://www.zohoapis.eu/crm/v2/CustomModule5004/" + v_CrmSoID + "/Attachments"; 	r_AttachCRM = invokeurl 	[ 		url :v_AttachUrl 		blazon :POST 		files:l_Attachments 		connection:"mycrmconnector" 	]; 	info r_AttachCRM; }
  1.  v_SoID =salesorder.get ( "salesorder_id" );
  2.  v_SoRef =salesorder.get ( "salesorder_number" );
  3.  v_BooksOrgID =organisation.become ( "organization_id" );
  4.  v_Url = "https://books.zoho.eu/api/v3/salesorders/"+ v_SoID+"/attachment?organization_id="+ v_BooksOrgID;
  5.  l_Attachments = invokeUrl
  6. [
  7. url: v_Url
  8. type: GET
  9. connectedness: "abbooks"
  10. ];
  11.  r_SearchResults = zoho.crm.searchRecords ( "CustomModule5004" , "(Proper noun:equals:"+ v_SoRef+")" , i , ane );
  12. for each  r_Result inr_SearchResults
  13. {
  14.      v_CrmSoID =r_Result.become ( "id" );
  15.      l_Attachments.setParamName ( "file" );
  16.      v_AttachUrl = "https://world wide web.zohoapis.eu/crm/v2/CustomModule5004/"+ v_CrmSoID+"/Attachments";
  17.      r_AttachCRM = invokeUrl
  18. [
  19. url: v_AttachUrl
  20. type: POST
  21. files: l_Attachments
  22. connexion: "mycrmconnector"
  23. ];
  24.  infor_AttachCRM;
  25. }

Encountered Mistake(s):

  • {"code":57,"message":"You are not authorized to perform this operation"}: If you connect via a Zoho OAuth connection, check that the portal (Pinnacle Level Domain: TLD) is correct [European union for Europe // COM for USA] so books.zoho.european union for Europe and books.zoho.com for Usa.
  • {"code":ii,"message":"The request passed is not valid."}: The parameters yous are sending are not in the right format.
  • {"code":fifteen,"bulletin":"Please ensure that the zipper has less than 100 characters."}: The attachment parameter is populated with the file content instead of the internal file proper name.
  • {"code":ii,"message":"Invalid value passed for doc"}: The doc parameter contains special characters.
  • Improper Statement   Error might be due to missing ';' at end of the line or incomplete expression This could exist a missing semi-colon somewhere in your lawmaking OR that you accept included either "content-type" in your invokeUrl (non supported by Creator: use headers instead) or submitted a List of files under "files" (too non supported via Creator).
  • Error due to - 'Error at line : -1, Error due to - 'Internal Exception'': Problem with your parameter format, ensure these are passed as a string (eg m_Params.toString()).
  • {"code":33003,"bulletin":"Receipt not attached."}: And so shut, are you sending attachment every bit a parameter with a value in information technology? Don't. The full code example above will work.
  • Currently this only appears to accept Microsoft Word Documents and Adobe PDF files! Applicable to Zoho Books. If the user attaches text files (TXT) these will only attach to the Sales Order in the CRM tape just not to the Sales Order in Zoho Books..

Source(south):

  • Zoho Books API Documentation: Add together attachment to a sales order
  • Zoho Deluge - Invoke URL

Category: Zoho :: Article: 721


Joes Revolver Map

Joes Give-and-take Cloud

Accreditation

Donate & Support

If you like my content, and would like to back up this sharing site, experience free to donate using a method below:

Paypal:

Donate to Joel Lipman via PayPal

Bitcoin:

Donate to Joel Lipman with Bitcoin - Valid till 8 May 2022 bc1qjtp4l4ra452wzvuk9a45yfj82zkahsyy2z379y

freemannorned.blogspot.com

Source: https://www.joellipman.com/articles/crm/zoho/zoho-creator-download-uploaded-file-and-attach-to-sales-order-in-zoho-books.html

0 Response to "code 33003 message looks Like the Image Is Not Attached Please Try Again"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel