SAP ABAP Transport Checking Tool

This commit is contained in:
2025-09-26 18:56:24 +00:00
parent 67484ad150
commit 73d8b31033
9 changed files with 9466 additions and 0 deletions

10
.abapgit.xml Normal file
View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DATA>
<MASTER_LANGUAGE>E</MASTER_LANGUAGE>
<STARTING_FOLDER>/src/</STARTING_FOLDER>
<FOLDER_LOGIC>PREFIX</FOLDER_LOGIC>
</DATA>
</asx:values>
</asx:abap>

10
src/package.devc.xml Normal file
View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_DEVC" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DEVC>
<CTEXT>Transport Checking Tool</CTEXT>
</DEVC>
</asx:values>
</asx:abap>
</abapGit>

View File

@@ -0,0 +1,255 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_DOCT" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DOC>
<item>
<DOKIL>
<ID>TX</ID>
<OBJECT>ZEV_TP_CHECKTOOL</OBJECT>
<LANGU>E</LANGU>
<TYP>E</TYP>
<VERSION>0002</VERSION>
<MASTERLANG>X</MASTERLANG>
<TXTLINES>00045</TXTLINES>
<DOKSTATE>A</DOKSTATE>
</DOKIL>
<HEAD>
<TDOBJECT>DOKU</TDOBJECT>
<TDNAME>ZEV_TP_CHECKTOOL</TDNAME>
<TDID>TX</TDID>
<TDSPRAS>E</TDSPRAS>
<TDFORM>S_DOCU_SHOW</TDFORM>
<TDSTYLE>S_DOCUS1</TDSTYLE>
<TDVERSION>00002</TDVERSION>
<TDLINESIZE>072</TDLINESIZE>
</HEAD>
<LINES>
<TLINE>
<TDFORMAT>U2</TDFORMAT>
<TDLINE>ZTCT - SAP ABAP Transport Checking Tool (Object Level)</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>*</TDFORMAT>
</TLINE>
<TLINE>
<TDFORMAT>/=</TDFORMAT>
<TDLINE>Transport Checking Tool: Analyze transports before</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>=</TDFORMAT>
<TDLINE> moving them to production.</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>=</TDFORMAT>
<TDLINE> Determine the proper order and highlight risks.</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>=</TDFORMAT>
<TDLINE> AbapGit is highly recommended to install this tool and to</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>=</TDFORMAT>
<TDLINE> keep it up to date.</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>=</TDFORMAT>
<TDLINE> Saplink is outdated and no longer maintained.</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>*</TDFORMAT>
</TLINE>
<TLINE>
<TDFORMAT>/=</TDFORMAT>
<TDLINE>NOTE: This README is just a very short summary. For a more</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>=</TDFORMAT>
<TDLINE> detailed explanation, please check out the Blog on SCN or</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>=</TDFORMAT>
<TDLINE> the manual included here on GitHub.</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>*</TDFORMAT>
</TLINE>
<TLINE>
<TDFORMAT>/=</TDFORMAT>
<TDLINE>BLOG:</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>=</TDFORMAT>
<TDLINE> http://scn.sap.com/community/abap/blog/2013/05/31/</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>=</TDFORMAT>
<TDLINE>transport-checking-tool-object-level</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>*</TDFORMAT>
</TLINE>
<TLINE>
<TDFORMAT>U2</TDFORMAT>
<TDLINE>INTRODUCTION</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>*</TDFORMAT>
</TLINE>
<TLINE>
<TDFORMAT>U3</TDFORMAT>
<TDLINE>Why this tool</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>*</TDFORMAT>
</TLINE>
<TLINE>
<TDFORMAT>/=</TDFORMAT>
<TDLINE>Transporting a project to Production gets more complicated</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>=</TDFORMAT>
<TDLINE> with increasing numbers of developers and transports. With the</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>=</TDFORMAT>
<TDLINE> final Go-Live date in sight, it is vital to have a correct list</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>=</TDFORMAT>
<TDLINE> of transports that can be moved with minimal risk.</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>*</TDFORMAT>
</TLINE>
<TLINE>
<TDFORMAT>U3</TDFORMAT>
<TDLINE>Short Description</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>*</TDFORMAT>
</TLINE>
<TLINE>
<TDFORMAT>/=</TDFORMAT>
<TDLINE>This tool checks if transports can be moved from one environment</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>=</TDFORMAT>
<TDLINE> they have been transported to (usually this will be Test or Acceptance)</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>=</TDFORMAT>
<TDLINE> to the next environment. The check is performed on object level. All</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>=</TDFORMAT>
<TDLINE> objects in the selected transports are checked.</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>*</TDFORMAT>
</TLINE>
<TLINE>
<TDFORMAT>U3</TDFORMAT>
<TDLINE>Checks</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>*</TDFORMAT>
</TLINE>
<TLINE>
<TDFORMAT>/=</TDFORMAT>
<TDLINE>Are there newer version in production that will be overwritten? Are</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>=</TDFORMAT>
<TDLINE> there older versions existing in Acceptance that are not included in</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>=</TDFORMAT>
<TDLINE> your list? Are there objects that use DDIC objects that are not</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>=</TDFORMAT>
<TDLINE> existing in Production and are not included in your list? And more...</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>*</TDFORMAT>
</TLINE>
<TLINE>
<TDFORMAT>U3</TDFORMAT>
<TDLINE>Other options</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>*</TDFORMAT>
</TLINE>
<TLINE>
<TDFORMAT>/=</TDFORMAT>
<TDLINE>It is possible to save your list so you can continue the check later.</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>=</TDFORMAT>
<TDLINE> You can merge lists, add single transports, add transports that contain</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>=</TDFORMAT>
<TDLINE> conflicting objects or delete rows. Each time objects are added or</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>=</TDFORMAT>
<TDLINE> removed, the same objects that remain in the list are checked again</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>=</TDFORMAT>
<TDLINE> to ensure that the list stays up to date.</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>*</TDFORMAT>
</TLINE>
<TLINE>
<TDFORMAT>U3</TDFORMAT>
<TDLINE>Notes</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>*</TDFORMAT>
</TLINE>
<TLINE>
<TDFORMAT>/=</TDFORMAT>
<TDLINE>This tool was initially developed for use in a 3-Tier</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>=</TDFORMAT>
<TDLINE> system (DEV--&gt;QAS--&gt;PRD), to check if transports can</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>=</TDFORMAT>
<TDLINE> safely be moved to Production. However, it can also be used</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>=</TDFORMAT>
<TDLINE> to check if transports can be moved to other environments. For</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>=</TDFORMAT>
<TDLINE> example: If the company uses a 4-tier system</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>=</TDFORMAT>
<TDLINE> (DEV --&gt; TST --&gt; QAS --&gt; PRD),</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>=</TDFORMAT>
<TDLINE> a check can be done on the route DEV --&gt; TST --&gt; QAS,</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>=</TDFORMAT>
<TDLINE> DEV--&gt; QAS --&gt; PRD or</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>=</TDFORMAT>
<TDLINE> DEV --&gt; TST --&gt; PRD.</TDLINE>
</TLINE>
</LINES>
</item>
</DOC>
</asx:values>
</asx:abap>
</abapGit>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,65 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_DOCT" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DOC>
<item>
<DOKIL>
<ID>TX</ID>
<OBJECT>ZEV_TP_CHECKTOOL_ADD_FILE</OBJECT>
<LANGU>E</LANGU>
<TYP>E</TYP>
<VERSION>0002</VERSION>
<MASTERLANG>X</MASTERLANG>
<TXTLINES>00009</TXTLINES>
<DOKSTATE>A</DOKSTATE>
</DOKIL>
<HEAD>
<TDOBJECT>DOKU</TDOBJECT>
<TDNAME>ZEV_TP_CHECKTOOL_ADD_FILE</TDNAME>
<TDID>TX</TDID>
<TDSPRAS>E</TDSPRAS>
<TDFORM>S_DOCU_SHOW</TDFORM>
<TDSTYLE>S_DOCUS1</TDSTYLE>
<TDVERSION>00002</TDVERSION>
<TDLINESIZE>072</TDLINESIZE>
</HEAD>
<LINES>
<TLINE>
<TDFORMAT>U2</TDFORMAT>
<TDLINE>NOTE:</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>*</TDFORMAT>
<TDLINE>Uploading files does NOT automatically recheck the list.</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>*</TDFORMAT>
<TDLINE>Reason: When combining multiple ZTCT files, these should be</TDLINE>
</TLINE>
<TLINE>
<TDLINE>correct already. When a large number of files is combined, containing</TDLINE>
</TLINE>
<TLINE>
<TDLINE>many transports, auto-checking would be too time consuming. Combining</TDLINE>
</TLINE>
<TLINE>
<TDLINE>files must be easy and quick.</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>*</TDFORMAT>
<TDLINE>First collect and combine ALL the files.</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>*</TDFORMAT>
<TDLINE>Then, when all files have been combined use the RECHECK button to do a</TDLINE>
</TLINE>
<TLINE>
<TDLINE>final check on all transports.</TDLINE>
</TLINE>
</LINES>
</item>
</DOC>
</asx:values>
</asx:abap>
</abapGit>

