Hallo erstmal,
ich versuche momentan von UPS WorldShip die TrackingNumber in SAP zu implementieren.
Habe dazu auch schon etwas geschrieben eine dbo angelegt.
USE [GLOBALCONFIG]
GO
/****** Object: StoredProcedure [dbo].[UPS_SHIPMENT_IMPORT] Script Date: 21.01.2021 08:19:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[UPS_SHIPMENT_IMPORT] @FILE_PATH nvarchar(100)
as
DECLARE @command nvarchar(max)
BEGIN
set @command = '
WITH XMLNAMESPACES(DEFAULT ''http://www.ups.com/XMLSchema/CT/WorldShip/ImpExp/ShipmentExport/v1_0_0'')
INSERT INTO [GLOBALCONFIG].[dbo].[UPS_SHIPMENTS]
([REF1]
,[REF2]
,[TRACKINGNUMBER]
,[PACKAGEWEIGHT]
,[IMPORT_DATE]
,[IMPORT_FILENAME])
select
B.ShipmentInformation.query(''ReferenceNumbers/Reference1'').value(''.'', ''varchar(20)'')as Referenz1,
B.ShipmentInformation.query(''ReferenceNumbers/Reference2'').value(''.'', ''varchar(20)'')as Referenz2,
C.Package.query(''TrackingNumber'').value(''.'', ''varchar(100)'')as Verfolgungsnummer,
C.Package.query(''Weight'').value(''.'', ''varchar(20)'')as Gewicht,
getdate(),
''' + @FILE_PATH + '''
from
(
select cast(A as xml) from
openrowset (BULK ''' + @FILE_PATH + ''' ,SINGLE_BLOB) as T(A))as T(A)
CROSS APPLY A.nodes(''Shipments/Shipment'') as A (Shipment)
CROSS APPLY Shipment.nodes(''ShipmentInformation'') as B (ShipmentInformation)
CROSS APPLY Shipment.nodes(''Packages/Package'') as C (Package)
'
--SELECT @command
EXEC sp_executesql @command
END
Nun habe ich das Problem, dass die XML Datei jeden Tag neu exportiert wird. Das heißt dass der Name sich täglich ändert.
Meine Idee war nun eine .bat Datei zu schreiben die der Prozedur "sagt" dass sie die neuste Datei nehmen soll. Hoffe ich habe es anschaulich erklärt und mir kann hier jemand weiterhelfen.
Danke schon mal!
ich versuche momentan von UPS WorldShip die TrackingNumber in SAP zu implementieren.
Habe dazu auch schon etwas geschrieben eine dbo angelegt.
USE [GLOBALCONFIG]
GO
/****** Object: StoredProcedure [dbo].[UPS_SHIPMENT_IMPORT] Script Date: 21.01.2021 08:19:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[UPS_SHIPMENT_IMPORT] @FILE_PATH nvarchar(100)
as
DECLARE @command nvarchar(max)
BEGIN
set @command = '
WITH XMLNAMESPACES(DEFAULT ''http://www.ups.com/XMLSchema/CT/WorldShip/ImpExp/ShipmentExport/v1_0_0'')
INSERT INTO [GLOBALCONFIG].[dbo].[UPS_SHIPMENTS]
([REF1]
,[REF2]
,[TRACKINGNUMBER]
,[PACKAGEWEIGHT]
,[IMPORT_DATE]
,[IMPORT_FILENAME])
select
B.ShipmentInformation.query(''ReferenceNumbers/Reference1'').value(''.'', ''varchar(20)'')as Referenz1,
B.ShipmentInformation.query(''ReferenceNumbers/Reference2'').value(''.'', ''varchar(20)'')as Referenz2,
C.Package.query(''TrackingNumber'').value(''.'', ''varchar(100)'')as Verfolgungsnummer,
C.Package.query(''Weight'').value(''.'', ''varchar(20)'')as Gewicht,
getdate(),
''' + @FILE_PATH + '''
from
(
select cast(A as xml) from
openrowset (BULK ''' + @FILE_PATH + ''' ,SINGLE_BLOB) as T(A))as T(A)
CROSS APPLY A.nodes(''Shipments/Shipment'') as A (Shipment)
CROSS APPLY Shipment.nodes(''ShipmentInformation'') as B (ShipmentInformation)
CROSS APPLY Shipment.nodes(''Packages/Package'') as C (Package)
'
--SELECT @command
EXEC sp_executesql @command
END
Nun habe ich das Problem, dass die XML Datei jeden Tag neu exportiert wird. Das heißt dass der Name sich täglich ändert.
Meine Idee war nun eine .bat Datei zu schreiben die der Prozedur "sagt" dass sie die neuste Datei nehmen soll. Hoffe ich habe es anschaulich erklärt und mir kann hier jemand weiterhelfen.
Danke schon mal!