API Forum

This forum is in read-only mode.
Please refer to our API support in case you have any questions.
We can be reached at api@e-conomic.com
e-conomic API developer forum

Hjælp til oprettelse af debitor i VB.net

0
Hejsa.

Er der nogle der kan hjælpe mig videre til metodikken for at oprette en debitor vha. E-conomic Api'et.


wsEco er min EconomicSession

Jeg er gået igang med at oprette debitor udfra API Kald:
wsEco.Debtor.CreateFromData(HentKundeData())

hvor HentKundeData funktionen henter data til oprettelsen. Jeg er nået følgende:

-------------------------------------------------------------------------------------------

    Private Function HentKundeData() As Economic.Api.Data.IDebtorData
        Dim Kundedata As Economic.Api.Data.IDebtorData

        Dim Debitorgruppe As IDebtorGroup
        Dim thisCompany As ICompany
        Dim thisCurrency As ICurrency

        'Henter Standard firma oplysninger
        thisCompany = wsEco.Company.Get()

        If (thisCompany Is Nothing) Then
            Throw New Exception(Intet firma fundet i E-Conomic.)
        End If
        
        'Henter standard valuta kode
        thisCurrency = thisCompany.BaseCurrency

        If (thisCurrency Is Nothing) Then
            Throw New Exception(Ingen valuta kode fundet i E-Conomic)
        End If

        Debitorgruppe = wsEco.DebtorGroup.FindByNumber(1)

        Kundedata = wsEco.DebtorData.Create(txtKundenr.Text, Debitorgruppe, txtFirma.Text, Api.VatZone.HomeCountry)
        Kundedata.Currency = thisCurrency
        Kundedata.Address = Test adresse
        Return Kundedata
    End Function

-------------------------------------------------------------------------------------------

Jeg er nu nået til at den brokker sig over manglende TermOfPayment. Hvor kan jeg evt. finde standard betalingsbetingelse eller sætte den til f.eks. 14 dage.

Og kommer der evt. flere parametre som skal være udfyldt for at kunne oprette debitoren.

På forhånd tak for hjælpen
Allan Andersen
created Nov 2, 2009 by Barkov
0% Accept Rate
Q 1 A 4 C 0

7 Answers

0
Har selv fundet ud af løsningen.

Til andre der kunne have glæde af det, så er her koden (har gjort den vel dokumenteret, synes jeg selv):

Der er ikke lavet så meget fejl håndtering endnu, men der skal også være noget tilbage til dem der kan benytte nedenstående...

--------------------------------------------------------------------------------------------------------
        Dim Debitorgruppe As IDebtorGroup
        Dim thisCompany As ICompany
        Dim thisCurrency As ICurrency

        thisCompany = wsEco.Company.Get()

        If (thisCompany Is Nothing) Then
            Throw New Exception(Intet firma fundet i E-Conomic.)
        End If

        thisCurrency = thisCompany.BaseCurrency

        If (thisCurrency Is Nothing) Then
            Throw New Exception(Ingen valuta kode fundet i E-Conomic)
        End If

        'Henter indenlandske debitorgruppe (ID: 1)
        Debitorgruppe = wsEco.DebtorGroup.FindByNumber(1)

        'Starter opbygning af debitor data
        Dim NaesteMuligeKundenr As String = wsEco.Debtor.GetNextAvailableNumber.ToString

        Dim newDebtorData As IDebtorData = wsEco.DebtorData.Create(NaesteMuligeKundenr, Debitorgruppe, txtFirma.Text, Api.VatZone.HomeCountry)
        newDebtorData.Currency = thisCurrency
        newDebtorData.Name = txtFirma.Text
        newDebtorData.Address = Hjemme
        newDebtorData.PostalCode = 9999
        newDebtorData.City = Andeby
        newDebtorData.Country = Denmark
        newDebtorData.VatNumber = 012345678

        'Henter betalingsbetingelser
        Dim EcoTermPayment As Array = wsEco.TermOfPayment.FindByName(Netto 14 dage) 'GetAll
        If EcoTermPayment.Length  0 Then
            For Each term As Economic.Api.ITermOfPayment In EcoTermPayment
                'Tager det første layout vi støder på og hopper ud af loop
                newDebtorData.TermOfPayment = term
                Exit For
            Next
        End If

        'Henter Faktura Layout
        Dim EcoLayout As Array = wsEco.TemplateCollection.GetAll
        If EcoLayout.Length  0 Then
            For Each layout As Economic.Api.ITemplateCollection In EcoLayout
                'Tager det første layout vi støder på og hopper ud af loop
                newDebtorData.Layout = layout
                Exit For
            Next
        End If

        'Så opretter vi debitor udfra det opbyggede data
        wsEco.Debtor.CreateFromData(newDebtorData)
