Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ERP и учетные системы [игнор отключен] [закрыт для гостей] / Граматика Navision / 18 сообщений из 18, страница 1 из 1
09.02.2010, 15:18
    #36457899
locky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Граматика Navision
У кого-нить есть граматика для txt экспорт-файлов Navision?
Или для его встроенного языка.

-------------------------
There’s no silver bullet!
...
Рейтинг: 0 / 0
09.02.2010, 15:38
    #36457980
s_ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Граматика Navision
lockyУ кого-нить есть граматика для txt экспорт-файлов Navision?
Или для его встроенного языка.

Это вы о чем именно?
...
Рейтинг: 0 / 0
09.02.2010, 16:51
    #36458325
locky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Граматика Navision
s_ustinov,

мне бы очень хотелось научится парсить экспортные файлы объектов, с целью вытаскивать из них метаданные.
Вроде токо, как это делает Developers Toolkit.
...
Рейтинг: 0 / 0
09.02.2010, 17:11
    #36458420
LSV
LSV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Граматика Navision
lockys_ustinov,

мне бы очень хотелось научится парсить экспортные файлы объектов, с целью вытаскивать из них метаданные.
Вроде токо, как это делает Developers Toolkit.А что с ними дальше делать ? Ну вытащил. И ?
Для новых языков достаточно Toolkitа.
...
Рейтинг: 0 / 0
09.02.2010, 17:14
    #36458444
locky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Граматика Navision
LSVА что с ними дальше делать ? Ну вытащил. И ?
Для новых языков достаточно Toolkitа.
А дальше на основании этих метаданных я в состоянии генерировать (частично) процедуры для работы с таблицами.
...
Рейтинг: 0 / 0
09.02.2010, 18:16
    #36458613
LSV
LSV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Граматика Navision
lockyLSVА что с ними дальше делать ? Ну вытащил. И ?
Для новых языков достаточно Toolkitа.
А дальше на основании этих метаданных я в состоянии генерировать (частично) процедуры для работы с таблицами.Какие процедуры ? На C/AL ? MSSQL ?
Немного смахивает на извращение.
...
Рейтинг: 0 / 0
09.02.2010, 18:24
    #36458629
s_ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Граматика Navision
lockyLSVА что с ними дальше делать ? Ну вытащил. И ?
Для новых языков достаточно Toolkitа.
А дальше на основании этих метаданных я в состоянии генерировать (частично) процедуры для работы с таблицами.
в навике??????
если сравнивать с 1с, там есть всего несколько типов объектов - таблица, форма, отчет, кодеюнит (вроде еще что-то, забываю уже))))
то есть метаданных как в 1с там и близко нет )))))))
по крайней мере в 4 навике...
...
Рейтинг: 0 / 0
09.02.2010, 21:14
    #36458917
locky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Граматика Navision
Процедуры на T-Sql
Метаданные - в данном случае для начала интересуют FK
В дальнейшем - и всё остальное тоже (в т.ч. входимость и используемость объектов).

-------------------------
There’s no silver bullet!
...
Рейтинг: 0 / 0
09.02.2010, 21:14
    #36458918
locky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Граматика Navision
LSVНемного смахивает на извращение.
Я знаю :)
такова селяви.
...
Рейтинг: 0 / 0
10.02.2010, 00:01
    #36459116
locky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Граматика Navision
Т.е. задача на нижнем уровне состоит в обеспечении примитивной целостности данных при работе с таблицами Navision используя T-Sql код.
Для этого необходимо при вставке, обновлении и удалении проверить ссылочную целостность а также проверить значения для option fields

-------------------------
There’s no silver bullet!
...
Рейтинг: 0 / 0
10.02.2010, 09:52
    #36459435
s_ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Граматика Navision
lockyТ.е. задача на нижнем уровне состоит в обеспечении примитивной целостности данных при работе с таблицами Navision используя T-Sql код.
Для этого необходимо при вставке, обновлении и удалении проверить ссылочную целостность а также проверить значения для option fields

а учитывая, что практически всегда ссылочная целостность контролируется с помощью кодеюнитов (на уровне программного кода)...
(на уровне базы контроля или совсем нет, или контролируется далеко не все)
...
Рейтинг: 0 / 0
10.02.2010, 10:34
    #36459572
LSV
LSV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Граматика Navision
...примитивной целостности данных при работе с таблицами Navision используя T-Sql код.Я так и знал. Типичное извращение.
Все равно способ непонятен. Навик напрямую шлет запросы. Как реализовать целостность ? Триггерами ? Вариант. Но непростой. Руцями полюбому.

