AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Администрирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.10.2022, 06:23   #1  
oleggy is offline
oleggy
Участник
 
276 / 36 (2) +++
Регистрация: 03.12.2019
Адрес: Россия
Хранение документов в D365 + временная папка. Где хранится?
Привет.
Знаю что в AX09 есть одноименная форма/таблица DocuType - Вид документов / Тип документа в которой создавались типы документов для прикладывания файлов пользователями.
Т.е. это запись с сетевым путем для хранения. Пользователь прикладывает файл и он переименовывается по своему алгоритму аксаптовскому и помещается в эту сетефую папку.
Все понятно. Но вот где в D365 данный функционал хранится? Где указываются сетевые пути?
2. При выгрузке данных формы в Excel D365 выгружает временный файл в сетевую папку. Подскажите тоже где данная настройка в самой D365.
Старый 19.10.2022, 08:28   #2  
Pandasama is offline
Pandasama
Участник
 
457 / 137 (5) +++++
Регистрация: 11.08.2014
Адрес: Барнаул
Цитата:
Т.е. это запись с сетевым путем для хранения. Пользователь прикладывает файл и он переименовывается по своему алгоритму аксаптовскому и помещается в эту сетефую папку.
Не обязательно, кстати - есть возможность настроить на хранение в БД.
Подозреваю, что в D365, с учетом её инфраструктуры, переход на хранение в БД полный.
Старый 19.10.2022, 09:34   #3  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
700 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Обычно они хранятся в Azure storage. БД тоже доступна как опция но место в БД не бесплатное, так что смысл?
Старый 19.10.2022, 09:56   #4  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,317 / 3547 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от oleggy Посмотреть сообщение
Но вот где в D365 данный функционал хранится? Где указываются сетевые пути?
А что в D365FO должно было поменяться? Всё также - в типах документов есть 3 варианта - Хранилище Azure, База данных и Sharepoint-портал. Адрес Sharepoint-портала указывается в параметрах управления документами.

Ключевое отличие от предыдущих версий произошло в том, что теперь заведомо не может быть сетевых папок в локальной сети, а может быть только либо база данных, либо ссылка на какой-нибудь сайт (Azure Storage / Sharepoint online). Ну т.е. сайт может подключаться либо к своей БД, либо к другому сайту. К локальной структуре он не имеет доступа
__________________
Возможно сделать все. Вопрос времени
Старый 19.10.2022, 10:12   #5  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
В d365 нет опции хранить в БД, по крайней мере в настройках я ее не вижу.
Старый 19.10.2022, 10:15   #6  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от Pandasama Посмотреть сообщение
Не обязательно, кстати - есть возможность настроить на хранение в БД.
Подозреваю, что в D365, с учетом её инфраструктуры, переход на хранение в БД полный.
Все с точностью до наоборот. Файлы не могут храниться в базе данных.
The database is not a supported storage location for files. Use a different location.

К слову, при миграции с Ax2012 надо сначала засосать файлы в базу данных, потом мигрировать ее, потом нажать на кнопку Migrate files и выгрузить их опять, на этот раз в Blob Storage.

https://learn.microsoft.com/en-us/dy...hments-ax-2012

Работает примерно так:
X++:
class DocuFileMigrateDBtoAzure
{
    public static void main(Args _args)
    {
        DocuValue           docuValue;
        DocuRef             docuRef;
        DocuType            docType;
        System.IO.Stream    fileStream;
        Microsoft.Dynamics.AX.Framework.FileManagement.DocumentLocation         location;
        Microsoft.Dynamics.AX.Framework.FileManagement.IDocumentStorageProvider storageProvider;
        DataArea            dataArea;
        ;
        while select dataArea
        {
            changecompany(dataArea.id)
            {
                docType = null;
                docType.skipTTSCheck(true);
                while select forupdate docType
                    where docType.TypeGroup == DocuTypeGroup::File
                {
                    if (docType.FilePlace == DocuFilePlace::Database)
                    {
                        docType.FilePlace = DocuFilePlace::Archive;
                        docType.update();
                    }
                    storageProvider = Docu::GetStorageProvider(docType, false, curUserId());
                    if (storageProvider == null)
                        continue;
                    while select forupdate docuValue
                        where docuValue.StorageProviderId == 0
                           && docuValue.Type == DocuValueType::Others
                    join docuRef
                        where docuRef.ValueRecId      == docuValue.RecId
                           && docuRef.ActualCompanyId == docType.DataAreaId
                           && docuRef.TypeId          == docType.TypeId
                    {
                        fileStream = Binary::constructFromContainer(docuValue.File).getMemoryStream();
                        if (fileStream.Length == 0)
                            continue;
                        docuValue.FileId = newGuid();
                        location = storageProvider.SaveFile(
                                docuValue.FileId,
                                storageProvider.GenerateUniqueName(docuValue.OriginalFileName),
                                System.Web.MimeMapping::GetMimeMapping(docuValue.OriginalFileName),
                                fileStream);
                        fileStream.Close();
                        if (location == null)
                            continue;
                        if (location.NavigationUri)
                        {
                            docuValue.Path = location.get_NavigationUri().ToString();
                        }
                        if (location.AccessUri)
                        {
                            docuValue.AccessInformation = location.get_AccessUri().ToString();
                        }
                        docuValue.StorageProviderId = storageProvider.ProviderId;
                        docuValue.update();
                    }
                }
            }
        }
    }
}
Как можно видеть, никаких сетевых папок как понятия нет. Операции проводятся с in-memory потоками.

Последний раз редактировалось EVGL; 19.10.2022 в 10:20.
За это сообщение автора поблагодарили: Pandasama (2).
Старый 19.10.2022, 13:56   #7  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,317 / 3547 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от raz Посмотреть сообщение
В d365 нет опции хранить в БД, по крайней мере в настройках я ее не вижу.
Нажмите на изображение для увеличения
Название: Снимок.JPG
Просмотров: 65
Размер:	60.6 Кб
ID:	13491
Вот настройка типов документов. Отсюда по крайней мере не убрали вариант хранения в БД
__________________
Возможно сделать все. Вопрос времени
Старый 19.10.2022, 14:04   #8  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Вот настройка типов документов. Отсюда по крайней мере не убрали вариант хранения в БД
...для Notes.
За это сообщение автора поблагодарили: sukhanchik (4).
Старый 19.10.2022, 14:28   #9  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,317 / 3547 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от EVGL Посмотреть сообщение
...для Notes.
Понял, спасибо большое!
__________________
Возможно сделать все. Вопрос времени
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
patrickmouwen: D365 F&O/Commerce interfacing via Azure API Management: My Best Practices Blog bot DAX Blogs 0 10.03.2022 02:47
Sumit Potbhare: Retail Warehousing | Wrap up | Approach to D365 for Commerce with Adv WH Mgmt Blog bot DAX Blogs 0 28.04.2021 13:12
patrickmouwen: How to Unlock Many Hidden D365 Retail Features! Blog bot DAX Blogs 0 13.05.2020 22:13
patrickmouwen: D365 Retail APIs Part III: How to use the Retail APIs from Power Automate (Flow) and Logic App Blog bot DAX Blogs 0 28.01.2020 02:15
patrickmouwen: D365 Retail APIs Part II: How to know exactly what happens inside D365 Retail Blog bot DAX Blogs 0 14.12.2019 01:17

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 15:47.