372 lines
16 KiB
VB.net
372 lines
16 KiB
VB.net
Imports ERPConnect
|
|
Imports System.Data.SqlClient
|
|
|
|
Public Class frmSAP_FuBa
|
|
Dim m_CountTo As Integer = 0
|
|
Private Sub TBPMO_SAP_FUBABindingNavigatorSaveItem_Click(sender As Object, e As EventArgs) Handles TBPMO_SAP_FUBABindingNavigatorSaveItem.Click
|
|
Try
|
|
Me.TBPMO_SAP_FUBABindingSource.EndEdit()
|
|
If DD_ECMAdmin.TBPMO_SAP_FUBA.GetChanges Is Nothing = False Then
|
|
Me.CHANGED_WHOTextBox.Text = USER_USERNAME
|
|
Me.TBPMO_SAP_FUBABindingSource.EndEdit()
|
|
Me.TBPMO_SAP_FUBATableAdapter.Update(DD_ECMAdmin.TBPMO_SAP_FUBA)
|
|
lblSave.Visible = True
|
|
Else
|
|
lblSave.Visible = False
|
|
End If
|
|
Catch ex As Exception
|
|
MsgBox("Error in Save Fuba:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
End Try
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub frmSAP_FuBa_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
|
'TODO: Diese Codezeile lädt Daten in die Tabelle "DD_ECMAdmin.TBPMO_SAP_FUBA". Sie können sie bei Bedarf verschieben oder entfernen.
|
|
Refresh_Fubas()
|
|
End Sub
|
|
Sub Refresh_Fubas()
|
|
Try
|
|
Me.TBPMO_SAP_FUBATableAdapter.Connection.ConnectionString = MYDB_ECM.CurrentConnectionString
|
|
Me.TBPMO_SAP_FUBATableAdapter.Fill(Me.DD_ECMAdmin.TBPMO_SAP_FUBA)
|
|
If MethodTextBox.Text <> "" Then
|
|
If MethodTextBox.Text = "TABLE" Then
|
|
rbTable.Checked = True
|
|
Else
|
|
rBFuba.Checked = True
|
|
End If
|
|
End If
|
|
If rbTable.Checked Then
|
|
MethodTextBox.Text = "TABLE"
|
|
lblMethodname.Text = "SAP Table-/View-Name"
|
|
Else
|
|
lblMethodname.Text = "FuBa Name"
|
|
MethodTextBox.Text = "FUBA"
|
|
End If
|
|
Catch ex As Exception
|
|
MsgBox("Error in Load Fubas:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub btnERPConnect_Click(sender As Object, e As EventArgs) Handles btnERPConnect.Click
|
|
Me.Cursor = Cursors.WaitCursor
|
|
If ClassSAP.ConnectionInit(HostTextBox.Text, SystemNumberTextBox.Text, UserNameTextBox.Text, PasswordTextBox.Text, ClientTextBox.Text, LanguageTextBox.Text) = True Then
|
|
lblConnectionopen.Text = "SAP Connection successfull"
|
|
lblConnectionopen.BackColor = Color.Yellow
|
|
lblConnectionopen.Visible = True
|
|
Else
|
|
lblConnectionopen.Text = "SAP Connection Error"
|
|
lblConnectionopen.BackColor = Color.Red
|
|
lblConnectionopen.Visible = True
|
|
End If
|
|
Me.Cursor = Cursors.Default
|
|
'Try
|
|
' Me.Cursor = Cursors.WaitCursor
|
|
' LOGGER.Debug("")
|
|
' LOGGER.Debug("SAP Connect started:")
|
|
' ERPConnect.LIC.SetLic("W86DWC992C")
|
|
' con.Host = HostTextBox.Text
|
|
' con.SystemNumber = SystemNumberTextBox.Text
|
|
' con.UserName = UserNameTextBox.Text
|
|
' con.Password = PasswordTextBox.Text
|
|
' con.Client = ClientTextBox.Text
|
|
' con.Language = LanguageTextBox.Text
|
|
' LOGGER.Debug("HOST: " & HostTextBox.Text & " |SystemNumber: " & SystemNumberTextBox.Text & " |UserName: " & UserNameTextBox.Text & " |Password: " & PasswordTextBox.Text & " |Client: " & ClientTextBox.Text & " |Language: " & LanguageTextBox.Text)
|
|
' con.Open(False)
|
|
' LOGGER.Debug("SAP-Connection erfolgreich aufgebaut!")
|
|
' LOGGER.Debug("")
|
|
' lblConnectionopen.Visible = True
|
|
' Me.Cursor = Cursors.Default
|
|
'Catch ex As Exception
|
|
' MsgBox("Unexpected Error in SAP Connect: " & ex.Message, MsgBoxStyle.Critical)
|
|
' lblConnectionopen.Visible = False
|
|
' Me.Cursor = Cursors.Default
|
|
' lblResult.Visible = False
|
|
' GridControl2.DataSource = Nothing
|
|
' lblSave.Visible = False
|
|
' Me.Cursor = Cursors.Default
|
|
' Exit Sub
|
|
'End Try
|
|
End Sub
|
|
|
|
Private Sub TBPMO_SAP_FUBABindingSource_AddingNew(sender As Object, e As System.ComponentModel.AddingNewEventArgs) Handles TBPMO_SAP_FUBABindingSource.AddingNew
|
|
DD_ECMAdmin.TBPMO_SAP_FUBA.ADDED_WHOColumn.DefaultValue = USER_USERNAME
|
|
End Sub
|
|
|
|
Private Sub TBPMO_SAP_FUBABindingSource_CurrentChanged(sender As Object, e As EventArgs) Handles TBPMO_SAP_FUBABindingSource.CurrentChanged
|
|
lblSave.Visible = False
|
|
GridControl2.DataSource = Nothing
|
|
GridView2.Columns.Clear()
|
|
lblConnectionopen.Visible = False
|
|
If MethodTextBox.Text <> "" Then
|
|
If MethodTextBox.Text = "TABLE" Then
|
|
rbTable.Checked = True
|
|
Else
|
|
rBFuba.Checked = True
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnInsertData.Click
|
|
If TempTableNameTextBox.Text <> "" Then
|
|
Me.Cursor = Cursors.WaitCursor
|
|
If ClassSAP.ConnectionInit(HostTextBox.Text, SystemNumberTextBox.Text, UserNameTextBox.Text, PasswordTextBox.Text, ClientTextBox.Text, LanguageTextBox.Text) = True Then
|
|
lblConnectionopen.Visible = True
|
|
Else
|
|
lblConnectionopen.Visible = False
|
|
Me.Cursor = Cursors.Default
|
|
lblResult.Visible = False
|
|
GridControl2.DataSource = Nothing
|
|
GridView2.Columns.Clear()
|
|
lblSave.Visible = False
|
|
Exit Sub
|
|
End If
|
|
Dim rowlimit As Integer = 0
|
|
If txtLimitRows.Text <> "" Then
|
|
rowlimit = txtLimitRows.Text
|
|
End If
|
|
Dim oSAPResulttable As DataTable
|
|
If rbTable.Checked = True Then
|
|
Dim result = ClassSAP.Return_Datatable_for_Table(TableNameTextBox.Text, WHERE_CLAUSETextBox.Text, True, rowlimit)
|
|
If Not IsNothing(result) Then
|
|
oSAPResulttable = result
|
|
End If
|
|
End If
|
|
If rBFuba.Checked = True Then
|
|
Dim result = ClassSAP.FuBa_Returndatatable_Seperated(TableNameTextBox.Text, FuBa_SplitCharacterTextBox.Text, rowlimit)
|
|
If Not IsNothing(result) Then
|
|
oSAPResulttable = result
|
|
End If
|
|
End If
|
|
If oSAPResulttable Is Nothing Then
|
|
ClassSAP.SAP_CONNECTION.Close()
|
|
lblResult.Visible = False
|
|
Me.Cursor = Cursors.Default
|
|
lblSave.Visible = False
|
|
GridControl2.DataSource = Nothing
|
|
GridView2.Columns.Clear()
|
|
LOGGER.Warn("SAPResulttable is nothing")
|
|
Exit Sub
|
|
Else
|
|
GridControl2.DataSource = Nothing
|
|
GridView2.Columns.Clear()
|
|
lblResult.Text = ""
|
|
End If
|
|
'######
|
|
Dim i = 0
|
|
Dim oTablename = "[TBPMO_SAP_" & TempTableNameTextBox.Text & "]"
|
|
MYDB_ECM.ExecuteNonQuery("DROP TABLE " & oTablename)
|
|
|
|
Dim createtablesql = "CREATE TABLE " & oTablename & " ( "
|
|
For Each col As System.Data.DataColumn In oSAPResulttable.Columns
|
|
If i = 0 Then
|
|
createtablesql += "[" & col.ColumnName & "] [varchar](250)"
|
|
Else
|
|
createtablesql += ", [" & col.ColumnName & "] [varchar](250)"
|
|
End If
|
|
i += 1
|
|
Next
|
|
createtablesql += ", [ADDED_WHEN] DATETIME NOT NULL DEFAULT GETDATE()"
|
|
createtablesql += ")"
|
|
''Die Tabelle anlegen
|
|
LOGGER.Debug("Create Table: " & createtablesql)
|
|
If MYDB_ECM.ExecuteNonQuery(createtablesql) = False Then
|
|
MsgBox("Error in creating TempTable: Check log", MsgBoxStyle.Critical)
|
|
Exit Sub
|
|
End If
|
|
LOGGER.Debug("table has been created")
|
|
|
|
Dim alter = String.Format("ALTER TABLE {0} ADD GUID INTEGER NOT NULL IDENTITY(1,1)", oTablename)
|
|
MYDB_ECM.ExecuteNonQuery(alter)
|
|
alter = String.Format("ALTER TABLE {0} ADD ADDED_WHEN DATETIME NOT NULL DEFAULT GETDATE()", oTablename)
|
|
MYDB_ECM.ExecuteNonQuery(alter)
|
|
Try
|
|
'Dim OwnerCS As String
|
|
'OwnerCS = ClassDatabase.GetConnectionString(1)
|
|
Dim SQLconnect As New SqlClient.SqlConnection
|
|
SQLconnect.ConnectionString = MYDB_ECM.CurrentConnectionString
|
|
SQLconnect.Open()
|
|
' Note that the column positions in the source DataTable
|
|
' match the column positions in the destination table,
|
|
' so there is no need to map columns.
|
|
Using bulkCopy As SqlBulkCopy = New SqlBulkCopy(SQLconnect)
|
|
bulkCopy.DestinationTableName = oTablename
|
|
Try
|
|
bulkCopy.WriteToServer(oSAPResulttable)
|
|
Catch ex As Exception
|
|
MsgBox("Unexpected Error in BulkCopy SQL: " & ex.Message, MsgBoxStyle.Critical)
|
|
End Try
|
|
End Using
|
|
SQLconnect.Close()
|
|
Me.Cursor = Cursors.Default
|
|
LOGGER.Debug("Create table from SAP was successfull " & oSAPResulttable.Rows.Count & " Rows were inserted to table '" & oTablename & "'!")
|
|
MsgBox("Create table was successfull! " & vbNewLine & oSAPResulttable.Rows.Count & " Rows were inserted to table '" & oTablename & "'!", MsgBoxStyle.Information)
|
|
Catch ex As Exception
|
|
MsgBox("Unexpected Error in SQL bulkCopy: " & ex.Message, MsgBoxStyle.Critical)
|
|
Me.Cursor = Cursors.Default
|
|
End Try
|
|
'######
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub rbTable_CheckedChanged(sender As Object, e As EventArgs) Handles rbTable.CheckedChanged
|
|
If rbTable.Checked Then
|
|
MethodTextBox.Text = "TABLE"
|
|
lblMethodname.Text = "Table Name"
|
|
Else
|
|
lblMethodname.Text = "FuBa Name"
|
|
MethodTextBox.Text = "FUBA"
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub MethodTextBox_TextChanged(sender As Object, e As EventArgs) Handles MethodTextBox.TextChanged
|
|
If MethodTextBox.Text = "TABLE" Then
|
|
rbTable.Checked = True
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub btnGetResult_Click(sender As Object, e As EventArgs) Handles btnGetResult.Click
|
|
|
|
Dim sw As New Stopwatch
|
|
sw.Start()
|
|
m_CountTo = 100
|
|
|
|
Me.Cursor = Cursors.WaitCursor
|
|
If ClassSAP.ConnectionInit(HostTextBox.Text, SystemNumberTextBox.Text, UserNameTextBox.Text, PasswordTextBox.Text, ClientTextBox.Text, LanguageTextBox.Text) = True Then
|
|
lblConnectionopen.Visible = True
|
|
Else
|
|
lblConnectionopen.Visible = False
|
|
Me.Cursor = Cursors.Default
|
|
lblResult.Visible = False
|
|
GridControl2.DataSource = Nothing
|
|
GridView2.Columns.Clear()
|
|
lblSave.Visible = False
|
|
sw.Stop()
|
|
Exit Sub
|
|
End If
|
|
|
|
Dim SAPResulttable As DataTable = New DataTable
|
|
Dim rowlimit As Integer = 0
|
|
If txtLimitRows.Text <> "" Then
|
|
rowlimit = txtLimitRows.Text
|
|
End If
|
|
If rbTable.Checked = True Then
|
|
|
|
Dim result = ClassSAP.Return_Datatable_for_Table(TableNameTextBox.Text, WHERE_CLAUSETextBox.Text, True, rowlimit)
|
|
If Not IsNothing(result) Then
|
|
SAPResulttable = result
|
|
End If
|
|
ElseIf rBFuba.Checked = True Then 'FUBA Abruf
|
|
Dim result = ClassSAP.FuBa_Returndatatable_Seperated(TableNameTextBox.Text, FuBa_SplitCharacterTextBox.Text, rowlimit)
|
|
If Not IsNothing(result) Then
|
|
SAPResulttable = result
|
|
End If
|
|
End If
|
|
If SAPResulttable Is Nothing Then
|
|
ClassSAP.SAP_CONNECTION.Close()
|
|
lblResult.Visible = False
|
|
Me.Cursor = Cursors.Default
|
|
lblSave.Visible = False
|
|
GridControl2.DataSource = Nothing
|
|
GridView2.Columns.Clear()
|
|
sw.Stop()
|
|
LOGGER.Warn("SAPResulttable is nothing")
|
|
Exit Sub
|
|
End If
|
|
|
|
|
|
'Jetzt dem Grid die Datasource zuordnen
|
|
|
|
Try
|
|
If SAPResulttable.Rows.Count > 0 Then
|
|
GridControl2.DataSource = SAPResulttable
|
|
Else
|
|
Try
|
|
GridControl2.DataSource = Nothing
|
|
GridView2.Columns.Clear()
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
End If
|
|
ClassSAP.SAP_CONNECTION.Close()
|
|
Dim elapsed As Double
|
|
elapsed = sw.Elapsed.TotalSeconds
|
|
sw.Stop()
|
|
If rowlimit <> 0 And SAPResulttable.Rows.Count >= rowlimit Then
|
|
lblResult.Text = "Result (limited to " & rowlimit.ToString & " rows) - Duration: " & Format(elapsed, "0.00") & " seconds - " & Now.ToShortTimeString
|
|
Else
|
|
lblResult.Text = "Result (unlimited) >> " & SAPResulttable.Rows.Count & " rows retrieved - Duration: " & Format(elapsed, "0.00") & " seconds - " & Now.ToShortTimeString
|
|
End If
|
|
lblResult.Visible = True
|
|
Me.Cursor = Cursors.Default
|
|
lblSave.Visible = False
|
|
|
|
Catch ex As Exception
|
|
ClassSAP.SAP_CONNECTION.Close()
|
|
lblResult.Visible = False
|
|
Me.Cursor = Cursors.Default
|
|
lblSave.Visible = False
|
|
GridControl2.DataSource = Nothing
|
|
GridView2.Columns.Clear()
|
|
LOGGER.Warn("Unexpected Error in GridControl2 >> DataTable 2: " & ex.Message)
|
|
MsgBox("Error in GridControl2 >> DataTable: " & ex.Message, MsgBoxStyle.Critical)
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub rBFuba_CheckedChanged(sender As Object, e As EventArgs) Handles rBFuba.CheckedChanged
|
|
If rBFuba.Checked = True Then
|
|
Me.FuBa_SplitCharacterTextBox.Visible = True
|
|
lblSplitchr.Visible = True
|
|
Else
|
|
Me.FuBa_SplitCharacterTextBox.Visible = False
|
|
lblSplitchr.Visible = False
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
|
|
Refresh_Fubas()
|
|
End Sub
|
|
|
|
Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click
|
|
Me.Cursor = Cursors.WaitCursor
|
|
lblresultFunction.Visible = False
|
|
If ClassSAP.ConnectionInit(testHOST.Text, testSYSNR.Text, testUSERName.Text, testPW.Text, testClient.Text, testLanguage.Text) = True Then
|
|
lblSuccess.Visible = True
|
|
Else
|
|
lblSuccess.Visible = False
|
|
Me.Cursor = Cursors.Default
|
|
Exit Sub
|
|
End If
|
|
Dim result = ClassSAP.INSERT_ARCHIVE_OBJECT(testArchiveID.Text, testDOCID.Text, testAROBJECT.Text, testAROBJECT.Text, testSAP_OBJECT.Text, testDOCTYPE.Text, testTablename.Text)
|
|
lblresultFunction.Visible = True
|
|
If result <> "" Then
|
|
lblresultFunction.Text = result.ToString
|
|
Else
|
|
lblresultFunction.Text = "Function executed successfully!"
|
|
End If
|
|
Me.Cursor = Cursors.Default
|
|
End Sub
|
|
|
|
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
|
|
Me.Cursor = Cursors.WaitCursor
|
|
lblResultBAPI.Visible = False
|
|
If ClassSAP.ConnectionInit(testHOST.Text, testSYSNR.Text, testUSERName.Text, testPW.Text, testClient.Text, testLanguage.Text) = True Then
|
|
lblSuccess.Visible = True
|
|
Else
|
|
lblSuccess.Visible = False
|
|
Me.Cursor = Cursors.Default
|
|
Exit Sub
|
|
End If
|
|
Dim result = ClassSAP.LINK_ARC_OBJECT(txtTableSendList.Text, txtBARCODESendlist.Text, txtCONTREPSendList.Text, txtDOC_IDSendList.Text, txtARDATESendList.Text, txtDoctypeSendList.Text)
|
|
lblResultBAPI.Visible = True
|
|
If result <> "" Then
|
|
lblResultBAPI.Text = result.ToString
|
|
Else
|
|
lblResultBAPI.Text = "Function executed successfully!"
|
|
End If
|
|
Me.Cursor = Cursors.Default
|
|
End Sub
|
|
|
|
|
|
End Class |