back to top

Creating a URL attachment for Infor CRM

I recently was asked how to be able to create a URL attachment via server-side code in the Infor CRM web client. Url attachments are like other attachments in that a file is created in the attachment directory and a record is added to the ATTACHMENT table. However, URL attachments are always a .url file type. This allows an attachment to just be a shortcut to a web address.

In order to create one of these server side, you first must construct the .url file itself. Then you can use a built in attachment business rule to actually do the insertion of the attachment.

To create the url file we can use a StreamWriter and create the file that way. In my example I am going to add a file simply pointing to google. The file will be created in the system temporary path initially. Here is the relevant code:

string linkUrl = "https://www.google.com";
string OutputFilePath = System.IO.Path.GetTempPath();
string OutputName = "MyGoogleLink.url";
using (System.IO.StreamWriter writer = new System.IO.StreamWriter(System.IO.Path.Combine(OutputFilePath, OutputName)))
{
    writer.WriteLine("[InternetShortcut]");
    writer.WriteLine("URL=" + linkUrl);
    writer.Flush();
}

Now with the file created locally on the server, we can now create a CRM attachment entity. In this case I am just going to add an Activity against a hard-coded account record. Once the activity entity is instantiated we then call the InsertURLAttachment rule, passing in the full path to the file we created. Here is the relevant code:

var attach = Sage.Platform.EntityFactory.Create<IAttachment>();
attach.Description = "Google";
attach.AccountId = "SomeAccountId";
attach.InsertURLAttachment(System.IO.Path.Combine(OutputFilePath, OutputName));

The rule InsertURLAttachment copies the supplied file to the CRM attachment directory. It also then handles saving the attachment record, so we do not need to do that in our code.

Finally, we want to be sure to clean up the temp file we created, otherwise it will stay in the temp folder. Here is that:

if (System.IO.File.Exists(System.IO.Path.Combine(OutputFilePath, OutputName)))
    System.IO.File.Delete(System.IO.Path.Combine(OutputFilePath, OutputName));

And the end result is a shiny new attachment in Infor CRM

Contact Customer FX for your CRM project
We let our expertise speak for itself - let us know how our all-star team can help on your CRM project
About the Author
Kris Halsrud
Kris Halsrud
Kris Halsrud is a Senior Analyst / Developer for Customer FX Corporation.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Infor CRM Sync for Exchange: Action Required by August 31, 2026

Using Infor CRM Sync for Exchange with Microsoft 365? Your Exchange administrator must update tenant settings by August 31, 2026 to prevent sync disruption.

[Webinar] What’s Coming Next for Infor CRM SLX and Why v10 Matters

See what’s coming next for Infor CRM SLX, including new marketing workflows, automation improvements, and reasons to consider upgrading to v10.

Disable Caching in Infor CRM SLX Web Client

In the rare case caching is causing issues in the Infor CRM SLX web client, it is possible to disable specific types of caching by making edits using Application Architect, and then deploying.

Exploring AI Options for Infor CRM v10

I've started taking a closer look at the AI capabilities built into Infor CRM v10. Over the next several posts, I'll share what I learn. From the built-in features and supported AI providers to implementation considerations, costs, and practical use cases.

Infor CRM SLX 10.0: Delegate Ownership Changes for “Everyone” Records

Learn how the new EveryoneOwnerAssignment secured action in Infor CRM SLX 10.0 allows designated users to change ownership of Everyone-owned records without requiring Administrator access.

Related Articles

Infor CRM Sync for Exchange: Action Required by August 31, 2026

Using Infor CRM Sync for Exchange with Microsoft 365? Your Exchange administrator must update tenant settings by August 31, 2026 to prevent sync disruption.

[Webinar] What’s Coming Next for Infor CRM SLX and Why v10 Matters

See what’s coming next for Infor CRM SLX, including new marketing workflows, automation improvements, and reasons to consider upgrading to v10.

Disable Caching in Infor CRM SLX Web Client

In the rare case caching is causing issues in the Infor CRM SLX web client, it is possible to disable specific types of caching by making edits using Application Architect, and then deploying.

Exploring AI Options for Infor CRM v10

I've started taking a closer look at the AI capabilities built into Infor CRM v10. Over the next several posts, I'll share what I learn. From the built-in features and supported AI providers to implementation considerations, costs, and practical use cases.

Related Videos