Microsoft recently added functionality for one-click document generation to Dynamics 365.  Although this is great functionality, it is a bit limited with regard to where it can save the generated document.  Out of the box, we can add the SetWordTemplate action to a workflow, but that generates the document and saves it as an attachment to an annotation.  What if you want to save it in SharePoint?  We can accomplish this with a custom plugin.

Although Microsoft has added them to the online documentation, there are some actions available for us to call.

 Input ParametersOutput Parameters
ActionNameTypeNameType
ExportWordDocumentEntityTypeCodeInt32WordFileByte[]
SelectedRecordsString  
SelectedTemplateEntityReference  
UploadDocument   ContentByte[]None 
OverwriteExistingBoolean  
EntityEntity  
ParentEntityReferenceEntityReference  

First, let's create some extension methods that will help us call these undocumented commands to generate either a Word or an Excel document.

if (typeof BGuidinger == "undefined") {
    BGuidinger = { __namespace: true };
}
if (typeof BGuidinger.Samples == "undefined") {
    BGuidinger.Samples = { __namespace: true };
}

BGuidinger.Samples.Sdk = {
    ExportWordDocument: function (templateId, entityType, entityId) {
        this.EntityTypeCode = entityType;
        this.SelectedRecords = "[ '{" + entityId + "}' ]";
        this.SelectedTemplate = {
            entityType: "documenttemplate",
            id: templateId
        };

        this.getMetadata = function () {
            return {
                operationName: "ExportWordDocument",
                operationType: 0,
                parameterTypes: {
                    "EntityTypeCode": {
                        "typeName": "Edm.Int32",
                        "structuralProperty": 1
                    },
                    "SelectedRecords": {
                        "typeName": "Edm.String",
                        "structuralProperty": 1
                    },
                    "SelectedTemplate": {
                        "typeName": "mscrm.documenttemplate",
                        "structuralProperty": 5
                    }
                }
            };
        };
    },
    UploadDocument: function (entityType, entityId, filename, content) {
        this.Content = content;
        this.OverwriteExisting = true;
        this.Entity = {
            entityType: 'sharepointdocument',
            id: '00000000-0000-0000-0000-000000000000',
            title: filename
        };
        this.ParentEntityReference = {
            entityType: entityType,
            id: entityId
        };

        this.getMetadata = function () {
            return {
                operationName: "UploadDocument",
                operationType: 0,
                parameterTypes: {
                    "Content": {
                        "typeName": "Edm.String",
                        "structuralProperty": 1
                    },
                    "OverwriteExisting": {
                        "typeName": "Edm.Boolean",
                        "structuralProperty": 1
                    },
                    "Entity": {
                        "typeName": "mscrm.sharepointdocument",
                        "structuralProperty": 5
                    },
                    "ParentEntityReference": {
                        "typeName": "mscrm.crmbaseentity",
                        "structuralProperty": 5
                    }
                }
            };
        };
    }
};

What's awesome about the UploadDocument action is we don't have to include a dependency on the SharePoint SDK (and deal with ILMerge...).  This is the same action Dynamics 365 uses when you upload a document through the UI (check the network trace when you upload a document).

 

Comments

Robertkuq

Добрый день дамы и господа

Роторное бурение
Роторное Бурение
(Бурение с промывкой или продувкой)

Результат 100%
При таком способе бурения используется оборудования вращательного типа. Порода разрушается специальным инструментом долотом. В результате поступательно-вращательных движений, оборудование постепенно заглубляется, а почва из забоя выводится наружу глиняным раствором, водой или сжатым воздухом. Применяется для бурения как мягких, так и твёрдых пород на довольно большую глубину. Скважины, сделанные роторным способом имеют более продолжительный срок службы.

Роторное Бурение в нашей организации стоит от 60 рублей за метр погонный.

Robertkuq

Shenen

Это же уже обсуждали недавно

----
<a href="https://turksezon.net/serials2020/2508-probuzhdenie-velikie-seldzhuki-1-sezon.html">https://turksezon.net/serials2020/2508-probuzhdenie-velikie-seldzhuki-1-sezon.html</a>

