Ok, muito obrigado Jorge, já percebi que estou lidando com contas segmentadas e inseri o código que mencionaste anteriormente. No entanto, continuo a ter problemas, agora a mensagem que recebo é a seguinte:
"Either BOF or EOF have Been Reached"
Tenho tentado resolver isso e simplesmente não consigo encontrar como fazê-lo.
Este é o código que tenho atualmente para a criação da minha fatura. Espero que consigas encontrar algo com o qual possa resolver meu problema. Desde já, muito obrigado pela ajuda.
Private Sub CriaFatura()
Dim RetVal As Long
Dim ErrCode As Long
Dim ErrMsg As String
Dim sStr As String
Dim vRs As SAPbobsCOM.Recordset
Dim vBOB As SAPbobsCOM.SBObob
Dim vCH As SAPbobsCOM.ChartOfAccounts
vCH = Co_Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oChartOfAccounts)
vBOB = Co_Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoBridge)
vRs = Co_Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)
' Ao trabalhar com segmentação, utilize esta função
' para encontrar a chave da conta no objeto ChartOfAccount
vRs = vBOB.GetObjectKeyBySingleValue(SAPbobsCOM.BoObjectTypes.oChartOfAccounts, "FormatCode", "125100000100101", SAPbobsCOM.BoQueryConditions.bqc_Equal)
' O Recordset recupera o valor da chave (por exemplo, sStr = _SYS00000000010).
sStr = vRs.Fields.Item(0).Value
' Chama o método GetByKey com este valor (por exemplo, sStr = _SYS00000000010) para 'recuperar a conta
vCH.GetByKey(sStr)
Try
''Cria o objeto Documents
Dim vDrafts As SAPbobsCOM.Documents
vDrafts = Co_Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oInvoices)
Co_Fatura = Co_Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oBusinessPartners)
If Co_Fatura.GetByKey(cardcode) <> 0 Then
''Define valores nos campos
vDrafts.DocObjectCode = SAPbobsCOM.BoObjectTypes.oInvoices
vDrafts.CardCode = Co_Fatura.CardCode
vDrafts.HandWritten = SAPbobsCOM.BoYesNoEnum.tNO
vDrafts.DocDate = Now.Date
vDrafts.DocType = SAPbobsCOM.BoDocumentTypes.dDocument_Service
vDrafts.DocNum = Li_DocNum
''Linhas da fatura - Define valores na primeira linha
vDrafts.Lines.ItemCode = "1"
vDrafts.Lines.ItemDescription = "Banana"
vDrafts.Lines.Quantity = 1
vDrafts.Lines.Price = 10
vDrafts.Lines.LineTotal = 10
vDrafts.Lines.RowTotalFC = 11.5
vDrafts.Lines.AccountCode = "P001"
''Adicionar a fatura
RetVal = vDrafts.Add
'' ''Verificar o resultado
If RetVal <> 0 Then
Co_Company.GetLastError(ErrCode, ErrMsg)
MsgBox(ErrCode & " " & ErrMsg)
End If
End If
Catch ex As Exception
HandleException(ex)
Finally
Mo_Forma.Freeze(False)
End Try
End Sub