--------------------------------------------------------------------------------------------------------

Hygge
Barkov
answered Nov 3, 2009 by Barkov
0
Hej Barkov,

Det ser ud til at virke fortrinligt - du er skarp!
Gad vide om det kan funke i vores system med oprettelse af debitor..  

Tak for dit input, dem er der sgutte for mange af herinde!

...HOST

Matt
answered Sep 21, 2010 by maxteldk
0
Hej,

Super input!

Jeg sidder og grubler over hvordan din EconomicSession er lavet?

/ marj
answered Nov 3, 2010 by marj
0
Jeg kan da lige poste den på forummet i aften.

Den er jo heldigvis meget nem.

Det er bare at sætte session variablen til kaldet connect.

Hygge
Barkov
answered Nov 4, 2010 by Barkov
0



Løsning oprettet i et module:


'Benytter en global variablen
Public wsEco As EconomicSession

'Benytter så en funktion til at oprette forbindelsen
    Function EcoConnect() As Boolean
        Try
            wsEco = New EconomicSession

            'Login
            wsEcoConnect(AFTALENUMMER, BRUGERNAVN, KODEORD)
        Catch ex As Exception
            EcoConnect = False
        Finally
            EcoConnect = True
        End Try
    End Function

'Og så en funktion til at lukke igen når man er færdig
    Function EcoDisconnect() As Boolean
        Try
            wsEcoDisconnect()
            wsEco = Nothing
        Catch ex As Exception
            EcoDisconnect = False
        Finally
            EcoDisconnect = True
        End Try
    End Function


Bemærk at connection tager alt mellem 7-10 sekunder den første gang du forbinder til E-conomic. Herefter går det hurtigt uanset om du disconnect'er eller connect'er flere gang i dit projekt. Så det bedste at gøre er at danne forbindelsen i en splash screen når projektet starter op. Herefter bemærker brugeren ikke senere i programmet når du connect'er og disconnect'er.

Håber du kommer videre med dit tiltag og ellers kan vi jo altid snakkes ved

Med venlig hilsen
Barkov
answered Nov 4, 2010 by Barkov
0
Hej Barkov,

Tak for eksemplet.

Jeg kan hurtigt se at mit niveau endnu ikke er helt godt nok til at kunne arbejde med api'en - på trods af store ambitioner

Jeg vil se om ikke jeg kan finde et komplet eksempel et sted.

Igen tak for hjælpen.

/ marj
answered Nov 7, 2010 by marj
0
Nedestående vil oprette en debitor i test miljøet.

 myEconSession = New EconomicSession
        Dim tmpStr As String = myEconSession.Connect(179476, CES, c97jxsq8)
        Dim DebGroup As IDebtorGroup = myEconSession.DebtorGroup.FindByNumber(1)
        Dim DebVatZone As VatZone = 2
        Dim Payment As ITermOfPayment = myEconSession.TermOfPayment.FindByName(DropDownListPaymentTerms.SelectedValue)(0)
        Dim Currency As ICurrency = myEconSession.Currency.FindByCode(DropDownListValuta.Text)
        Dim Layout As ITemplateCollection() = myEconSession.TemplateCollection.FindByName(De : Std. m. bankoplys. 1.2)
      

        Dim NewDebtor As IDebtorData = myEconSession.DebtorData.Create(myEconSession.Debtor.GetNextAvailableNumber, DebGroup, Debtor Name)
        NewDebtor.Address = DebtorAddress
        NewDebtor.PostalCode = 1234
        NewDebtor.City = DebtorCity
        NewDebtor.Country = DebtorCountry
        NewDebtor.Currency = Currency
        NewDebtor.TermOfPayment = Payment
        NewDebtor.Layout = Layout(0)
        NewDebtor.Email = DebtorEmail
        NewDebtor.IsAccessible = True
        Dim createdDeditor As IDebtor = myEconSession.Debtor.CreateFromData(NewDebtor)
myEconSession.Disconnect()
answered Mar 4, 2011 by DTA
Visma e-conomic A/S
...