İçeriğe geç

Dynamics AX 2012: X++ ile İş İlişkisi Oluşturmak (smmBusRelTable)

Bir proje için ax 2012’de koddan “iş ilişkisi” (smmBusRelTable) oluşturmam gerekti. Aşağıda verdiğim örnek kod ile bu işlemi kolaylıkla yapabilirsiniz.

Kodda sırasıyla:

  • Önce İş ilişkisi için gerekli party’yi oluşturuyoruz. (DirPerson yada DirOrganization)
  • Bu party’den türeyen bir iş ilişkisi (smmBusRelTable) yaratıyoruz.
  • Oluşturduğumuz iş ilişkisi için varsa adres ve iletişim bilgilerini giriyoruz. (LogisticsPostalAddress, LogisticsElectronicAddress)

 


// Güven Şahin - guvensahin.com

public static smmBusRelTable createBusRelTable(
                        boolean _isPerson,
                        str _firstName,
                        str _lastName,
                        str _fullName,
                        str _phone,
                        str _email,
                        str _state,
                        str _address)
{
    smmBusRelTable                  smmBusRelTable;

    DirParty                        dirParty;
    DirPartyPostalAddressView       dirPartyPostalAddressView;
    DirPartyContactInfoView         dirPartyContactInfo;
    DirOrganization                 dirOrganization;
    DirPerson                       dirPerson;
    DirPersonName                   dirPersonName;
    ;

    ttsBegin;

    smmBusRelTable.clear();
    smmBusRelTable.initValue();
    smmBusRelTable.BusRelAccount = NumberSeq::newGetNum(smmParameters::numRefBusRelAccount()).num();
    smmBusRelTable.BusRelTypeId = "İş İlişkisi";

    if (_isPerson)
    {
        _fullName = _firstName + " " + _lastName;

        dirPerson.clear();
        dirPerson.initValue();
        dirPerson.Name = _fullName;
        dirPerson.NameAlias = _fullName;
        dirPerson.NameSequence = DirNameSequence::find('FirstLast').RecId;
        dirPerson.insert();

        dirPersonName.clear();
        dirPersonName.initValue();
        dirPersonName.Person = dirPerson.RecId;
        dirPersonName.FirstName = _firstName;
        dirPersonName.LastName = _lastName;
        dirPersonName.ValidFrom = DateTimeUtil::minValue();
        dirPersonName.ValidTo = DateTimeUtil::maxValue();
        dirPersonName.insert();

        smmBusRelTable.Party = dirPerson.RecId;
    }
    else
    {
        dirOrganization.initValue();
        dirOrganization.Name = _fullName;
        dirOrganization.insert();

        smmBusRelTable.Party = dirOrganization.RecId;
    }


    dirParty = DirParty::constructFromCommon(smmBusRelTable);
    dirParty.parmName(_fullName);
    dirParty.parmNameAlias(_fullName);

    dirPartyPostalAddressView.clear();
    dirPartyPostalAddressView.LocationName      = 'B2B Adres';
    dirPartyPostalAddressView.CountryRegionId   = 'TUR';
    dirPartyPostalAddressView.State             = _state;
    dirPartyPostalAddressView.Street            = _address;
    dirParty.createOrUpdatePostalAddress(dirPartyPostalAddressView);

    // phone
    if (_phone)
    {
        dirPartyContactInfo.clear();
        dirPartyContactInfo.Locator         =_phone;
        dirPartyContactInfo.Type            = LogisticsElectronicAddressMethodType::Phone;
        dirPartyContactInfo.IsPrimary       = NoYes::Yes;
        dirParty.createOrUpdateContactInfo(dirPartyContactInfo);
    }

    // email
    if (_email)
    {
        dirPartyContactInfo.clear();
        dirPartyContactInfo.Locator         =_email;
        dirPartyContactInfo.Type            = LogisticsElectronicAddressMethodType::Email;
        dirPartyContactInfo.IsPrimary       = NoYes::Yes;
        dirParty.createOrUpdateContactInfo(dirPartyContactInfo);
    }

    smmBusRelTable.insert();

    ttsCommit;

    return smmBusRelTable;
}
Yazıyı Paylaş

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir