Показать сообщение отдельно
Старый 11.11.2019, 19:38   #5  
alicedr is offline
alicedr
Участник
 
173 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
на ВМ где все работает как надо, запись в MCRSalesTable создается когда пользователь нажимает кнопку Submit (это MCRSalesOrderRecap.SubmitOrder()). Call stack с ВМ где запись создается - на скриншоте внизу.
MCRSalesTable.Insert() делается на Salestable.update():

X++:
public class SysExtensionSerializerMap extends common
{
/*  ....................  */
    /// <summary>
    /// Updates / inserts the packed extension table record after the base table record is updated.
    /// </summary>
    /// <remarks>
    /// This method should be called immediately after super() of base table's <C>update</C> method.
    /// </remarks>
    public void postUpdate()
    {
        SysExtensionSerializerExtensionMap      currentExtensionTable;
        SysExtensionSerializerExtensionMap      extensionTableToUpdate;
        SysExtensionSerializerExtensionMap      extensionTableInUse;
        int                                     i;
        boolean                                 checkForLinkedExtensionTables;
        container                               newPackedExtensions;
        boolean                                 updated;
        Array                                   extensionTableArray = new Array(Types::Record);
        container                               extensionTableTableIdList;
        TableId                                 currentExtensionTableTableId;
        container                               hasLinkedExtensionTableCon;
        boolean                                 hasLinkedExtensionTable;

        if (this.RecId && this.PackedExtensions != conNull())
        {
            for (i = 1; i <= conLen(this.PackedExtensions); i++)
            {
                currentExtensionTable = con2Buf(conPeek(this.PackedExtensions, i));
                extensionTableArray.value(i, currentExtensionTable);

                currentExtensionTableTableId = currentExtensionTable.TableId;

                // if buffer is not form DS there is no need to check for extension table on client
                checkForLinkedExtensionTables = checkForLinkedExtensionTables || FormDataUtil::isFormDataSource(this);

                extensionTableTableIdList += [currentExtensionTableTableId];
            }

            if (checkForLinkedExtensionTables)
            {
                hasLinkedExtensionTableCon = SysExtensionSerializerFormRunHelper::hasExtensionTable(this, extensionTableTableIdList);
            }

            ttsbegin;
            for (i = 1; i <= extensionTableArray.lastIndex(); i++)
            {
                updated = false;

                currentExtensionTable = extensionTableArray.value(i);

 /* ............................ */

                // If it is not an existed record, insert it.
                if (updated == false)
                {
                    currentExtensionTable.BaseRecId = this.RecId;
                    currentExtensionTable.insert();  //<<-----------------------------
                }

                newPackedExtensions += [buf2Con(currentExtensionTable, true)];
            }
            ttscommit;

            this.PackedExtensions = newPackedExtensions;
        }
    }
Миниатюры
Нажмите на изображение для увеличения
Название: 2019-11-11_183014.jpg
Просмотров: 221
Размер:	226.3 Кб
ID:	12427