MS
This commit is contained in:
132
app/DD-Record-Organiser/ClassSAP.vb
Normal file
132
app/DD-Record-Organiser/ClassSAP.vb
Normal file
@@ -0,0 +1,132 @@
|
||||
Imports ERPConnect
|
||||
Public Class ClassSAP
|
||||
Private Shared SAPConnectionString
|
||||
Public Shared Function ConnectionInit(Host As String, SysNumber As String, Username As String, PW As String, Client As String, Lang As String)
|
||||
Try
|
||||
If LogErrorsOnly = False Then ClassLogger.Add("", False)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(">> SAP Connect started:", False)
|
||||
SAPConnectionString = String.Format("USER={0} LANG={1} CLIENT={2} SYSNR={3} ASHOST={4} PASSWD={5}", Username, Lang, Client, SysNumber, Host, PW)
|
||||
Dim con As New R3Connection()
|
||||
ERPConnect.LIC.SetLic("W86DWC992C")
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(">> " & SAPConnectionString, False)
|
||||
con.Open(SAPConnectionString)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(">> SAP-Connection created!", False)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add("", False)
|
||||
Return True
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add("Error in SAP ConnectionInit: " & ex.Message, True)
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
Public Shared Function FuBa_Returndatatable_Seperated(FuBaName As String, SplitCharacter As String, Optional RowLimit As Integer = 0)
|
||||
Try
|
||||
Dim SAPCon As New R3Connection()
|
||||
SAPCon.Open(SAPConnectionString)
|
||||
Dim RESULT_TABLE As DataTable = New DataTable
|
||||
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Get data from FuBa-Function", False)
|
||||
Dim func As RFCFunction
|
||||
Try
|
||||
func = SAPCon.CreateFunction(FuBaName)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> func.Execute", False)
|
||||
func.Execute()
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> function was executed", False)
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add(">> Unexpected Error in Create SAP Function: " & ex.Message, False)
|
||||
MsgBox("Error in Create SAP Function: " & ex.Message, MsgBoxStyle.Critical)
|
||||
Return Nothing
|
||||
End Try
|
||||
Dim FUNCT_ROW_COUNT As Integer = 1
|
||||
Dim RowMaskresult As String = ""
|
||||
Try
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Checking FunctionExecute", False)
|
||||
'Den ersten Wert ausgeben lassen um die Spalten zu splitten
|
||||
|
||||
For Each row As RFCStructure In func.Tables("T_INDEX").Rows
|
||||
Try
|
||||
If row.Item(1).ToString.Contains(SplitCharacter) Then
|
||||
RowMaskresult = row.Item(1).ToString
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> RowMask result: " & RowMaskresult, False)
|
||||
FUNCT_ROW_COUNT = 2
|
||||
End If
|
||||
Catch ex As Exception
|
||||
RowMaskresult = "ErrorInGetSeperatedResult: " & ex.Message
|
||||
End Try
|
||||
If FUNCT_ROW_COUNT = 2 Then Exit For
|
||||
Next
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add(">> Unexpected Error in Checking FunctionExecute: " & ex.Message, False)
|
||||
MsgBox("Error in Checking FunctionExecute: " & ex.Message, MsgBoxStyle.Critical)
|
||||
SAPCon.Close()
|
||||
Return Nothing
|
||||
End Try
|
||||
FUNCT_ROW_COUNT = 1
|
||||
Dim ColCount As Integer
|
||||
If SplitCharacter <> "" And RowMaskresult.Contains(SplitCharacter) Then
|
||||
Try
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Define Datatable with SplitCharacter method", False)
|
||||
Dim split() = RowMaskresult.Split(SplitCharacter)
|
||||
If split.Length > 0 Then
|
||||
ColCount = split.Length - 1
|
||||
CURRENT_COL_COUNT = ColCount
|
||||
If LogErrorsOnly = False Then
|
||||
ClassLogger.Add(" >> ColCount: " & ColCount.ToString, False)
|
||||
ClassLogger.Add(" >> Split-Results: ", False)
|
||||
For Each s As String In split
|
||||
ClassLogger.Add(" # " & s, False)
|
||||
Next
|
||||
End If
|
||||
For x = 0 To ColCount
|
||||
' Declare DataColumn and DataRow variables.
|
||||
Dim column As DataColumn
|
||||
column = New DataColumn()
|
||||
column = New DataColumn()
|
||||
column.DataType = Type.GetType("System.String")
|
||||
column.ColumnName = "Column " & x.ToString
|
||||
RESULT_TABLE.Columns.Add(column)
|
||||
Next
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Datatable Columns after Split created", False)
|
||||
' Create new DataRow objects and add to DataTable.
|
||||
'Jetzt die Zeilen der Function durchlaufen
|
||||
For Each row As RFCStructure In func.Tables("T_INDEX").Rows
|
||||
Dim new_row As DataRow
|
||||
If RowLimit <> 0 Then
|
||||
If RowLimit = FUNCT_ROW_COUNT Then
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> RowCount limited to" & RowLimit.ToString & " rows. Exit SAP Function", False)
|
||||
Exit For
|
||||
End If
|
||||
End If
|
||||
new_row = RESULT_TABLE.NewRow()
|
||||
Dim Rowresult As String = row.Item(1).ToString
|
||||
If Rowresult.Contains(SplitCharacter) Then
|
||||
Dim RowSplit() = Rowresult.Split(SplitCharacter)
|
||||
Dim col_index = 0
|
||||
'Jetzt die Spaltenwerte in die NewRow eintragen
|
||||
For x = 0 To ColCount
|
||||
new_row(x) = RowSplit(x)
|
||||
Next
|
||||
FUNCT_ROW_COUNT += 1
|
||||
RESULT_TABLE.Rows.Add(new_row)
|
||||
End If
|
||||
Next
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> RowCount FuBa: " & RESULT_TABLE.Rows.Count.ToString, False)
|
||||
Return RESULT_TABLE
|
||||
Else
|
||||
Return Nothing
|
||||
End If
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add(">> Unexpected Error in Create Datatable with split-method: " & ex.Message, False)
|
||||
MsgBox("Unexpected Error in Create Datatable with split-method: " & ex.Message, MsgBoxStyle.Critical)
|
||||
SAPCon.Close()
|
||||
Return Nothing
|
||||
End Try
|
||||
Else
|
||||
Return Nothing
|
||||
End If
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add(">> Unexpected Error in Function FuBa_ReturnDatatable Seperated: " & ex.Message, False)
|
||||
MsgBox("Unexpected Error in Function FuBa_ReturnDatatable Seperated: " & ex.Message, MsgBoxStyle.Critical)
|
||||
Return Nothing
|
||||
End Try
|
||||
End Function
|
||||
End Class
|
||||
Reference in New Issue
Block a user