Интересно правда было?

----
<a href="https://kadbase.ru/reestr/77-moskovskij-gorodskoj/77:01-centralnyj/77:01:0001076-oks/77:01:0001076:2541-moskva-per-palashevskij-m-d-7/">https://kadbase.ru/reestr/77-moskovskij-gorodskoj/77:01-centralnyj/77:01:0001076-oks/77:01:0001076:2541-moskva-per-palashevskij-m-d-7/</a>

Браво, замечательная идея и своевременно

----
<a href="https://mkdbase.ru/mkd/23-krasnodarskij/g-armavir/ul-lunacharskogo/352931-kraj-krasnodarskij-g-armavir-ul-lunacharskogo-d-19/">https://mkdbase.ru/mkd/23-krasnodarskij/g-armavir/ul-lunacharskogo/352931-kraj-krasnodarskij-g-armavir-ul-lunacharskogo-d-19/</a>

Я думаю, что Вы допускаете ошибку. Могу отстоять свою позицию. Пишите мне в PM, обсудим.

----
<a href="http://noves-shop.ru/">аккаунты вк</a>

выгон

----
<a href="https://vashholodilnik.ru/holodilniki/midea_mrb519sfnx1">Холодильник Midea MRB519SFNX1 купить</a>

Вы не правы. Могу это доказать. Пишите мне в PM, пообщаемся.

----
<a href="https://swaplab.io/swaplab">быстрый обмен биткоин</a>

Хорошая подборочка спасибо!!! Скину парочку для своей колекции)))

----
<a href="https://thujas.ru/">туя цена в москве</a>

Как нельзя лучше!

----
<a href="https://lolz.guru/threads/2625556/">https://lolz.guru/threads/2625556/</a>

Что-то так не получается

----
<a href="https://www.bonushard.com/bonus/kosmolot/">космолот</a>

Вы допускаете ошибку. Предлагаю это обсудить. Пишите мне в PM.

----
<a href="https://book-ofra-online.ru/book_of_ra_6_deluxe.html">https://book-ofra-online.ru/book_of_ra_6_deluxe.html</a>

Shenen

Philipowesk

What Is Dab Mat?<a href="wax pens">https://www.posts123.com/user/797921/screentent1</a>That is why our company makes sure to deliver vaping products on time. Moreover, every shop owner always insists on supply in a large quantity. And, all customers can easily buy their required needs just by giving a nhấp chuột to the product. You do not have to go far away to buy WholeSale Smoking products. One of the basic advantages of buying from The Best Online Smoke Shop is that you will get a vast variety. It can be easy to save significant amounts of money when you order online at smokersunit.com. .

Philipowesk

Romoish

Подскажите, кого я могу спросить?

----
<a href="https://ecoteplo.net/products/infrakrasnaya-teplovaya-panel-eco-1000-vt">https://ecoteplo.net/products/infrakrasnaya-teplovaya-panel-eco-1000-vt</a>

Ууу... под стулом валяюсь!!!!

----
<a href="https://smm4top.com/">usa smm panel</a>

Вы, наверное, ошиблись?

----
<a href="http://noves-shop.ru/">продать аккаунт instagram</a>

Вы не правы. Я уверен. Пишите мне в PM, пообщаемся.

----
<a href="https://bailong.kr.ua/products/fonar-police-w602-t6">https://bailong.kr.ua/products/fonar-police-w602-t6</a>

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

----
<a href="https://venro.ru/">лучшая накрутка подписчиков в инстаграме</a>

Да, действительно. И я с этим столкнулся. Можем пообщаться на эту тему. Здесь или в PM.

----
<a href="https://lolz.guru/market/supercell/">аккаунт clash royale</a>

неплохо

----
<a href="https://online-ruletka.ru/martingale_sistema.html">https://online-ruletka.ru/martingale_sistema.html</a>

Тьфу ты, туфта!

----
<a href="https://bitsmix.biz/bitmix">smart mix</a>

Поздравляю, отличная мысль

