Как сделать ссылку для открытия в Dynamics NAV (RTC интерфейс) конкретной товарной карточки?

Попробую ответить…

 

Общий принцип построения ссылки расписан в статье help (Справка \ Руководство по C/SIDE): Creating and Running Hyperlinks. На MSDN это статья https://msdn.microsoft.com/en-us/library/dd338670.aspx

Проблема в том, что в общую схему:

DynamicsNAV://server/service/company/runpage?page=22&bookmark=0ABA0700235752C7D1

надо подставлять сгенеренный автоматически bookmark.

 

Для получения bookmark надо воспользоваться механизмом, описанным в help: Walkthrough: Creating a Link from a Report to a Page. На MSDN это статья https://msdn.microsoft.com/en-us/library/dd301304.aspx

 

Я задался целью проверить это и вот что получилось…

 

Создал простейший отчет со списком товаров и с добавленными операциями по переменной ItemRecRef:

 

OBJECT Report 50000 Item - Hyperlinks

{

  OBJECT-PROPERTIES

  {

    Date=16.02.12;

    Time=[ 9:40:39];

    Modified=Yes;

    Version List=;

  }

  PROPERTIES

  {

    EnableHyperlinks=Yes;

  }

  DATAITEMS

  {

    { PROPERTIES

      {

        DataItemTable=Table27;

        DataItemTableView=SORTING(No.);

        OnPreDataItem=BEGIN

             ItemRecRef.OPEN(27);

                      END;

 

        OnAfterGetRecord=BEGIN

                           ItemRecRef.SETPOSITION(Item.GETPOSITION);

                         END;

 

        ReqFilterFields=No.;

        GroupTotalFields=No.;

      }

      SECTIONS

      {

        { PROPERTIES

          {

            SectionType=Header;

            PrintOnEveryPage=Yes;

            SectionWidth=18150;

            SectionHeight=1692;

          }

          CONTROLS

          {

<...>

          }

  }

        { PROPERTIES

          {

            SectionType=Header;

            PrintOnEveryPage=Yes;

            SectionWidth=18150;

            SectionHeight=846;

          }

          CONTROLS

          {

            { 1000000012;Label ;0 ;0 ;1500 ;846 ;ParentControl=1000000011;

                                                         VertAlign=Bottom;

                                                         FontBold=Yes;

                                                         MultiLine=Yes;

                                                         DataSetFieldName=Item__No__Caption }

            { 1000000015;Label ;1650 ;0 ;4500 ;846 ;ParentControl=1000000014;

       VertAlign=Bottom;

                                                         FontBold=Yes;

                                                         MultiLine=Yes;

                                             DataSetFieldName=Item_DescriptionCaption }

          }

           }

        { PROPERTIES

          {

            SectionType=Body;

            SectionWidth=18150;

            SectionHeight=423;

          }

          CONTROLS

          {

       { 1000000011;TextBox;0 ;0 ;1500 ;423 ;HorzAlign=Left;

                                                         SourceExpr="No.";

                                                         DataSetFieldName=Item__No__ }

            { 1000000014;TextBox;1650 ;0 ;4500 ;423 ;HorzAlign=Left;

                                                         SourceExpr=Description;

                                                         DataSetFieldName=Item_Description }

            { 1000000000;TextBox;6450 ;0 ;150 ;423 ;Visible=No;

                                                         SourceExpr=FORMAT(ItemRecRef.RECORDID,0,10);

                                                         DataSetFieldName=FORMAT_ItemRecRef_RECORDID_0_10_ }

          }

  }

      }

       }

  }

<...>

  CODE

  {

    VAR

      ItemRecRef@1000000002 : RecordRef;

 

    BEGIN

    END.

  }

  RDLDATA

<...>

 

Далее через Инструменты \ Create Layout Suggestion открыл Visual Studio и там выставил в Navigation \ Jump to URL полную ссылку:

="dynamicsnav://localhost/DynamicsNAV/CRONUS Россия ЗАО/runpage?page=30&mode=edit&bookmark="+Fields!FORMAT_ItemRecRef_RECORDID_0_10_.Value

ItemHyperlinks01

Все сохранил и запускаю нужный отчет через Run:

dynamicsnav://localhost/DynamicsNAV/CRONUS Россия ЗАО/runreport?report=50000

Теперь если кликнуть в запущенном RTC отчете по названию товара, то открывается карточка конкретного товара:

ItemHyperlinks02

 

Как же получить ссылки?

Сохраняю отчет в Excel и оттуда уже копировать можно ссылки:

ItemHyperlinks03

 

Вот, например, ссылка на товар 1151:

dynamicsnav://localhost/DynamicsNAV/CRONUS%20%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F%20%D0%97%D0%90%D0%9E/runpage?page=30&mode=edit&bookmark=224;GwAAAACJBDExNTE=

При ее запуске через Run откроется ссылка на карточку соответствующего товара.

 

Можно так же сделать на рабочем столе для открытия конкретной карточки товара соответствующий ярлык:

ItemHyperlinks04

 

Файл объекта Item – Hyperlinks.fob прилагаю.

 

P.S.

15 полезных русских блог постов по NAV 2009, советы по клиенту с новым ролевым интерфейсом и т.д.

 

P.S. 2

Доп. инфа по RTC линкам:
https://blogs.msdn.com/b/freddyk/archive/2008/11/19/creating-and-running-hyperlinks.aspx

Item - Hyperlinks.fob