ЗЫ: Выкинуть навик и забыть как страшный сон. Я уже забыл
...
Рейтинг: 0 / 0
10.02.2010, 11:37
    #36459817
locky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Граматика Navision
LSV...примитивной целостности данных при работе с таблицами Navision используя T-Sql код.Я так и знал. Типичное извращение.
Все равно способ непонятен. Навик напрямую шлет запросы. Как реализовать целостность ? Триггерами ? Вариант. Но непростой. Руцями полюбому.

ЗЫ: Выкинуть навик и забыть как страшный сон. Я уже забыл
Руцями, разумеется.
Делая все необходимые проверки внутри SP.

Выкинуть навик - не вариант. Вариант - постепенно мигрировать с него. И делать это полностью руками - долго, нудно и дорого. Необходимо облегчить хотя бы рутинные работы.
...
Рейтинг: 0 / 0
10.02.2010, 17:19
    #36461284
Ага
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Граматика Navision
Приветстую коллеги.
Когда на C/AL писал обработку текстовых файлов - для генерации пакетов xml для обмена данными- не для столь извращенных целей:). Вообщем все достаточно просто - анализируйте tablerelation и будем Вам щастье. Как Навовский фильтр перевести в SQL упоминалось на forum.mazzy.ru.
Ну а ссылочная целостность в случае Нава (щас меня закидают яйцами) не есть хорошо.
Если уже очень хочется - см. Поддерживать виды и поддерживать связи при создании базы.
Удачи.
И поменьше слушайте LSV :).
...
Рейтинг: 0 / 0
10.02.2010, 17:23
    #36461294
locky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Граматика Navision
Ага,

ну, про tablerelation я в курсе :)
Просто очень не хочется изобретать велосипед и писать парсер с нуля, предварительно выписав себе граматику.
И очень не хочется делать "по рабоче-крестьянски", хочется сделать "по правильному" :)
...
Рейтинг: 0 / 0
10.02.2010, 17:26
    #36461303
Ага
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Граматика Navision
Ну так напишите и поделитесь :).
...
Рейтинг: 0 / 0
10.02.2010, 17:27
    #36461309
locky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Граматика Navision
АгаНу так напишите и поделитесь :).
Видимо, так и придется сделать.
...
Рейтинг: 0 / 0
24.02.2010, 13:54
    #36485795
locky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Граматика Navision

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
OBJECT Table 10 Shipment Method
{
  OBJECT-PROPERTIES
  {
    Date=04/09/07;
    Time=[ 6:45:55 PM];
    Version List=NAVW13.00;
  }
  PROPERTIES
  {
    OnInsert=BEGIN
               RecRef.GETTABLE(Rec);
               RecStatusMgt.Inserted(RecRef);
             END;

    OnModify=BEGIN
               RecRef.GETTABLE(Rec);
               xRecRef.GETTABLE(xRec);
               RecStatusMgt.Modified(RecRef,xRecRef);
             END;

    OnDelete=BEGIN
               RecRef.GETTABLE(Rec);
               RecStatusMgt.Deleted(RecRef);
             END;

    OnRename=BEGIN
               RecRef.GETTABLE(Rec);
               xRecRef.GETTABLE(xRec);
               RecStatusMgt.Renamed(RecRef,xRecRef);
             END;

    CaptionML=[ENU=Shipment Method;
               ENC=Shipment Method];
    LookupFormID=Form11;
  }
  FIELDS
  {
    { 1   ;   ;Code                ;Code10        ;CaptionML=[ENU=Code;
                                                              ENC=Code];
                                                   NotBlank=Yes }
    { 2   ;   ;Description         ;Text50        ;CaptionML=[ENU=Description;
                                                              ENC=Description] }
    { 37033300;;Time In Transit    ;DateFormula   ;InitValue=1D;
                                                   OnValidate=VAR
                                                                TestDate@1000000000 : Date;
                                                              BEGIN
                                                                TestDate := TODAY;
                                                                "Days In Transit" := CALCDATE("Time In Transit", TestDate) - TestDate;
                                                              END;
                                                               }
    { 37033301;;Default Rate Factor;Decimal       ;AutoFormatType=1 }
    { 37033310;;Item Charge        ;Code20        ;TableRelation="Item Charge".No. WHERE (Charge Type=CONST(Shipping)) }
    { 37033311;;Days In Transit    ;Integer       ;OnValidate=BEGIN
                                                                IF "Days In Transit" = 0 THEN
                                                                  EVALUATE("Time In Transit", '')
                                                                ELSE
                                                                  EVALUATE("Time In Transit", STRSUBSTNO('%1D', "Days In Transit"));
                                                              END;

                                                   CaptionML=ENU=Time In Transit }
  }
  KEYS
  {
    {    ;Code                                     }
  }
  CODE
  {
    VAR
      RecRef@1000000002 : RecordRef;
      xRecRef@1000000001 : RecordRef;
      RecStatusMgt@1000000000 : Codeunit 37033302;

    BEGIN
    END.
  }
}


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
<ROOT>
  <OBJECT_PROPERTIES>
    <PROPERTY text="04/09/07" PROPERTY_NAME="Date" />
    <PROPERTY text="[ 6:45:55 PM]" PROPERTY_NAME="Time" />
    <PROPERTY text="NAVW13.00" PROPERTY_NAME="Version List" />
  </OBJECT_PROPERTIES>
  <PROPERTIES>
    <PROPERTY text="BEGIN
               RecRef.GETTABLE(Rec);
               RecStatusMgt.Inserted(RecRef);
             END" PROPERTY_NAME="OnInsert" />
    <PROPERTY text="BEGIN
               RecRef.GETTABLE(Rec);
               xRecRef.GETTABLE(xRec);
               RecStatusMgt.Modified(RecRef,xRecRef);
             END" PROPERTY_NAME="OnModify" />
    <PROPERTY text="BEGIN
               RecRef.GETTABLE(Rec);
               RecStatusMgt.Deleted(RecRef);
             END" PROPERTY_NAME="OnDelete" />
    <PROPERTY text="BEGIN
               RecRef.GETTABLE(Rec);
               xRecRef.GETTABLE(xRec);
               RecStatusMgt.Renamed(RecRef,xRecRef);
             END" PROPERTY_NAME="OnRename" />
    <PROPERTY text="CaptionML=[ENU=Shipment Method;
               ENC=Shipment Method]" />
    <PROPERTY text="Form11" PROPERTY_NAME="LookupFormID" />
    <PROPERTY />
  </PROPERTIES>
  <FIELDS>
    <FIELD text="1   ;   ;Code                ;Code10        ">
      <PROPERTIES>
        <PROPERTY text="CaptionML=[ENU=Code;
                                                              ENC=Code]" />
        <PROPERTY text="Yes " PROPERTY_NAME="NotBlank" />
      </PROPERTIES>
    </FIELD>
    <FIELD text="2   ;   ;Description         ;Text50        ">
      <PROPERTIES>
        <PROPERTY text="CaptionML=[ENU=Description;
                                                              ENC=Description]" />
      </PROPERTIES>
    </FIELD>
    <FIELD text="37033300;;Time In Transit    ;DateFormula   ">
      <PROPERTIES>
        <PROPERTY text="1D" PROPERTY_NAME="InitValue" />
        <PROPERTY text="VAR
                                                                TestDate@1000000000 : Date;
                                                              BEGIN
                                                                TestDate := TODAY;
                                                                "Days In Transit" := CALCDATE("Time In Transit", TestDate) - TestDate;
                                                              END" PROPERTY_NAME="OnValidate" />
        <PROPERTY />
      </PROPERTIES>
    </FIELD>
    <FIELD text="37033301;;Default Rate Factor;Decimal       ">
      <PROPERTIES>
        <PROPERTY text="1 " PROPERTY_NAME="AutoFormatType" />
      </PROPERTIES>
    </FIELD>
    <FIELD text="37033310;;Item Charge        ;Code20        ">
      <PROPERTIES>
        <PROPERTY text=""Item Charge".No. WHERE (Charge Type=CONST(Shipping)) " PROPERTY_NAME="TableRelation" />
      </PROPERTIES>
    </FIELD>
    <FIELD text="37033311;;Days In Transit    ;Integer       ">
      <PROPERTIES>
        <PROPERTY text="BEGIN
                                                                IF "Days In Transit" = 0 THEN
                                                                  EVALUATE("Time In Transit", '')
                                                                ELSE
                                                                  EVALUATE("Time In Transit", STRSUBSTNO('%1D', "Days In Transit"));
                                                              END" PROPERTY_NAME="OnValidate" />
        <PROPERTY text="CaptionML=ENU=Time In Transit " />
      </PROPERTIES>
    </FIELD>
  </FIELDS>
  <KEYS>
    <KEY text="{    ;Code                                     }" />
  </KEYS>
  <CODE>
    <VAR text="VAR
      RecRef@1000000002 : RecordRef;
      xRecRef@1000000001 : RecordRef;
      RecStatusMgt@1000000000 : Codeunit 37033302;" />
  </CODE>
</ROOT>

-------------------------
There’s no silver bullet!
...
Рейтинг: 0 / 0
Форумы / ERP и учетные системы [игнор отключен] [закрыт для гостей] / Граматика Navision / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]