----
<a href="https://igrovye-avtomati-online.com.ua/xtra_hot_avtomat.html">https://igrovye-avtomati-online.com.ua/xtra_hot_avtomat.html</a>

Прошу прощения, что вмешался... Мне знакома эта ситуация. Приглашаю к обсуждению.

----
<a href="https://lolz.guru/threads/1866477/">https://lolz.guru/threads/1866477/</a>

Romoish

Romoish

вот такие фотки давно пора бы!!!!

----
<a href="https://ecoteplo.net/post/komplektuyuchi-dlya-obigrivachiv--neobhidnist-chi-zajve">https://ecoteplo.net/post/komplektuyuchi-dlya-obigrivachiv--neobhidnist-chi-zajve</a>

Полностью разделяю Ваше мнение. В этом что-то есть и это отличная идея. Готов Вас поддержать.

----
<a href="https://smm4top.com/">smm4</a>

А ты такой горячий

----
<a href="http://noves-shop.ru/">аккаунт телеграм</a>

Весьма полезная мысль

----
<a href="https://bailong.kr.ua/products/bailong-police-bl-q2800-l2t6">https://bailong.kr.ua/products/bailong-police-bl-q2800-l2t6</a>

Бутафория получается

----
<a href="https://venro.ru/">накрутка подписчиков в инстаграме дешево и быстро</a>

делать то нефиг

----
<a href="https://lolz.guru/market/steam/">купить аккаунт</a>

Нет, не взлетает!

----
<a href="https://online-ruletka.ru/european_roulette.html">https://online-ruletka.ru/european_roulette.html</a>

Молодец парень. Отвертелся.

----
<a href="https://bitsmix.biz/bitmix">clear bitcoin</a>

Я извиняюсь, но, по-моему, Вы не правы. Пишите мне в PM, обсудим.

----
<a href="https://igrovye-avtomati-online.com.ua/bananas_igrovie_avtomati.html">https://igrovye-avtomati-online.com.ua/bananas_igrovie_avtomati.html</a>

В этом что-то есть. Спасибо за объяснение, я тоже считаю, что чем проще тем лучше…

----
<a href="https://lolz.guru/threads/1341172/">https://lolz.guru/threads/1341172/</a>

Romoish

JMeaky

<a href="https://virtual-local-numbers.com/countries/65-australia.html">australia phone number</a>

JMeaky

CarlosBen

http://tawba.info/polza-sushi-dlya-zdorovya.html

CarlosBen

KennethVom

This is a unique place for fashionable women's clothing and accessories.
We offer our clients women's clothing, jewelry, cosmetics and health products, shoes, bags and much more.
https://fas.st/Ujfha

KennethVom

wooheelo

http://jobs.ict-edu.uk/user/24740/

===========
wow. i found it finally. thanks!
wow. i found it finally. thanks!

http://www.geati.ifc-camboriu.edu.br/wiki/index.php/Usu%C3%A1rio:RobynTurner02

App For Free IMVU Credits
Free IMVU Credits Iphone 2022
How To Get Free Credits On IMVU Without Surveys 2022
Free Credits On IMVU
How To Get Free Clothes On IMVU
IMVU Free Credits No Human Verification
IMVU Free Credits No Human Verification 2022

wooheelo

TracyMak

AccStores.com is a very good account store. Good choice, average prices. The range is very large, you can choose almost any parameter. Accounts are only high-quality, with different registration terms. Personally, I am satisfied with everything as a client, I do not see any complaints, we plan to continue using the service. I recommend this service.
Visit
https://accstores.com

TracyMak

Anaernmax

<a href=http://gcialisk.com/>cialis cheapest online prices</a>

Anaernmax

Teddyerale

http://f-link.ru/2021/06/interesnye-fakty-o-picce/

Teddyerale

Jahes

<a href="https://cbdacbd.com/cbd-oil-and-lupus-usa-benefits-side-effects-and-interactions/">https://cbdacbd.com/cbd-oil-and-lupus-usa-benefits-side-effects-and-interactions/</a>

Jahes