View File

@@ -0,0 +1,85 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_DOCT" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DOC>
<item>
<DOKIL>
<ID>TX</ID>
<OBJECT>ZEV_TP_CHECKTOOL_BUFF</OBJECT>
<LANGU>E</LANGU>
<TYP>E</TYP>
<VERSION>0006</VERSION>
<MASTERLANG>X</MASTERLANG>
<TXTLINES>00015</TXTLINES>
<DOKSTATE>A</DOKSTATE>
</DOKIL>
<HEAD>
<TDOBJECT>DOKU</TDOBJECT>
<TDNAME>ZEV_TP_CHECKTOOL_BUFF</TDNAME>
<TDID>TX</TDID>
<TDSPRAS>E</TDSPRAS>
<TDFORM>S_DOCU_SHOW</TDFORM>
<TDSTYLE>S_DOCUS1</TDSTYLE>
<TDVERSION>00006</TDVERSION>
<TDLINESIZE>072</TDLINESIZE>
</HEAD>
<LINES>
<TLINE>
<TDFORMAT>U2</TDFORMAT>
<TDLINE>Information</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>*</TDFORMAT>
<TDLINE>If a transport is no longer in the buffer, the most likely reason will</TDLINE>
</TLINE>
<TLINE>
<TDLINE>be that transport has been removed from the buffer.</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>*</TDFORMAT>
<TDLINE>E.g. the transport contained an error and a new correction transport was</TDLINE>
</TLINE>
<TLINE>
<TDLINE>created to fix the issue. The original transport should never be moved</TDLINE>
</TLINE>
<TLINE>
<TDLINE>to production.</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>*</TDFORMAT>
<TDLINE>The option to check the buffer is default switched to ON. If a</TDLINE>
</TLINE>
<TLINE>
<TDLINE>transportis not found in the buffer, a warning message will be given.</TDLINE>
</TLINE>
<TLINE>
<TDLINE>The user can then check if this transport needs to be skipped.</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>*</TDFORMAT>
<TDLINE>If there are transports in the output that are no longer in the buffer,</TDLINE>
</TLINE>
<TLINE>
<TDLINE>run the program again with the &apos;Check transport buffer&apos; switched OFF.</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>*</TDFORMAT>
<TDLINE>The correction transport for this object should be either in the list as</TDLINE>
</TLINE>
<TLINE>
<TDLINE>well (Information message) or already in production (ERROR message).</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>*</TDFORMAT>
<TDLINE>There is also an option to automatically remove the transports that are</TDLINE>
</TLINE>
<TLINE>
<TDLINE>not in the buffer.</TDLINE>
</TLINE>
</LINES>
</item>
</DOC>
</asx:values>
</asx:abap>
</abapGit>

View File

@@ -0,0 +1,96 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_DOCT" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DOC>
<item>
<DOKIL>
<ID>TX</ID>
<OBJECT>ZEV_TP_CHECKTOOL_CKEY</OBJECT>
<LANGU>E</LANGU>
<TYP>E</TYP>
<VERSION>0003</VERSION>
<MASTERLANG>X</MASTERLANG>
<TXTLINES>00018</TXTLINES>
<DOKSTATE>A</DOKSTATE>
</DOKIL>
<HEAD>
<TDOBJECT>DOKU</TDOBJECT>
<TDNAME>ZEV_TP_CHECKTOOL_CKEY</TDNAME>
<TDID>TX</TDID>
<TDSPRAS>E</TDSPRAS>
<TDFORM>S_DOCU_SHOW</TDFORM>
<TDSTYLE>S_DOCUS1</TDSTYLE>
<TDVERSION>00003</TDVERSION>
<TDLINESIZE>072</TDLINESIZE>
</HEAD>
<LINES>
<TLINE>
<TDFORMAT>U2</TDFORMAT>
<TDLINE>Information</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>*</TDFORMAT>
<TDLINE>Not all tables will need to be checked. Tables for authorisations (e.g.</TDLINE>
</TLINE>
<TLINE>
<TDLINE>UST12) are huge and will often have unique keys anyway. Default setting</TDLINE>
</TLINE>
<TLINE>
<TDLINE>is ON.</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>U2</TDFORMAT>
<TDLINE>When flagged:</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>*</TDFORMAT>
<TDLINE>The program will open a popup window with all the tables that are found</TDLINE>
</TLINE>
<TLINE>
<TDLINE>in the transport list.</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>*</TDFORMAT>
<TDLINE>In the popup the user has the option to select the rows for which a</TDLINE>
</TLINE>
<TLINE>
<TDLINE>check should be done. The program will then check the table entries</TDLINE>
</TLINE>
<TLINE>
<TDLINE>found in the transport, using the table keys.</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>*</TDFORMAT>
<TDLINE>Advised is to select all tables in the popup, except the ones the user</TDLINE>
</TLINE>
<TLINE>
<TDLINE>knows are not important.</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>U2</TDFORMAT>
<TDLINE>When NOT flagged:</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>*</TDFORMAT>
<TDLINE>Tables that are not selected will not be checked.</TDLINE>
</TLINE>
<TLINE>
<TDFORMAT>*</TDFORMAT>
<TDLINE>PLEASE NOTE: This does not mean that there won&apos;t not be a conflict. The</TDLINE>
</TLINE>
<TLINE>
<TDLINE>check on table key is skipped. A warning on a table (e.g. newer</TDLINE>
</TLINE>
<TLINE>
<TDLINE>transport in Production) would be meaningless without checking the table</TDLINE>
</TLINE>
<TLINE>
<TDLINE>key.</TDLINE>
</TLINE>
</LINES>
</item>
</DOC>
</asx:values>
</asx:abap>
</abapGit>

22
src/ztct.tran.xml Normal file
View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_TRAN" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<TSTC>
<TCODE>ZTCT</TCODE>
<PGMNA>ZEV_TP_CHECKTOOL</PGMNA>
<DYPNO>1000</DYPNO>
<CINFO>gA==</CINFO>
</TSTC>
<TSTCC>
<TCODE>ZTCT</TCODE>
<S_WIN32>X</S_WIN32>
</TSTCC>
<TSTCT>
<SPRSL>E</SPRSL>
<TCODE>ZTCT</TCODE>
<TTEXT>Transport Checking Tool</TTEXT>
</TSTCT>
</asx:values>
</asx:abap>
</abapGit>