Compare commits

..

No commits in common. 'master' and 'kern_tomcat10_test_his' have entirely different histories.

  1. 495
      .classpath
  2. 16
      .externalToolBuilders/Ant Superx Version.launch
  3. 294
      .gitignore
  4. 94
      .project
  5. 412
      lizenz.txt
  6. 901
      src-patches/com/sun/jersey/spi/container/servlet/WebComponent.java
  7. 366
      src-patches/org/dbforms/util/MultipartRequest.java
  8. 699
      src-patches/org/springframework/security/web/util/OnCommittedResponseWrapper.java
  9. 12
      src/de/memtext/util/CryptUtils.java
  10. 4
      src/de/memtext/util/XmlFlatFileMerger.java
  11. 6
      src/de/statspez/plausi/astat/csv/Abschluss3steller.csv
  12. 56
      src/de/statspez/plausi/astat/csv/Hochschule.csv
  13. 47
      src/de/statspez/plausi/astat/csv/HochschuleErsteinschreibung.csv
  14. 64
      src/de/statspez/plausi/astat/csv/Hochschulfachbereich.csv
  15. 62
      src/de/statspez/plausi/astat/csv/Hochschulstandort.csv
  16. 2
      src/de/statspez/plausi/astat/csv/ReadMeGasthoererstatistik.txt
  17. 4
      src/de/statspez/plausi/astat/csv/Staat.csv
  18. 94
      src/de/statspez/plausi/astat/csv/Studienfach_Land.csv
  19. BIN
      src/de/statspez/plausi/generated/PL-Pruefungen-ERHEBUNG_GASTHOERER_2026_06_08.pdf
  20. 68
      src/de/statspez/plausi/generated/PL-Pruefungen-Gasthoerer_2026_06_08.csv
  21. 616
      src/de/statspez/plausi/generated/PL-Pruefungen-PROMOVIERENDE_2026_05_21.csv
  22. BIN
      src/de/statspez/plausi/generated/PL-Pruefungen-PROMOVIERENDE_2026_05_21.pdf
  23. 3035
      src/de/statspez/plausi/generated/PL-Pruefungen-STUD_PRUEF_AB_SS2017_2026_08_05.csv
  24. BIN
      src/de/statspez/plausi/generated/PL-Pruefungen-STUD_PRUEF_AB_SS2017_2026_08_05.pdf
  25. 356
      src/de/statspez/plausi/generated/Plausi_ERHEBUNG_GASTHOERER_2019.java
  26. 1446
      src/de/statspez/plausi/generated/Plausi_ERHEBUNG_GASTHOERER_2019.xml
  27. BIN
      src/de/statspez/plausi/generated/Plausi_ERHEBUNG_GASTHOERER_2019_Descriptor.data
  28. 292
      src/de/statspez/plausi/generated/Plausi_ERHEBUNG_PROMOVIERENDE_AB_2017.java
  29. 3348
      src/de/statspez/plausi/generated/Plausi_ERHEBUNG_PROMOVIERENDE_AB_2017.xml
  30. BIN
      src/de/statspez/plausi/generated/Plausi_ERHEBUNG_PROMOVIERENDE_AB_2017_Descriptor.data
  31. 362
      src/de/statspez/plausi/generated/Plausi_ERHEBUNG_PROMOVIERENDE_AB_2017_Segment1.java
  32. 539
      src/de/statspez/plausi/generated/Plausi_ERHEBUNG_STUDENTEN_PRUEFUNGEN_AB_2017.java
  33. 12749
      src/de/statspez/plausi/generated/Plausi_ERHEBUNG_STUDENTEN_PRUEFUNGEN_AB_2017.xml
  34. BIN
      src/de/statspez/plausi/generated/Plausi_ERHEBUNG_STUDENTEN_PRUEFUNGEN_AB_2017_Descriptor.data
  35. 786
      src/de/statspez/plausi/generated/Plausi_ERHEBUNG_STUDENTEN_PRUEFUNGEN_AB_2017_Segment1.java
  36. 47
      src/de/superx/access/DbSqlRestrictionProvider.java
  37. 5
      src/de/superx/access/InlineSelectVisitor.java
  38. 13
      src/de/superx/bianalysis/ColumnElement.java
  39. 13
      src/de/superx/bianalysis/ExcelSheetBuilder.java
  40. 5
      src/de/superx/bianalysis/ReportDefinition.java
  41. 47
      src/de/superx/bianalysis/ReportMetadata.java
  42. 4
      src/de/superx/bianalysis/StoredReport.java
  43. 116
      src/de/superx/bianalysis/bin/BiAnalysisCLI.java
  44. 3
      src/de/superx/bianalysis/jasper/JasperReportJson.java
  45. 5
      src/de/superx/bianalysis/metadata/Identifier.java
  46. 47
      src/de/superx/bianalysis/metadata/MetadataImporter.java
  47. 10
      src/de/superx/bianalysis/metadata/models/json/MetaDimension.java
  48. 2
      src/de/superx/bianalysis/metadata/models/json/MetaDimensionAttribute.java
  49. 11
      src/de/superx/bianalysis/models/Filter.java
  50. 4
      src/de/superx/bianalysis/models/Right.java
  51. 3
      src/de/superx/bianalysis/models/RightParam.java
  52. 32
      src/de/superx/bianalysis/models/StoredReportRequest.java
  53. 4
      src/de/superx/bianalysis/repository/dto/AttributeDto.java
  54. 21
      src/de/superx/bianalysis/rest/BiAnalysisAdminApi.java
  55. 76
      src/de/superx/bianalysis/rest/BiAnalysisApi.java
  56. 19
      src/de/superx/bianalysis/service/BiAnalysisManager.java
  57. 10
      src/de/superx/bianalysis/service/BiAnalysisRightService.java
  58. 3069
      src/de/superx/bianalysis/service/DbMetaAdapter.java
  59. 11
      src/de/superx/bianalysis/service/IllegalMetaDataOperation.java
  60. 2
      src/de/superx/bianalysis/service/JasperReportExport.java
  61. 212
      src/de/superx/bianalysis/service/UserRestrictionService.java
  62. 33
      src/de/superx/bianalysis/sqlgeneration/SQLGenerator.java
  63. 11
      src/de/superx/bianalysis/sqlgeneration/SQLGeneratorTotals.java
  64. 6
      src/de/superx/bin/ComponentAdminCLI.java
  65. 4
      src/de/superx/bin/DataProfiler.java
  66. 4
      src/de/superx/bin/EtlFuzzer.java
  67. 12
      src/de/superx/bin/ExecuteMask.java
  68. 11
      src/de/superx/bin/FMParser.java
  69. 3
      src/de/superx/bin/fm/EtlStarter.java
  70. 4
      src/de/superx/bin/fm/SqlVarsDirective.java
  71. 14
      src/de/superx/common/FieldXmlEncoder.java
  72. 63
      src/de/superx/common/Maske.java
  73. 254
      src/de/superx/common/SxUser.java
  74. 4
      src/de/superx/db/SpringBeanConnectionProvider.java
  75. 21
      src/de/superx/db/export/ExportConfigReader.java
  76. 110
      src/de/superx/db/export/ExportConfigWriter.java
  77. 111
      src/de/superx/db/export/ExportTableConfig.java
  78. 8
      src/de/superx/db/export/ImportMode.java
  79. 11
      src/de/superx/dbt/DbtAction.java
  80. 8
      src/de/superx/dbt/DbtExecutionState.java
  81. 59
      src/de/superx/dbt/DbtMetrics.java
  82. 7
      src/de/superx/dbt/DbtPermissionException.java
  83. 443
      src/de/superx/dbt/DbtRun.java
  84. 24
      src/de/superx/dbt/DbtRunRequest.java
  85. 65
      src/de/superx/dbt/DbtRunResult.java
  86. 146
      src/de/superx/dbt/DbtUtils.java
  87. 464
      src/de/superx/dbt/DbtWrapper.java
  88. 15
      src/de/superx/etl/biad/DBSource.java
  89. 4
      src/de/superx/jdbc/entity/Cif.java
  90. 4
      src/de/superx/jdbc/entity/Cifx.java
  91. 45
      src/de/superx/jdbc/entity/CifxCustomize.java
  92. 11
      src/de/superx/jdbc/entity/CifxKey.java
  93. 11
      src/de/superx/jdbc/entity/CifxTable.java
  94. 128
      src/de/superx/jdbc/entity/Sichten.java
  95. 9
      src/de/superx/jdbc/repository/CifxCustomizeRepository.java
  96. 10
      src/de/superx/jdbc/repository/CifxKeyRepository.java
  97. 10
      src/de/superx/jdbc/repository/CifxTableRepository.java
  98. 10
      src/de/superx/job/ContainerNode.java
  99. 6
      src/de/superx/job/ExecuteSQLFluffAction.java
  100. 4
      src/de/superx/job/ExtractAction.java
  101. Some files were not shown because too many files have changed in this diff Show More

495
.classpath

@ -1,93 +1,75 @@ @@ -1,93 +1,75 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="test-src"/>
<classpathentry kind="src" path="src-patches"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/xml-apis-1.4.01.jar"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="module" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="superx/WEB-INF/lib/HikariCP-4.0.3.jar" sourcepath="superx/WEB-INF/lib/src/HikariCP-4.0.3-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/superx/WEB-INF/lib/HikariCP-4.0.3.jar/../javadoc/HikariCP-4.0.3-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="superx/WEB-INF/lib/JSAP-2.1.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/ST4-4.0.4.jar" sourcepath="superx/WEB-INF/lib/src/ST4-4.0.4-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/SparseBitSet-1.2.jar" sourcepath="superx/WEB-INF/lib/src/SparseBitSet-1.2-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/activation-1.1.1.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/angus-activation-2.0.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/angus-mail-2.0.5.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/ant-launcher-1.10.14.jar" sourcepath="superx/WEB-INF/lib/src/ant-launcher-1.10.14-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/ant-launcher-1.10.14.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/antlr-2.7.7.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/antlr-runtime-3.4.jar" sourcepath="superx/WEB-INF/lib/src/antlr-runtime-3.4-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/aopalliance-1.0.jar" sourcepath="superx/WEB-INF/lib/src/aopalliance-1.0-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/antlr-runtime-3.4.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/aopalliance-1.0.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/asm-3.3.1.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/asm-commons-3.1.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/asm-tree-3.1.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/aspectjrt-1.9.20.jar" sourcepath="superx/WEB-INF/lib/src/aspectjrt-1.9.20-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/aspectjweaver-1.9.20.jar" sourcepath="superx/WEB-INF/lib/src/aspectjweaver-1.9.20-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/aspectjrt-1.9.20.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/aspectjweaver-1.9.20.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/avalon-framework-4.2.0.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/batik-all-1.17.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/bliki-core-3.0.17.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/bson-4.2.0.jar" sourcepath="superx/WEB-INF/lib/src/bson-4.2.0-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/bson-4.2.0.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/cewolf-0.10.1.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/cglib-nodep-3.2.4.jar" sourcepath="superx/WEB-INF/lib/src/cglib-nodep-3.2.4-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/cglib-nodep-3.2.4.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-beanutils-1.9.4.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-cli-1.2.jar" sourcepath="superx/WEB-INF/lib/src/commons-cli-1.2-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-codec-1.15.jar" sourcepath="superx/WEB-INF/lib/src/commons-codec-1.15-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-collections4-4.1.jar" sourcepath="superx/WEB-INF/lib/src/commons-collections4-4.1-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-compress-1.27.0.jar" sourcepath="superx/WEB-INF/lib/src/commons-compress-1.27.0-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-csv-1.8.jar" sourcepath="superx/WEB-INF/lib/src/commons-csv-1.8-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-dbcp-1.4.jar" sourcepath="superx/WEB-INF/lib/src/commons-dbcp-1.4-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-digester-1.7.jar" sourcepath="superx/WEB-INF/lib/src/commons-digester-1.7-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-cli-1.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-codec-1.15.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-collections-3.2.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-collections4-4.1.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-compress-1.27.0.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-csv-1.8.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-dbcp-1.4.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-digester-1.7.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-el-1.0.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-exec-1.1.jar" sourcepath="superx/WEB-INF/lib/src/commons-exec-1.1-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-fileupload-migrated-1.6.0.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-httpclient-3.1.jar" sourcepath="superx/WEB-INF/lib/src/commons-httpclient-3.1-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-io-2.16.1.jar" sourcepath="superx/WEB-INF/lib/src/commons-io-2.16.1-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-exec-1.1.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-fileupload-1.5.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-httpclient-3.1.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-io-2.16.1.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-javaflow-20060411.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-lang-2.4.jar" sourcepath="superx/WEB-INF/lib/src/commons-lang-2.4-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-lang3-3.4.jar" sourcepath="superx/WEB-INF/lib/src/commons-lang3-3.4-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/superx/WEB-INF/lib/commons-lang3-3.4.jar/../javadoc/commons-lang3-3.4-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-logging-1.1.1.jar" sourcepath="superx/WEB-INF/lib/src/commons-logging-1.1.1-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-math-1.2.jar" sourcepath="superx/WEB-INF/lib/src/commons-math-1.2-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-math3-3.6.1.jar" sourcepath="superx/WEB-INF/lib/src/commons-math3-3.6.1-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-pool-1.4.jar" sourcepath="superx/WEB-INF/lib/src/commons-pool-1.4-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-lang-2.4.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-lang3-3.4.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-logging-1.1.1.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-math-1.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-math3-3.6.1.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-pool-1.4.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-validator-1.0.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-vfs-1.0.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-vfs2-2.10.0.jar" sourcepath="superx/WEB-INF/lib/src/commons-vfs2-2.10.0-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/concurrent-1.3.4.jar" sourcepath="superx/WEB-INF/lib/src/concurrent-1.3.4-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/commons-vfs2-2.1-20150824.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/concurrent-1.3.4.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/connect.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/curvesapi-1.06.jar" sourcepath="superx/WEB-INF/lib/src/curvesapi-1.06-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/dbforms2.5.jar" sourcepath="superx/WEB-INF/lib/src/dbforms2.5-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/curvesapi-1.06.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/dbforms2.5.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/dom4j-2.1.4.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/dsn.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/duckdb_jdbc-1.2.1.jar" sourcepath="superx/WEB-INF/lib/src/duckdb_jdbc-1.2.1-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/duckdb_jdbc-1.2.1.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/eigenbase-properties-1.1.0.10924.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/eigenbase-resgen-1.3.0.11873.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/eigenbase-xom-1.3.0.11999.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/enunciate-core-annotations-1.28.jar" sourcepath="superx/WEB-INF/lib/src/enunciate-core-annotations-1.28-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/enunciate-core-rt-1.28.jar" sourcepath="superx/WEB-INF/lib/src/enunciate-core-rt-1.28-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/enunciate-core-annotations-1.28.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/enunciate-core-rt-1.28.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/enunciate-jaxws-ri-rt-1.28.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/enunciate-jersey-rt-1.28.jar" sourcepath="superx/WEB-INF/lib/src/enunciate-jersey-rt-1.28-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/enunciate-jersey-rt-1.28.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/enunciate-rt-1.28.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/enunciate-spring-jaxws-rt-1.28.jar" sourcepath="superx/WEB-INF/lib/src/enunciate-spring-jaxws-rt-1.28-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/enunciate-spring3-app-rt-1.28.jar" sourcepath="superx/WEB-INF/lib/src/enunciate-spring3-app-rt-1.28-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/failureaccess-1.0.1.jar" sourcepath="superx/WEB-INF/lib/src/failureaccess-1.0.1-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/fop-2.2.jar" sourcepath="superx/WEB-INF/lib/src/fop-2.2-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/freemarker-2.3.33.jar" sourcepath="superx/WEB-INF/lib/src/freemarker-2.3.33-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/groovy-all-2.4.21.jar" sourcepath="superx/WEB-INF/lib/src/groovy-all-2.4.21-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/superx/WEB-INF/lib/groovy-all-2.4.21.jar/../javadoc/groovy-all-2.4.21-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="superx/WEB-INF/lib/guava-33.2.1-jre.jar" sourcepath="superx/WEB-INF/lib/src/guava-33.2.1-jre-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/guice-3.0.jar" sourcepath="superx/WEB-INF/lib/src/guice-3.0-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/h2-2.3.232.jar" sourcepath="superx/WEB-INF/lib/src/h2-2.3.232-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/enunciate-spring3-app-rt-1.28.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/enunciate-spring-jaxws-rt-1.28.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/failureaccess-1.0.1.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/fontbox-2.0.0-SNAPSHOT.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/fop-2.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/freemarker-2.3.33.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/groovy-all-2.4.21.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/guava-33.2.1-jre.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/guice-3.0.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/h2-2.3.232.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/HikariCP-4.0.3.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/his-jackson-annotations-2.17.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/his-jackson-core-2.17.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/his-jackson-databind-2.12.0.jar"/>
@ -96,270 +78,171 @@ @@ -96,270 +78,171 @@
<classpathentry kind="lib" path="superx/WEB-INF/lib/his-jackson-jaxrs-base-2.12.0.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/his-jackson-jaxrs-json-provider-2.12.0.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/his-jackson-module-jaxb-annotations-2.12.0.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/htmlcleaner-2.29.jar" sourcepath="superx/WEB-INF/lib/src/htmlcleaner-2.29-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/httpclient-4.2.5.jar" sourcepath="superx/WEB-INF/lib/src/httpclient-4.2.5-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/httpcore-4.3-alpha1.jar" sourcepath="superx/WEB-INF/lib/src/httpcore-4.3-alpha1-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/httpmime-4.3.2.jar" sourcepath="superx/WEB-INF/lib/src/httpmime-4.3.2-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/htmlcleaner-2.29.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/httpclient-4.2.5.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/httpcore-4.3-alpha1.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/httpmime-4.3.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/httpunit.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/ifxjdbc-4.50.12.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/inspector.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jackrabbit-core-2.22.3.jar" sourcepath="superx/WEB-INF/lib/src/jackrabbit-core-2.22.3-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jackrabbit-data-2.22.3.jar" sourcepath="superx/WEB-INF/lib/src/jackrabbit-data-2.22.3-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jackrabbit-jcr-commons-2.22.3.jar" sourcepath="superx/WEB-INF/lib/src/jackrabbit-jcr-commons-2.22.3-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jackrabbit-spi-2.22.3.jar" sourcepath="superx/WEB-INF/lib/src/jackrabbit-spi-2.22.3-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jackrabbit-spi-commons-2.22.3.jar" sourcepath="superx/WEB-INF/lib/src/jackrabbit-spi-commons-2.22.3-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jackson-annotations-2.18.8.jar" sourcepath="superx/WEB-INF/lib/src/jackson-annotations-2.18.8-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/superx/WEB-INF/lib/jackson-annotations-2.18.8.jar/../javadoc/jackson-annotations-2.18.8-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jackson-core-2.18.8.jar" sourcepath="superx/WEB-INF/lib/src/jackson-core-2.18.8-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/superx/WEB-INF/lib/jackson-core-2.18.8.jar/../javadoc/jackson-core-2.18.8-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jackson-databind-2.18.8.jar" sourcepath="superx/WEB-INF/lib/src/jackson-databind-2.18.8-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/superx/WEB-INF/lib/jackson-databind-2.18.8.jar/../javadoc/jackson-databind-2.18.8-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jackson-dataformat-yaml-2.17.2.jar" sourcepath="superx/WEB-INF/lib/src/jackson-dataformat-yaml-2.17.2-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jackson-datatype-jsr310-2.18.8.jar" sourcepath="superx/WEB-INF/lib/src/jackson-datatype-jsr310-2.18.8-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/superx/WEB-INF/lib/jackson-datatype-jsr310-2.18.8.jar/../javadoc/jackson-datatype-jsr310-2.18.8-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jackson-jaxrs-base-2.18.8.jar" sourcepath="superx/WEB-INF/lib/src/jackson-jaxrs-base-2.18.8-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/superx/WEB-INF/lib/jackson-jaxrs-base-2.18.8.jar/../javadoc/jackson-jaxrs-base-2.18.8-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jackson-jaxrs-json-provider-2.18.8.jar" sourcepath="superx/WEB-INF/lib/src/jackson-jaxrs-json-provider-2.18.8-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/superx/WEB-INF/lib/jackson-jaxrs-json-provider-2.18.8.jar/../javadoc/jackson-jaxrs-json-provider-2.18.8-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jackson-module-jaxb-annotations-2.18.8.jar" sourcepath="superx/WEB-INF/lib/src/jackson-module-jaxb-annotations-2.18.8-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/superx/WEB-INF/lib/jackson-module-jaxb-annotations-2.18.8.jar/../javadoc/jackson-module-jaxb-annotations-2.18.8-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jakarta-regexp-1.5.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jackrabbit-core-2.22.0.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jackrabbit-data-2.22.0.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jackrabbit-jcr-commons-2.22.0.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jackrabbit-spi-2.22.0.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jackrabbit-spi-commons-2.22.0.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jackson-annotations-2.17.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jackson-core-2.17.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jackson-databind-2.17.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jackson-dataformat-yaml-2.17.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jackson-datatype-jsr310-2.17.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jackson-jaxrs-base-2.17.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jackson-jaxrs-json-provider-2.17.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jackson-module-jaxb-annotations-2.17.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jakarta.activation-api-2.1.3.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jakarta.mail-api-2.1.3.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jakarta.persistence-api-2.2.jar" sourcepath="superx/WEB-INF/lib/src/jakarta.persistence-api-2.2-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/superx/WEB-INF/lib/jakarta.persistence-api-2.2.jar/../javadoc/jakarta.persistence-api-2.2-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="superx/WEB-INF/lib_ext/jakarta.servlet-api-6.0.0.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jakarta.transaction-api-2.0.1.jar" sourcepath="superx/WEB-INF/lib/src/jakarta.transaction-api-2.0.1-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/janino-2.5.16.jar" sourcepath="superx/WEB-INF/lib/src/janino-2.5.16-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jasperreports-6.21.3.jar" sourcepath="superx/WEB-INF/lib/src/jasperreports-6.21.3-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/javacc-5.0.jar" sourcepath="superx/WEB-INF/lib/src/javacc-5.0-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jakarta.persistence-api-2.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jakarta-regexp-1.5.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/janino-2.5.16.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jasperreports-6.21.3.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jasperreports-fonts-6.21.3.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jasperreports-functions-6.21.3.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/javacc-5.0.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/javacup-10k.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/javassist-3.20.0-GA.jar" sourcepath="superx/WEB-INF/lib/src/javassist-3.20.0-GA-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/javax.batch-api-1.0.1.jar" sourcepath="superx/WEB-INF/lib/src/javax.batch-api-1.0.1-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/superx/WEB-INF/lib/javax.batch-api-1.0.1.jar/../javadoc/javax.batch-api-1.0.1-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="superx/WEB-INF/lib/javassist-3.20.0-GA.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/javax.batch-api-1.0.1.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/javax.mail.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/javax.xml.soap-api-1.4.0.jar" sourcepath="superx/WEB-INF/lib/src/javax.xml.soap-api-1.4.0-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/superx/WEB-INF/lib/javax.xml.soap-api-1.4.0.jar/../javadoc/javax.xml.soap-api-1.4.0-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jaxb-api-2.2.2.jar" sourcepath="superx/WEB-INF/lib/src/jaxb-api-2.2.2-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jaxb-impl-2.2.3-1.jar" sourcepath="superx/WEB-INF/lib/src/jaxb-impl-2.2.3-1-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jaxen-1.2.0.jar" sourcepath="superx/WEB-INF/lib/src/jaxen-1.2.0-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jaxws-api-2.1.jar" sourcepath="superx/WEB-INF/lib/src/jaxws-api-2.1-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jaxws-rt-2.1.7.jar" sourcepath="superx/WEB-INF/lib/src/jaxws-rt-2.1.7-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/javax.xml.soap-api-1.4.0.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jaxb-api-2.2.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jaxb-impl-2.2.3-1.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jaxen-1.2.0.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jaxws-api-2.1.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jaxws-rt-2.1.7.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jaxws-spring-1.8.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jcommon-1.0.23.jar" sourcepath="superx/WEB-INF/lib/src/jcommon-1.0.23-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jcr-2.0.jar" sourcepath="superx/WEB-INF/lib/src/jcr-2.0-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jdom2-2.0.6.1.jar" sourcepath="superx/WEB-INF/lib/src/jdom2-2.0.6.1-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jersey-bundle-1.19.4.jar" sourcepath="superx/WEB-INF/lib/src/jersey-bundle-1.19.4-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/superx/WEB-INF/lib/jersey-bundle-1.19.4.jar/../javadoc/jersey-bundle-1.19.4-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jersey-container-servlet-3.0.0.jar" sourcepath="superx/WEB-INF/lib/src/jersey-container-servlet-3.0.0-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jettison-1.5.4.jar" sourcepath="superx/WEB-INF/lib/src/jettison-1.5.4-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jcommon-1.0.23.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jcr-2.0.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jdom2-2.0.6.1.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jersey-bundle-1.19.4.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jersey-common-3.0.0.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jersey-container-servlet-3.0.0.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jersey-core-1.19.4.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jersey-json-1.19.4.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jersey-media-jaxb-3.1.10.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jersey-media-multipart-3.1.10.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jersey-multipart-1.19.4.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jersey-server-3.0.0.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jersey-servlet-1.19.4.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jersey-spring-1.19.4.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jettison-1.5.4.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jfor-0.7.2rc1.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jfreechart-1.0.19.jar" sourcepath="superx/WEB-INF/lib/src/jfreechart-1.0.19-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jfreechart-1.0.19.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jh.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/joda-time-2.4.jar" sourcepath="superx/WEB-INF/lib/src/joda-time-2.4-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jlfgr-1.0.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jline-2.14.6.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/joda-time-2.4.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/js-1.7R3.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jsch-0.1.54.jar" sourcepath="superx/WEB-INF/lib/src/jsch-0.1.54-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/json-20240303.jar" sourcepath="superx/WEB-INF/lib/src/json-20240303-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/superx/WEB-INF/lib/json-20240303.jar/../javadoc/json-20240303-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jsqlparser-5.3.jar" sourcepath="superx/WEB-INF/lib/src/jsqlparser-5.3-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jsr311-api-1.1.1.jar" sourcepath="superx/WEB-INF/lib/src/jsr311-api-1.1.1-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/junit-4.13.1.jar" sourcepath="superx/WEB-INF/lib/src/junit-4.13.1-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/superx/WEB-INF/lib/junit-4.13.1.jar/../javadoc/junit-4.13.1-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="superx/WEB-INF/lib/kettle-core-8.3.0.0-SNAPSHOT.jar" sourcepath="superx/WEB-INF/lib/src/kettle-core-8.3.0.0-SNAPSHOT-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/kettle-plugins/kettle-dummy-plugin/kettle-dummy-plugin-core-8.3.0.0-SNAPSHOT.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/kettle-engine-8.3.0.0-SNAPSHOT.jar" sourcepath="superx/WEB-INF/lib/src/kettle-engine-8.3.0.0-SNAPSHOT-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/kettle-plugins/kettle-version-checker/kettle-version-checker-core-8.3.0.0-SNAPSHOT.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/libbase-8.3.0.0-371.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/JSAP-2.1.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jsch-0.1.54.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/json-20240303.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jsqlparser-5.3.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jsr311-api-1.1.1.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/jug-lgpl-2.0.0.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/junit-4.13.1.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/kettle-core-8.3.0.0-SNAPSHOT.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/kettle-engine-8.3.0.0-SNAPSHOT.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/libbase-6.0.0.0-353.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/liberation-fonts-jasperreports_extension.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/liberation-fonts-ttf.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/libformula-8.3.0.0-371.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/log4jdbc-1.2.jar" sourcepath="superx/WEB-INF/lib/src/log4jdbc-1.2-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/logkit-1.0.1.jar" sourcepath="superx/WEB-INF/lib/src/logkit-1.0.1-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/ltslog-1.2.19.jar" sourcepath="superx/WEB-INF/lib/src/ltslog-1.2.19-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/lucene-core-3.6.0.jar" sourcepath="superx/WEB-INF/lib/src/lucene-core-3.6.0-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/libformula-6.0.0.0-353.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/log4jdbc-1.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/logkit-1.0.1.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/ltslog-1.2.19.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/lucene-core-3.6.0.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/maxq-0.95dev.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/metastore-6.0.0.0-353.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/micrometer-commons-1.12.5.jar" sourcepath="superx/WEB-INF/lib/src/micrometer-commons-1.12.5-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/micrometer-core-1.12.5.jar" sourcepath="superx/WEB-INF/lib/src/micrometer-core-1.12.5-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/micrometer-observation-1.12.5.jar" sourcepath="superx/WEB-INF/lib/src/micrometer-observation-1.12.5-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/mimepull-1.3.jar" sourcepath="superx/WEB-INF/lib/src/mimepull-1.3-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/micrometer-commons-1.12.5.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/micrometer-core-1.12.5.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/micrometer-observation-1.12.5.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/mimepull-1.3.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/miredot-annotations-1.3.1.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/mockito-all-1.10.19.jar" sourcepath="superx/WEB-INF/lib/src/mockito-all-1.10.19-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/mondrian-4.7.0.0-12.jar" sourcepath="superx/WEB-INF/lib/src/mondrian-4.7.0.0-12-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/oak-jackrabbit-api-1.42.0.jar" sourcepath="superx/WEB-INF/lib/src/oak-jackrabbit-api-1.42.0-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/mockito-all-1.10.19.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/mondrian-4.7.0.0-12.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/oak-jackrabbit-api-1.42.0.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/olap4j-TRUNK-SNAPSHOT.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/olap4j-xmlaserver-1.2.0.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/olap4j-xmla-TRUNK-SNAPSHOT.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/olap4j-xmlaserver-1.2.0.jar" sourcepath="superx/WEB-INF/lib/src/olap4j-xmlaserver-1.2.0-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/openpdf-2.0.3.jar" sourcepath="superx/WEB-INF/lib/src/openpdf-2.0.3-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/pdfbox-2.0.32.jar" sourcepath="superx/WEB-INF/lib/src/pdfbox-2.0.32-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/kettle-plugins/pdi-core-plugins/pdi-core-plugins-impl-8.3.0.0-SNAPSHOT.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/kettle-plugins/platform-utils-plugin/pdi-platform-utils-plugin-core-8.3.0.0-SNAPSHOT.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/kettle-plugins/pdi-xml-plugin/pdi-xml-plugin-core-8.3.0.0-SNAPSHOT.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/opencsv-2.0.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/openpdf-2.0.3.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/pdfbox-2.0.32.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/pl_generator.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/poi-4.1.2.jar" sourcepath="superx/WEB-INF/lib/src/poi-4.1.2-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/poi-examples-4.1.2.jar" sourcepath="superx/WEB-INF/lib/src/poi-examples-4.1.2-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/poi-excelant-4.1.2.jar" sourcepath="superx/WEB-INF/lib/src/poi-excelant-4.1.2-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/poi-ooxml-4.1.2.jar" sourcepath="superx/WEB-INF/lib/src/poi-ooxml-4.1.2-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/poi-4.1.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/poi-examples-4.1.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/poi-excelant-4.1.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/poi-ooxml-4.1.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/poi-ooxml-schemas-4.1.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/poi-scratchpad-4.1.2.jar" sourcepath="superx/WEB-INF/lib/src/poi-scratchpad-4.1.2-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/postgresql-42.7.2.jar" sourcepath="superx/WEB-INF/lib/src/postgresql-42.7.2-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/quartz-2.5.0.jar" sourcepath="superx/WEB-INF/lib/src/quartz-2.5.0-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/resolver-20050927.jar" sourcepath="superx/WEB-INF/lib/src/resolver-20050927-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/saiku-olap-util-3.90.jar" sourcepath="superx/WEB-INF/lib/src/saiku-olap-util-3.90-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/poi-scratchpad-4.1.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/postgresql-42.7.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/quartz-2.5.0.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/quartz-jobs-2.5.0.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/resolver-20050927.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/saiku-olap-util-3.90.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/saiku-query-0.4-SNAPSHOT-HIS.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/saiku-service-3.90.jar" sourcepath="superx/WEB-INF/lib/src/saiku-service-3.90-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/saiku-web-3.90.jar" sourcepath="superx/WEB-INF/lib/src/saiku-web-3.90-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/saxon-he-10.5.jar" sourcepath="superx/WEB-INF/lib/src/saxon-he-10.5-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/saiku-service-3.90.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/saiku-web-3.90.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/saxon-he-10.5.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/saxon-he-test-10.5.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/saxon-xqj-10.5.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/scannotation-1.0.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/sdf_generator.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/serializer-2.7.3.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/sis_util.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/slf4j-api-1.6.4.jar" sourcepath="superx/WEB-INF/lib/src/slf4j-api-1.6.4-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/slf4j-log4j12-1.6.4.jar" sourcepath="superx/WEB-INF/lib/src/slf4j-log4j12-1.6.4-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/snakeyaml-2.2.jar" sourcepath="superx/WEB-INF/lib/src/snakeyaml-2.2-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-aop-6.2.19.jar" sourcepath="superx/WEB-INF/lib/src/spring-aop-6.2.19-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/superx/WEB-INF/lib/spring-aop-6.2.19.jar/../javadoc/spring-aop-6.2.19-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-batch-core-5.2.2.jar" sourcepath="superx/WEB-INF/lib/src/spring-batch-core-5.2.2-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-batch-infrastructure-5.2.2.jar" sourcepath="superx/WEB-INF/lib/src/spring-batch-infrastructure-5.2.2-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-batch-integration-5.2.2.jar" sourcepath="superx/WEB-INF/lib/src/spring-batch-integration-5.2.2-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-batch-test-5.2.2.jar" sourcepath="superx/WEB-INF/lib/src/spring-batch-test-5.2.2-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-beans-6.2.19.jar" sourcepath="superx/WEB-INF/lib/src/spring-beans-6.2.19-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/superx/WEB-INF/lib/spring-beans-6.2.19.jar/../javadoc/spring-beans-6.2.19-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-context-6.2.19.jar" sourcepath="superx/WEB-INF/lib/src/spring-context-6.2.19-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/superx/WEB-INF/lib/spring-context-6.2.19.jar/../javadoc/spring-context-6.2.19-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-context-support-6.2.19.jar" sourcepath="superx/WEB-INF/lib/src/spring-context-support-6.2.19-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/superx/WEB-INF/lib/spring-context-support-6.2.19.jar/../javadoc/spring-context-support-6.2.19-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-core-6.2.19.jar" sourcepath="superx/WEB-INF/lib/src/spring-core-6.2.19-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/superx/WEB-INF/lib/spring-core-6.2.19.jar/../javadoc/spring-core-6.2.19-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-data-commons-3.2.8.jar" sourcepath="superx/WEB-INF/lib/src/spring-data-commons-3.2.8-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-data-jdbc-3.2.8.jar" sourcepath="superx/WEB-INF/lib/src/spring-data-jdbc-3.2.8-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-data-relational-3.2.8.jar" sourcepath="superx/WEB-INF/lib/src/spring-data-relational-3.2.8-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-expression-6.2.19.jar" sourcepath="superx/WEB-INF/lib/src/spring-expression-6.2.19-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/superx/WEB-INF/lib/spring-expression-6.2.19.jar/../javadoc/spring-expression-6.2.19-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-jdbc-6.2.19.jar" sourcepath="superx/WEB-INF/lib/src/spring-jdbc-6.2.19-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/superx/WEB-INF/lib/spring-jdbc-6.2.19.jar/../javadoc/spring-jdbc-6.2.19-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-orm-6.2.19.jar" sourcepath="superx/WEB-INF/lib/src/spring-orm-6.2.19-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/superx/WEB-INF/lib/spring-orm-6.2.19.jar/../javadoc/spring-orm-6.2.19-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-security-acl-6.4.13.jar" sourcepath="superx/WEB-INF/lib/src/spring-security-acl-6.4.13-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/superx/WEB-INF/lib/spring-security-acl-6.4.13.jar/../javadoc/spring-security-acl-6.4.13-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-security-cas-6.4.13.jar" sourcepath="superx/WEB-INF/lib/src/spring-security-cas-6.4.13-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/superx/WEB-INF/lib/spring-security-cas-6.4.13.jar/../javadoc/spring-security-cas-6.4.13-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-security-config-6.4.13.jar" sourcepath="superx/WEB-INF/lib/src/spring-security-config-6.4.13-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/superx/WEB-INF/lib/spring-security-config-6.4.13.jar/../javadoc/spring-security-config-6.4.13-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-security-core-6.4.13.jar" sourcepath="superx/WEB-INF/lib/src/spring-security-core-6.4.13-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/superx/WEB-INF/lib/spring-security-core-6.4.13.jar/../javadoc/spring-security-core-6.4.13-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-security-crypto-6.4.13.jar" sourcepath="superx/WEB-INF/lib/src/spring-security-crypto-6.4.13-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-security-taglibs-6.4.13.jar" sourcepath="superx/WEB-INF/lib/src/spring-security-taglibs-6.4.13-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/superx/WEB-INF/lib/spring-security-taglibs-6.4.13.jar/../javadoc/spring-security-taglibs-6.4.13-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-security-web-6.4.13.jar" sourcepath="superx/WEB-INF/lib/src/spring-security-web-6.4.13-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/superx/WEB-INF/lib/spring-security-web-6.4.13.jar/../javadoc/spring-security-web-6.4.13-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-test-6.2.19.jar" sourcepath="superx/WEB-INF/lib/src/spring-test-6.2.19-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/superx/WEB-INF/lib/spring-test-6.2.19.jar/../javadoc/spring-test-6.2.19-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-tx-6.2.19.jar" sourcepath="superx/WEB-INF/lib/src/spring-tx-6.2.19-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/superx/WEB-INF/lib/spring-tx-6.2.19.jar/../javadoc/spring-tx-6.2.19-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-web-6.2.19.jar" sourcepath="superx/WEB-INF/lib/src/spring-web-6.2.19-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/superx/WEB-INF/lib/spring-web-6.2.19.jar/../javadoc/spring-web-6.2.19-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-webmvc-6.2.19.jar" sourcepath="superx/WEB-INF/lib/src/spring-webmvc-6.2.19-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/superx/WEB-INF/lib/spring-webmvc-6.2.19.jar/../javadoc/spring-webmvc-6.2.19-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="superx/WEB-INF/lib_ext/tomcat-api-10.1.55.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib_ext/tomcat-catalina-10.1.55.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib_ext/tomcat-el-api-10.1.55.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib_ext/tomcat-jasper-10.1.55.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib_ext/tomcat-jsp-api-10.1.55.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/xbean-spring-2.7.jar" sourcepath="superx/WEB-INF/lib/src/xbean-spring-2.7-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/xercesImpl-2.12.2.jar" sourcepath="superx/WEB-INF/lib/src/xercesImpl-2.12.2-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/slf4j-api-1.6.4.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/slf4j-log4j12-1.6.4.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/snakeyaml-2.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/SparseBitSet-1.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-aop-6.2.8.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-batch-core-5.2.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-batch-infrastructure-5.2.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-batch-integration-5.2.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-batch-test-5.2.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-beans-6.2.8.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-context-6.2.8.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-context-support-6.2.8.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-core-6.2.8.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-data-commons-3.2.8.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-data-jdbc-3.2.8.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-data-relational-3.2.8.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-expression-6.2.8.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-jdbc-6.2.8.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-orm-6.2.8.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-security-acl-6.2.8.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-security-cas-6.2.8.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-security-config-6.2.8.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-security-core-6.2.8.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-security-crypto-6.3.10.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-security-taglibs-6.2.8.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-security-web-6.2.8.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-test-6.2.8.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-tx-6.2.8.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-web-6.2.8.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/spring-webmvc-6.2.8.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/ST4-4.0.4.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/streambuffer-0.9.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/superx6.0.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/tika-core-2.9.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/xalan-2.7.3.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/xbean-spring-2.7.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/xercesImpl-2.12.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/xml-apis-ext-1.4.01.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/xmlbeans-3.1.0.jar" sourcepath="superx/WEB-INF/lib/src/xmlbeans-3.1.0-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/xmlgraphics-commons-2.9.jar" sourcepath="superx/WEB-INF/lib/src/xmlgraphics-commons-2.9-sources.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/xmlbeans-3.1.0.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/xmlgraphics-commons-2.9.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib/xml-resolver-1.2.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib_ext/jakarta.servlet-api-6.0.0.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib_ext/ant-contrib-1.0b3.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib_ext/tomcat-api-10.1.44.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib_ext/tomcat-catalina-10.1.44.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib_ext/tomcat-el-api-10.1.44.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib_ext/tomcat-jasper-10.1.44.jar"/>
<classpathentry kind="lib" path="superx/WEB-INF/lib_ext/tomcat-jsp-api-10.1.44.jar"/>
<classpathentry kind="lib" path="/usr/lib/jvm/java-17-openjdk-amd64/lib/jrt-fs.jar"/>
<classpathentry kind="output" path="superx/WEB-INF/classes"/>
</classpath>

16
.externalToolBuilders/Ant Superx Version.launch

@ -1,16 +0,0 @@ @@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_AFTER_CLEAN_TARGETS" value="get_git_info,"/>
<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_MANUAL_TARGETS" value="get_git_info,"/>
<booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/>
<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
<booleanAttribute key="org.eclipse.debug.core.ATTR_REFRESH_RECURSIVE" value="false"/>
<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;resources/&gt;}"/>
<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="superx"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="/home/superx/git/kern/superx-build/build.xml"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,"/>
<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
</launchConfiguration>

294
.gitignore vendored

@ -1,270 +1,46 @@ @@ -1,270 +1,46 @@
# agent and copilot context - local/temporary files
.github/
# ignore all log files
*.log
*.err
*.log.*
# Gradle build output and wrapper cache
build/
.gradle/
# ignore /dist/*
*dist/
# ignore swap files
superx/WEB-INF/reports/swap_*
# ignore eclipse settings
.settings/org.eclipse.ltk.core.refactoring.prefs
# vim .swp files
*.swp
# ignore gradle bin
scripts/gradle/bin/
scripts/gradle/.gradle/
# cobertura
superx-build/cobertura*
# classes
superx/WEB-INF/classes/
# tag files
**/tags
# .orig files
**/*.orig
# datum.alt files
**/superx.datum.alt
# script artefacts
scripts/**/build/
scripts/**/log/
# build artefacts
superx-build/declared-jars.txt
superx-build/cobertura_build_tests/
superx-build/cobertura_build_classes/
superx-build/coveragereport/
superx-build/results/
superx-build/tmp_build/
# Eclipse launch configurations are causing conflicts on 'pull' if you've got local ones; so they should not be under SCM
scripts/eclipseExternalTools/
# extracted h1-modules. These should only be links to folders in cs.bia.his_components
src-modules/module/prom/
src-modules/module/res/
src-modules/module/astat/
src-modules/module/tt/
src-modules/module/star/
src-modules/module/kern_s/
src-modules/module/res_s/
# also ignore symlinks on linux
src-modules/module/prom
src-modules/module/res
src-modules/module/astat
src-modules/module/tt
src-modules/module/star
src-modules/module/kern_s
src-modules/module/res_s
src-modules/module/biad
# artifact folders for reduced/cleaned modules
superx/WEB-INF/conf/edustore/db/module/prom/
superx/WEB-INF/conf/edustore/db/module/res/
superx/WEB-INF/conf/edustore/db/module/zul/
superx/WEB-INF/conf/edustore/db/module/sos/
superx/WEB-INF/conf/edustore/db/module/sva/
superx/WEB-INF/conf/edustore/db/module/ivs/
superx/WEB-INF/conf/edustore/db/module/astat/
superx/WEB-INF/conf/edustore/db/module/tt/
superx/WEB-INF/conf/edustore/db/module/lm/
superx/WEB-INF/conf/edustore/db/module/etl/
superx/WEB-INF/conf/edustore/db/module/star/
superx/WEB-INF/conf/edustore/db/module/cob/
superx/WEB-INF/conf/edustore/db/module/kern_s/
superx/WEB-INF/conf/edustore/db/module/res_s/
superx/WEB-INF/conf/edustore/db/module/bau/
superx/WEB-INF/conf/edustore/db/module/fin/
superx/WEB-INF/conf/edustore/db/module/biad/
superx/WEB-INF/conf/edustore/db/module/gang/
superx/WEB-INF/conf/edustore/db/module/erfolg/
superx/WEB-INF/conf/edustore/db/module/man/
superx/WEB-INF/conf/edustore/db/module/kenn/
superx/WEB-INF/conf/edustore/db/module/kennx/
# module generation artifacts for module fin
src/edustore/edustore_fin.xml
superx/WEB-INF/fin_dbforms-config_ids.xml
superx/WEB-INF/fin_dbforms-config_pg.xml
# module generation artifacts for module bau
src/edustore/edustore_bau.xml
superx/WEB-INF/bau_dbforms-config_ids.xml
superx/WEB-INF/bau_dbforms-config_pg.xml
# module generation artifacts for module prom
src/edustore/edustore_prom.xml
superx/WEB-INF/prom_dbforms-config_ids.xml
superx/WEB-INF/prom_dbforms-config_pg.xml
superx/edit/prom/
# module generation artifacts for module res
src/edustore/edustore_res.xml
superx/WEB-INF/res_dbforms-config_ids.xml
superx/WEB-INF/res_dbforms-config_pg.xml
# module generation artifacts for module gang
src/edustore/edustore_gang.xml
superx/WEB-INF/gang_dbforms-config_ids.xml
superx/WEB-INF/gang_dbforms-config_pg.xml
superx/edit/gang/*edit.jsp
superx/edit/gang/*list.jsp
# ignore all CVS + sub dirs
*CVS/
# ignore java classes
*classes/
# module generation artifacts for module kenn
src/edustore/edustore_kenn.xml
superx/WEB-INF/kenn_dbforms-config_ids.xml
superx/WEB-INF/kenn_dbforms-config_pg.xml
superx/edit/kenn/*edit.jsp
superx/edit/kenn/*list.jsp
# ignore files in directory rohdaten
superx/WEB-INF/conf/edustore/db/module/*/rohdaten/unl/*.unl
superx/WEB-INF/conf/edustore/db/install/rohdaten/unl/*.unl
# module generation artifacts for module kennx
src/edustore/edustore_kennx.xml
superx/WEB-INF/kennx_dbforms-config_ids.xml
superx/WEB-INF/kennx_dbforms-config_pg.xml
superx/edit/kennx/*edit.jsp
superx/edit/kennx/*list.jsp
# ignore temporary files
*.tmp
*.tmp.sql
temp.xml
tmp.fo
# ignore auto generated files
db.properties
dbforms-config.xml
superx/WEB-INF/dbforms-config.old
superx.datum
# module generation artifacts for module man
src/edustore/edustore_man.xml
superx/WEB-INF/man_dbforms-config_ids.xml
superx/WEB-INF/man_dbforms-config_pg.xml
superx/edit/man/catdesc.jsp
superx/edit/man/cat.jsp
superx/edit/man/grouping.jsp
superx/edit/man/man_reports.jsp
superx/edit/man/organigramm_dialog.jsp
superx/edit/man/rpt.jsp
superx/edit/man/*edit.jsp
superx/edit/man/*list.jsp
# module generation artifacts for module erfolg
src/edustore/edustore_erfolg.xml
superx/WEB-INF/erfolg_dbforms-config_ids.xml
superx/WEB-INF/erfolg_dbforms-config_pg.xml
# module generation artifacts for module sos
src/edustore/edustore_sos.xml
superx/WEB-INF/sos_dbforms-config_ids.xml
superx/WEB-INF/sos_dbforms-config_pg.xml
superx/edit/sos/hoererstatus_edit.jsp
superx/edit/sos/koepfe_oder_faelle_edit.jsp
superx/edit/sos/lehr_stg_ab_edit.jsp
superx/edit/sos/semester_edit.jsp
superx/edit/sos/semester_list.jsp
superx/edit/sos/sos_status_edit.jsp
superx/edit/sos/sos_stichtag_edit.jsp
superx/edit/sos/sos_stichtag_list.jsp
superx/edit/sos/statistik_edit.jsp
superx/edit/sos/studierendenuebertragung_edit.jsp
# module generation artifacts for module sva
src/edustore/edustore_sva.xml
superx/WEB-INF/sva_dbforms-config_ids.xml
superx/WEB-INF/sva_dbforms-config_pg.xml
superx/edit/sva/konstanten_sva_edit.jsp
superx/edit/sva/sichten_sva_dienstart_edit.jsp
superx/edit/sva/sichten_sva_klr_geldgeber_kurz_edit.jsp
superx/edit/sva/sva_stichtag_list.jsp
superx/edit/sva/sx_repository_sva_edit.jsp
superx/edit/sva/user_sva.jsp
superx/edit/sva/user_sva_manuell.jsp
# module generation artifacts for module ivs
src/edustore/edustore_ivs.xml
superx/edit/ivs/user_inventar_edit.jsp
superx/WEB-INF/ivs_dbforms-config_ids.xml
superx/WEB-INF/ivs_dbforms-config_pg.xml
# module generation artifacts for module zul
src/edustore/edustore_zul.xml
superx/WEB-INF/zul_dbforms-config_ids.xml
superx/WEB-INF/zul_dbforms-config_pg.xml
# module generation artifacts for module astat
src/edustore/edustore_astat.xml
superx/WEB-INF/astat_dbforms-config_ids.xml
superx/WEB-INF/astat_dbforms-config_pg.xml
# module generation artifacts for module tt
src/edustore/edustore_tt.xml
superx/WEB-INF/tt_dbforms-config_ids.xml
superx/WEB-INF/tt_dbforms-config_pg.xml
superx/edit/tt/
# module generation artifacts for module lm
src/edustore/edustore_lm.xml
superx/WEB-INF/lm_dbforms-config_ids.xml
superx/WEB-INF/lm_dbforms-config_pg.xml
superx/edit/lm/
# module generation artifacts for module etl
src/edustore/edustore_etl.xml
superx/WEB-INF/etl_dbforms-config_ids.xml
superx/WEB-INF/etl_dbforms-config_pg.xml
superx/edit/etl/etl_job_edit.jsp
superx/edit/etl/etl_step_edit.jsp
superx/edit/etl/etl_step_type_list.jsp
# module generation artifacts for module star
src/edustore/edustore_star.xml
superx/WEB-INF/star_dbforms-config_ids.xml
superx/WEB-INF/star_dbforms-config_pg.xml
# module generation artifacts for module cob
src/edustore/edustore_cob.xml
superx/WEB-INF/cob_dbforms-config_ids.xml
superx/WEB-INF/cob_dbforms-config_pg.xml
superx/edit/cob/sx_repository_cob_edit.jsp
# module generation artifacts for module kern_s
src/edustore/edustore_kern_s.xml
superx/WEB-INF/kern_s_dbforms-config_ids.xml
superx/WEB-INF/kern_s_dbforms-config_pg.xml
# module generation artifacts for module res_s
src/edustore/edustore_res_s.xml
superx/WEB-INF/res_s_dbforms-config_ids.xml
superx/WEB-INF/res_s_dbforms-config_pg.xml
# module generation artifacts for module biad
src/edustore/edustore_biad.xml
superx/WEB-INF/biad_dbforms-config_ids.xml
superx/WEB-INF/biad_dbforms-config_pg.xml
# dbt project generation backups
superx/dbt/projects/*_backup/
# Saiku his icons
superx/saiku/css/saiku/src/saiku_his.css
# Dateifunktionalität im kenn und kennx Modul
superx\WEB-INF\downloads
# ignore iReport Designer
*.jasper
# vscode personal settings
.vscode/
.metadata/
# ignore /dist/*
*dist/
# edustore.xml soll nicht mehr ausgeliefert werden siehe #313658
src/edustore/edustore.xml
# ignore swap files
superx/WEB-INF/reports/swap_*
# package folder und config file für statisch generierte JSPs
src/de/superx/jsp/
superx/WEB-INF/jsp_servlet_config.xml
src/edustore/edustore_*.xml
# jaspers werden nicht mehr commitet, sondern im build gebaut
*.jasper
# updateUnmodifiedJars backup
superx/WEB-INF/lib/backup/
# ignore eclipse settings
.settings/org.eclipse.ltk.core.refactoring.prefs
#rpta files:
superx/WEB-INF/reports/simple_table.jrtx
superx/WEB-INF/reports/tabelle_jrxml_a4_quer.xsl.jrxml
superx/xml/jr_templates.xsl
superx/xml/rpta_assistent.xsl

94
.project

@ -1,58 +1,36 @@ @@ -1,58 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>eduStore_superX</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
<triggers>full,incremental,</triggers>
<arguments>
<dictionary>
<key>LaunchConfigHandle</key>
<value>&lt;project&gt;/.externalToolBuilders/Ant Superx Version.launch</value>
</dictionary>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>com.sysdeo.eclipse.tomcat.tomcatnature</nature>
<nature>com.jaspersoft.studio.babel.editor.rbeNature</nature>
</natures>
<filteredResources>
<filter>
<id>1617792163171</id>
<name></name>
<type>10</type>
<matcher>
<id>org.eclipse.ui.ide.multiFilter</id>
<arguments>1.0-name-matches-false-false-dist</arguments>
</matcher>
</filter>
<filter>
<id>1617792163186</id>
<name></name>
<type>6</type>
<matcher>
<id>org.eclipse.ui.ide.multiFilter</id>
<arguments>1.0-name-matches-false-true-.+\.class</arguments>
</matcher>
</filter>
<filter>
<id>1687335947806</id>
<name></name>
<type>30</type>
<matcher>
<id>org.eclipse.core.resources.regexFilterMatcher</id>
<arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
</matcher>
</filter>
</filteredResources>
</projectDescription>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>eduStore_superX</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.babel.editor.rbeBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.groovy.core.groovyNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>com.sysdeo.eclipse.tomcat.tomcatnature</nature>
<nature>com.jaspersoft.studio.babel.editor.rbeNature</nature>
</natures>
<filteredResources>
<filter>
<id>1459344926910</id>
<name></name>
<type>10</type>
<matcher>
<id>org.eclipse.ui.ide.multiFilter</id>
<arguments>1.0-name-matches-false-false-dist</arguments>
</matcher>
</filter>
</filteredResources>
</projectDescription>

412
lizenz.txt

@ -1,186 +1,248 @@ @@ -1,186 +1,248 @@
Mit CampusSource wird die Nutzung universitärer Entwicklungen durch
Dritte zu den Bedingungen der General GNU Public Licence (GPL)
ermöglicht, die eine der bekanntesten Open Source-Lizenzen ist.
CampusSource · AGB und Lizenz
Allgemeine Geschäftsbedingungen für die Nutzung der CampusSource-Software
1. Vorbemerkung
Diese Allgemeinen Geschäftsbedingungen regeln die Rechtsbeziehungen
zwischen dem Lizenzgeber der jew. Software und dem Nutzer (im Folgenden
„Lizenznehmer“ genannt) der CampusSource-Software. Sie sind ebenso wie
die GNU General Public License (siehe dazu Abschnitt 4 „Lizenz“)
Bestandteil des zwischen dem Lizenzgeber und dem Lizenznehmer
geschlossenen Vertrages.
Die GNU General Public License (im Folgenden GPL genannt) finden Sie im
Internet unter www.gnu.org/copyleft/gpl.html <http://www.gnu.org/
copyleft/gpl.html>, eine deutsche Übersetzung unter www.gnu.de/gpl-
ger.html <http://www.gnu.de/gpl-ger.html>.
Allgemeine Geschäftsbedingungen (AGB) und Lizenz
2. Vertragsgegenstand
Gegenstand des Vertragsangebotes des Lizenzgebers ist die auf diesem
Server befindliche Software des CampusSource-Projektes (im Folgenden
„Software“ genannt) und dazugehöriges Begleitmaterial.
Der Lizenzgeber bietet dem Lizenznehmer nach erfolgter Registrierung die
Mit CampusSource wird die Nutzung universitärer Entwicklungen durch Dritte zu
den Bedingungen der General GNU Public Licence (GPL) ermöglicht, die eine der
bekanntesten Opensource-Lizenzen ist.
Die GPL ist eine Lizenz, die dem amerikanischen Recht, nicht jedoch dem
deutschen Recht genügt. So sind einige Passagen der GPL nach dem deutschen Recht
nicht wirksam. CampusSource hat aus diesem Grunde Allgemeine
Geschäftsbedingungen formuliert, die die Interpretation der GPL unter deutschem
Recht vornimmt und ergänzt.
Allgemeine Geschäftsbedingungen für die
Nutzung der Software der Initiative CampusSource
1. Vorbemerkung
Diese Allgemeinen Geschäftsbedingungen regeln die Rechtsbeziehungen zwischen dem
Land Nordrhein-Westfalen, vertreten durch die FernUniversität Hagen, diese
wiederum vertreten durch die Geschäftsstelle der Initiative CampusSource bei der
FernUniversität Hagen, Universitätsstraße 11, D-58097 Hagen (im Folgenden
»Lizenzgeber« genannt) und dem Nutzer (im Folgenden »Lizenznehmer« genannt) der
CampusSource-Software. Sie sind ebenso wie die GNU General Public License (siehe
dazu Abschnitt 4 »Lizenz«) Bestandteil des zwischen dem Lizenzgeber und dem
Lizenznehmer geschlossenen Vertrages.
Die GNU General Public License (im Folgenden GPL genannt) finden Sie im Internet
unter www.gnu.org/copyleft/gpl.html, eine deutsche Übersetzung unter
www.gnu.de/gpl-ger.html.
2. Vertragsgegenstand
Gegenstand des Vertragsangebotes des Lizenzgebers ist die auf diesem Server
befindliche Software des CampusSource-Projektes (im Folgenden »Software«
genannt) und dazugehöriges Begleitmaterial.
Der Lizenzgeber bietet dem Lizenznehmer nach erfolgter Registrierung die
folgenden Leistungen an:
Der Lizenzgeber verschafft dem Lizenznehmer die Möglichkeit, auf
elektronischem Weg Zugang zur Software, deren Dokumentation und zu
Erfahrungsberichten zu erhalten und sich einen Überblick über das
Softwareangebot zu verschaffen.
Der Lizenzgeber gestattet dem Lizenznehmer, die Software physikalisch
downzuloaden.
Der Lizenzgeber überträgt die in Abschnitt 4 »Lizenz« näher bezeichneten
Nutzungsrechte auf den Lizenznehmer.
Lizenzgeber und Lizenznehmer sind sich einig darüber, dass die Inanspruchnahme
der unter 1.) bis 3.) angebotenen Leistungen unentgeltlich, schenkungsweise
erfolgen soll. Dies bedeutet jedoch nicht, dass der Lizenzgeber irgendwelche
durch die Nutzung des Angebots entstandenen Kosten übernimmt.
Sofern der Lizenznehmer die Software bearbeitet und diese Bearbeitung Dritten
zugänglich macht, ist er verpflichtet, dem Lizenzgeber auch eine Kopie der
Bearbeitung kostenlos zukommen zu lassen, oder, sofern die Bearbeitung
öffentlich und kostenlos zugänglich ist, dem Lizenzgeber die Quelle mitzuteilen.
Die in diesen Allgemeinen Geschäftsbedingungen festgelegten Nebenpflichten
stellen keine Gegenleistung im Sinne des Bürgerlichen Rechts dar und sind für
den Lizenznehmer verbindlich. Nicht Gegenstand des Vertrages sind irgendeine
Form von Softwareinstallation, Softwarepflege oder Beratung im Zusammenhang mit
der Software. Insbesondere wird durch die mit der Software beigefügte oder für
die Software bereitgestellte Information oder Dokumentation kein
Beratungsvertrag angeboten. Wenn Sie solche Dienstleistungen wünschen, wenden
Sie sich an die Geschäftsstelle der Initiative CampusSource.
Der Lizenzgeber behält sich vor, das Leistungsangebot jederzeit einzustellen.
Bezüglich bereits empfangener Leistungen bleiben die Verpflichtungen beider
Parteien hiervon unberührt, insbesondere entfallen dadurch nicht die in diesen
Allgemeinen Geschäftsbedingungen festgelegten Nebenpflichten des Lizenznehmers.
Diese Allgemeinen Geschäftsbedingungen gelten auch dann, wenn der Lizenznehmer
das oben genannte Leistungspaket nur teilweise in Anspruch nimmt.
3. Sorgfaltspflichten des Lizenznehmers
Der Lizenznehmer ist verpflichtet, sein Passwort sorgfältig aufzubewahren und
Dritten nicht zugänglich zu machen. Der Lizenznehmer haftet für alle Schäden,
die aus der Verletzung dieser Sorgfaltspflicht entstehen.
4. Lizenz
Die Nutzungsrechte, welche der Lizenznehmer erhält, ergeben sich aus der GNU
General Public License. Diese Nutzungsrechte sind dinglich - im Sinne des
Urheberrechts - mit der Software verknüpft und gelten auch dann, wenn der
Lizenznehmer keine Kenntnis davon nimmt. Die GNU General Public License (im
Folgenden GPL genannt) finden Sie im Internet unter
www.gnu.org/copyleft/gpl.html, eine deutsche Übersetzung unter
www.gnu.de/gpl-ger.html.
Die GPL ist zu dem Zweck entworfen worden, dass Sie die unter diese Lizenz
gestellte Software weitergeben und verändern dürfen. Wenn Sie die Software
verändern und weitergeben, müssen Sie den Quellcode der bearbeiteten Software
wieder unter die GPL stellen und den Quellcode zugänglich machen, so dass auch
andere von Ihrem Werk profitieren, wie auch Sie von der erhaltenen Software
profitiert haben. Auf diese Art und Weise soll ein System von jedermann frei
zugänglicher Software geschaffen werden.
Der Lizenzgeber weist den Lizenznehmer darauf hin, dass die GPL in den USA
entworfen wurde und daher einige Bestimmungen nach deutschem Recht nicht wirksam
sind oder in Deutschland rechtlich anders beurteilt werden als in den USA:
Die Formulierung »You may charge a fee for the physical act of transferring a
copy« in Abschnitt 1 der GPL ist nach deutschem Recht so zu verstehen, dass
nur eine angemessene, marktübliche Gegenleistung für die Anfertigung einer
Kopie verlangt werden darf. Sofern eine das marktübliche überschreitende
Gegenleistung für das Anfertigen von Kopien verlangt werden würde, hätte dies
neben einer möglichen Lizenzverletzung zur Folge, dass die durch die
kostenlose Weitergabe bestehende Haftungsprivilegierung wegfallen könnte und
der Lizenznehmer wie ein Verkäufer oder Unternehmer (Werkvertrag) bei Mängeln
auf Schadensersatz haftet.
Abschnitt 11 und 12 der GPL (Haftungsausschluss) verstoßen gegen das »Gesetz
zur Regelung des Rechts der Allgemeinen Geschäftsbedingungen« (AGBG) und sind
nach deutschem Recht unwirksam. An ihre Stelle treten die entsprechenden
Bestimmungen des Bürgerlichen Rechts §§ 521ff. (Haftung des Schenkers).
Es folgt eine kurze unvollständige Zusammenfassung der GPL. Der Lizenznehmer ist
verpflichtet, die weiterführenden und präziseren Bestimmungen der GPL zu
beachten. Der Lizenznehmer wird darauf hingewiesen, dass die GPL einige
(auflösende) Bedingungen enthält, bei deren Verletzung die dem Lizenznehmer
übertragenen Nutzungsrechte automatisch ohne jeden Widerruf erlöschen und eine
weitere Nutzung des Programms zu einer (strafbaren) Urheberrechtsverletzung
wird.
Die Lizenz erlaubt dem Lizenznehmer das Ausführen der Programme zu jedem
Zweck. Gesetzliche Einschränkungen werden hiervon nicht berührt.
Der Lizenznehmer darf unveränderte Kopien des Quellcodes anfertigen und
weiterverbreiten, unter der Bedingung, dass mit der Kopie ein entsprechender
Urheberrechtsvermerk sowie ein Haftungsausschluß veröffentlicht wird und dass
alle die GPL betreffenden Hinweise unverändert weitergegeben werden. Ein
Entgelt darf nur für die Anfertigung von Kopien oder für das Anbieten einer
Garantie genommen werden. Näheres enthält § 1 GPL.
Der Lizenznehmer darf das Programm verändern und die so entstandene
Bearbeitung unter der Bedingung vervielfältigen und verbreiten, dass er einen
auffälligen Vermerk über die vorgenommenen Modifizierungen anbringt, die
Kopien der Bearbeitung ohne Lizenzgebühren unter den Bedingungen der GPL
verbreitet und dafür sorgt, dass das Programm bei interaktiver Nutzung einen
Urheberrechtsvermerk ausgibt. Näheres regelt § 2 GPL.
Der Lizenznehmer darf das Programm oder eine Bearbeitung als Objectcode oder
in ausführbarer Form unter Berücksichtigung der letzten beiden Abschnitte
unter der Bedingung vervielfältigen und verbreiten, dass er den Quelltext
beifügt oder eine der in § 3 GPL genannten Alternativen erfüllt. Näheres
regelt § 3 GPL.
Sollte dem Lizenznehmer infolge eines Gerichtsurteils oder durch einen
gerichtlichen Vergleich Bedingungen auferlegt werden, die der GPL
widersprechen, so entbindet dies den Lizenznehmer nicht von der Einhaltung der
GPL. Näheres regelt § 7 GPL.
Wenn die Verbreitung oder die Benutzung des Programms in bestimmten Staaten
durch Patent- oder Urheberrecht eingeschränkt ist, kann der Lizenznehmer bei
der Verbreitung des Programms durch einen entsprechenden Vermerk bestimmen,
dass die Verbreitung des Programms in bestimmten Staaten ausgeschlossen ist.
Näheres regelt § 8 GPL.
5. Schutzrechte Dritter
Der Lizenzgeber geht davon aus, dass der Besitz und der vertragsgemäße Gebrauch
der Software keine Schutzrechte Dritter für den Bereich der BRD beeinträchtigt.
Im Zusammenhang mit einer möglichen Beeinträchtigung der Schutzrechte Dritter
werden die folgenden Nebenpflichten vereinbart:
Der Lizenznehmer verpflichtet sich, dass er weder für sich noch im Auftrag
eines Dritten die Software zu dem Zweck verwendet, diese nach
Schutzrechtsverletzungen zu untersuchen oder untersuchen zu lassen.
Der Lizenznehmer verpflichtet sich, den Lizenzgeber unverzüglich zu
benachrichtigen, wenn Dritte Schutzrechtsverletzungen geltend machen.
Hat der Lizenznehmer den Eindruck, dass die Software Patente oder andere
Schutzrechte Dritter verletzt, so ist er verpflichtet, den Lizenzgeber
unverzüglich schriftlich unter Beifügung einer genauen Beschreibung der
Verletzungshandlung zu unterrichten. Es ist dem Lizenznehmer untersagt, andere
natürliche oder juristische Personen ohne schriftliches Einverständnis des
Lizenzgebers zu informieren.
Bei Verletzung einer der obigen Nebenpflichten verpflichtet sich der
Lizenznehmer, dem Lizenzgeber Schadensersatz für alle durch die Verletzung
entstandenen Schäden (einschließlich der Prozeßkosten) zu leisten. Ist die
Verletzung einer solchen Nebenpflicht festgestellt, so genügt es, wenn der
Lizenzgeber plausibel darlegt, dass der Schaden durch die Verletzung entstanden
ist. Den Lizenznehmer trifft die volle Beweislast für das Gegenteil. Der
Lizenznehmer verpflichtet sich, dem Lizenzgeber alle Auskünfte im Zusammenhang
mit der Verletzung einer der obigen Nebenpflichten zu erteilen.
Der Lizenzgeber weist darauf hin, dass zur CampusSource-Software nicht die
Software anderer Hersteller gehört, mit der die CampusSource-Software
zusammenarbeiten kann oder die für den Betrieb der CampusSource-Software
notwendigerweise vorhanden sein muss, wie z. B. WWW-Server,
Funktionsbibliotheken, Werkzeugsysteme und Datenbankmanagementsysteme. Die
Lizenzen für diese Software müssen vom jeweiligen Hersteller separat erworben
werden. Die GPL gilt für diese Software in der Regel nicht.
6. Datenschutz
Der Lizenzgeber verpflichtet sich, bezüglich der bei der Registrierung
angegebenen Daten die einschlägigen landes- und bundesrechtlichen
Datenschutzbestimmungen einzuhalten. Alle Verbindungen zu diesem Server im
Download- und Registrierbereich werden in einem LOG-File aufgezeichnet.
7. Schriftform
Alle Nebenabreden, die zwischen dem Lizenzgeber und dem Lizenznehmer
abgeschlossen werden, bedürfen der Schriftform. Eine Abänderung oder Aufhebung
dieser Klausel bedarf ebenfalls der Schriftform.
8. Gerichtsstand
Gerichtsstand für alle Streitigkeiten aus diesem Vertrag ist Hagen, sofern der
Lizenznehmer Kaufmann, eine juristische Person des öffentlichen Rechts oder ein
öffentlich-rechtliches Sondervermögen ist.
Die Parteien vereinbaren die Anwendung deutschen Rechts. Sollte nach
Internationalem Verfahrensrecht die Zuständigkeit eines deutschen Gerichts
möglich sein, so vereinbaren die Parteien die Zuständigkeit der deutschen
Gerichtsbarkeit und innerhalb Deutschlands die Zuständigkeit des Amtsgerichtes
bzw. Landgerichtes Hagen. Bezüglich der in Abschnitt 5 »Schutzrechte Dritter«
festgelegten Nebenpflichten des Lizenznehmers kann der Lizenzgeber abweichend
von Satz 3 ein beliebiges international zuständiges Gericht anrufen.
© 2000 CampusSource Alle Rechte vorbehalten
|Der Lizenzgeber verschafft dem Lizenznehmer die Möglichkeit, auf elektronischem Weg Zugang zur Software, deren Dokumentation und zu Erfahrungsberichten zu erhalten und sich einen Überblick über das Softwareangebot zu verschaffen.
Der Lizenzgeber gestattet dem Lizenznehmer, die Software physikalisch downzuloaden.
Der Lizenzgeber überträgt die in Abschnitt 4 "Lizenz" näher bezeichneten Nutzungsrechte auf den Lizenznehmer.
|
Lizenzgeber und Lizenznehmer sind sich einig darüber, dass die
Inanspruchnahme der unter 1.) bis 3.) angebotenen Leistungen
unentgeltlich, schenkungsweise erfolgen soll. Dies bedeutet jedoch
nicht, dass der Lizenzgeber irgendwelche durch die Nutzung des Angebots
entstandenen Kosten übernimmt.
Sofern der Lizenznehmer die Software bearbeitet und diese Bearbeitung
Dritten zugänglich macht, ist er verpflichtet, dem Lizenzgeber auch eine
Kopie der Bearbeitung kostenlos zukommen zu lassen, oder, sofern die
Bearbeitung öffentlich und kostenlos zugänglich ist, dem Lizenzgeber die
Quelle mitzuteilen.
Die in diesen Allgemeinen Geschäftsbedingungen festgelegten
Nebenpflichten stellen keine Gegenleistung im Sinne des Bürgerlichen
Rechts dar und sind für den Lizenznehmer verbindlich. Nicht Gegenstand
des Vertrages sind irgendeine Form von Softwareinstallation,
Softwarepflege oder Beratung im Zusammenhang mit der Software.
Insbesondere wird durch die mit der Software beigefügte oder für die
Software bereit gestellte Information oder Dokumentation kein
Beratungsvertrag angeboten. Wenn Sie solche Dienstleistungen wünschen,
wenden Sie sich an die CampusSource Geschäftsstelle.
Der Lizenzgeber behält sich vor, das Leistungsangebot jederzeit
einzustellen. Bezüglich bereits empfangener Leistungen bleiben die
Verpflichtungen beider Parteien hiervon unberührt, insbesondere
entfallen dadurch nicht die in diesen Allgemeinen Geschäftsbedingungen
festgelegten Nebenpflichten des Lizenznehmers.
Diese Allgemeinen Geschäftsbedingungen gelten auch dann, wenn der
Lizenznehmer das oben genannte Leistungspaket nur teilweise in Anspruch
nimmt.
3. Sorgfaltspflichten des Lizenznehmers
Der Lizenznehmer ist verpflichtet, sein Passwort sorgfältig
aufzubewahren und Dritten nicht zugänglich zu machen. Der Lizenznehmer
haftet für alle Schäden, die aus der Verletzung dieser Sorgfaltspflicht
entstehen.
4. Lizenz
Die Nutzungsrechte, welche der Lizenznehmer erhält, ergeben sich aus der
GNU General Public License. Diese Nutzungsrechte sind dinglich – im
Sinne des Urheberrechts – mit der Software verknüpft und gelten auch
dann, wenn der Lizenznehmer keine Kenntnis davon nimmt. Die GNU General
Public License (im Folgenden GPL genannt) finden Sie im Internet unter
www.gnu.org/copyleft/gpl.html <http://www.gnu.org/copyleft/gpl.html>,
eine deutsche Übersetzung unter www.gnu.de/gpl-ger.html <http://
www.gnu.de/gpl-ger.html>.
Die GPL ist zu dem Zweck entworfen worden, dass Sie die unter diese
Lizenz gestellte Software weitergeben und verändern dürfen. Wenn Sie die
Software verändern und weitergeben, müssen Sie den Quellcode der
bearbeiteten Software wieder unter die GPL stellen und den Quellcode
zugänglich machen, so dass auch andere von Ihrem Werk profitieren, wie
auch Sie von der erhaltenen Software profitiert haben. Auf diese Art und
Weise soll ein System von jedermann frei zugänglicher Software
geschaffen werden.
Der Lizenzgeber weist den Lizenznehmer darauf hin, dass die GPL in den
USA entworfen wurde und daher einige Bestimmungen nach deutschem Recht
nicht wirksam sind oder in Deutschland rechtlich anders beurteilt werden
als in den USA:
Die Formulierung "You may charge a fee for the physical act of transferring a copy" in Abschnitt 1 der GPL ist nach deutschem Recht so zu verstehen, dass nur eine angemessene, marktübliche Gegenleistung für die Anfertigung einer Kopie verlangt werden darf. Sofern eine das marktübliche überschreitende Gegenleistung für das Anfertigen von Kopien verlangt werden würde, hätte dies neben einer möglichen Lizenzverletzung zur Folge, dass die durch die kostenlose Weitergabe bestehende Haftungsprivilegierung wegfallen könnte und der Lizenznehmer wie ein Verkäufer oder Unternehmer (Werkvertrag) bei Mängeln auf Schadensersatz haftet.
Abschnitt 11 und 12 der GPL (Haftungsausschluss) verstoßen gegen das "Gesetz zur Regelung des Rechts der Allgemeinen Geschäftsbedingungen" (AGBG) und sind nach deutschem Recht unwirksam. An ihre Stelle treten die entsprechenden Bestimmungen des Bürgerlichen Rechts §§ 521ff. (Haftung des Schenkers).
Es folgt eine kurze unvollständige Zusammenfassung der GPL. Der
Lizenznehmer ist verpflichtet, die weiterführenden und präziseren
Bestimmungen der GPL zu beachten. Der Lizenznehmer wird darauf
hingewiesen, dass die GPL einige (auflösende) Bedingungen enthält, bei
deren Verletzung die dem Lizenznehmer übertragenen Nutzungsrechte
automatisch ohne jeden Widerruf erlöschen und eine weitere Nutzung des
Programms zu einer (strafbaren) Urheberrechtsverletzung wird.
Die Lizenz erlaubt dem Lizenznehmer das Ausführen der Programme zu jedem Zweck. Gesetzliche Einschränkungen werden hiervon nicht berührt.
Der Lizenznehmer darf unveränderte Kopien des Quellcodes anfertigen und weiter verbreiten, unter der Bedingung, dass mit der Kopie ein entsprechender Urheberrechtsvermerk sowie ein Haftungsausschluss veröffentlicht wird und dass alle die GPL betreffenden Hinweise unverändert weitergegeben werden. Ein Entgelt darf nur für die Anfertigung von Kopien oder für das Anbieten einer Garantie genommen werden. Näheres enthält § 1 GPL.
Der Lizenznehmer darf das Programm verändern und die so entstandene Bearbeitung unter der Bedingung vervielfältigen und verbreiten, dass er einen auffälligen Vermerk über die vorgenommenen Modifizierungen anbringt, die Kopien der Bearbeitung ohne Lizenzgebühren unter den Bedingungen der GPL verbreitet und dafür sorgt, dass das Programm bei interaktiver Nutzung einen Urheberrechtsvermerk ausgibt. Näheres regelt § 2 GPL.
Der Lizenznehmer darf das Programm oder eine Bearbeitung als Objectcode oder in ausführbarer Form unter Berücksichtigung der letzten beiden Abschnitte unter der Bedingung vervielfältigen und verbreiten, dass er den Quelltext beifügt oder eine der in § 3 GPL genannten Alternativen erfüllt. Näheres regelt § 3 GPL.
Sollte dem Lizenznehmer infolge eines Gerichtsurteils oder durch einen gerichtlichen Vergleich Bedingungen auferlegt werden, die der GPL widersprechen, so entbindet dies den Lizenznehmer nicht von der Einhaltung der GPL. Näheres regelt § 7 GPL.
Wenn die Verbreitung oder die Benutzung des Programms in bestimmten Staaten durch Patent- oder Urheberrecht eingeschränkt ist, kann der Lizenznehmer bei der Verbreitung des Programms durch einen entsprechenden Vermerk bestimmen, dass die Verbreitung des Programms in bestimmten Staaten ausgeschlossen ist. Näheres regelt § 8 GPL.
5. Schutzrechte Dritter
Der Lizenzgeber geht davon aus, dass der Besitz und der vertragsgemäße
Gebrauch der Software keine Schutzrechte Dritter für den Bereich der BRD
beeinträchtigt. Im Zusammenhang mit einer möglichen Beeinträchtigung der
Schutzrechte Dritter werden die folgenden Nebenpflichten vereinbart:
|Der Lizenznehmer verpflichtet sich, dass er weder für sich noch im Auftrag eines Dritten die Software zu dem Zweck verwendet, diese nach Schutzrechtsverletzungen zu untersuchen oder untersuchen zu lassen.
Der Lizenznehmer verpflichtet sich, den Lizenzgeber unverzüglich zu benachrichtigen, wenn Dritte Schutzrechtsverletzungen geltend machen.
Hat der Lizenznehmer den Eindruck, dass die Software Patente oder andere Schutzrechte Dritter verletzt, so ist er verpflichtet, den Lizenzgeber unverzüglich schriftlich unter Beifügung einer genauen Beschreibung der Verletzungshandlung zu unterrichten. Es ist dem Lizenznehmer untersagt, andere natürliche oder juristische Personen ohne schriftliches Einverständnis des Lizenzgebers zu informieren.
Bei Verletzung einer der obigen Nebenpflichten verpflichtet sich der
Lizenznehmer, dem Lizenzgeber Schadensersatz für alle durch die
Verletzung entstandenen Schäden (einschließlich der Prozesskosten) zu
leisten. Ist die Verletzung einer solchen Nebenpflicht festgestellt, so
genügt es, wenn der Lizenzgeber plausibel darlegt, dass der Schaden
durch die Verletzung entstanden ist. Den Lizenznehmer trifft die volle
Beweislast für das Gegenteil. Der Lizenznehmer verpflichtet sich, dem
Lizenzgeber alle Auskünfte im Zusammenhang mit der Verletzung einer der
obigen Nebenpflichten zu erteilen.
Der Lizenzgeber weist darauf hin, dass zur CampusSource-Software nicht
die Software anderer Hersteller gehört, mit der die CampusSource-
Software zusammen arbeiten kann oder die für den Betrieb der
CampusSource-Software notwendigerweise vorhanden sein muss, wie z. B.
WWW-Server, Funktionsbibliotheken, Werkzeugsysteme und
Datenbankmanagementsysteme. Die Lizenzen für diese Software müssen vom
jeweiligen Hersteller separat erworben werden. Die GPL gilt für diese
Software in der Regel nicht.
6. Datenschutz
Der Lizenzgeber verpflichtet sich, bezüglich der bei der Registrierung
angegebenen Daten die einschlägigen landes- und bundesrechtlichen
Datenschutzbestimmungen einzuhalten. Alle Verbindungen zu diesem Server
im Download- und Registrierbereich werden in einem LOG-File
aufgezeichnet. Bitte beachten Sie dazu unsere Datenschutzerklärung.
7. Schriftform
Alle Nebenabreden, die zwischen dem Lizenzgeber und dem Lizenznehmer
abgeschlossen werden, bedürfen der Schriftform. Eine Abänderung oder
Aufhebung dieser Klausel bedarf ebenfalls der Schriftform.
8. Gerichtsstand
Gerichtsstand für alle Streitigkeiten aus diesem Vertrag ist Duisburg,
sofern der Lizenznehmer Kaufmann, eine juristische Person des
öffentlichen Rechts oder ein öffentlich-rechtliches Sondervermögen ist.
Die Parteien vereinbaren die Anwendung deutschen Rechts. Sollte nach
Internationalem Verfahrensrecht die Zuständigkeit eines deutschen
Gerichts möglich sein, so vereinbaren die Parteien die Zuständigkeit der
deutschen Gerichtsbarkeit und innerhalb Deutschlands die Zuständigkeit
des Amtsgerichtes bzw. Landgerichtes Hagen. Bezüglich der in Abschnitt 5
„Schutzrechte Dritter“ festgelegten Nebenpflichten des Lizenznehmers
kann der Lizenzgeber abweichend von Satz 3 ein beliebiges international
zuständiges Gericht anrufen.
Copyright © 2026 Förderverein CampusSource e.V. | Impressum <http://
www.campussource.de/impressum/> | Datenschutz <https://
www.campussource.de/datenschutz/>

901
src-patches/com/sun/jersey/spi/container/servlet/WebComponent.java

@ -1,901 +0,0 @@ @@ -1,901 +0,0 @@
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright (c) 2010-2013 Oracle and/or its affiliates. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can
* obtain a copy of the License at
* http://glassfish.java.net/public/CDDL+GPL_1_1.html
* or packager/legal/LICENSE.txt. See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at packager/legal/LICENSE.txt.
*
* GPL Classpath Exception:
* Oracle designates this particular file as subject to the "Classpath"
* exception as provided by Oracle in the GPL Version 2 section of the License
* file that accompanied this code.
*
* Modifications:
* If applicable, add the following below the License Header, with the fields
* enclosed by brackets [] replaced by your own identifying information:
* "Portions Copyright [year] [name of copyright owner]"
*
* Contributor(s):
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
/* gepatchtes class-File:
* im Rahmen von #331613 muss mit dem Update auf Tomcat 10 auch die Anwendung von Serlvet API 4.0 auf 6.0 umgestellt werden.
* Dies leistet ein Migrationstool, welches in erster Linie den Packagenamen von 'javax' auf 'jakarta' umstellt.
* Allerdings bestand danach immer noch in der 'jersey-bunde-1.19.4.jar' ein Zugriff auf die entfernte Methode
* 'HttpServletResponse.setStatus(int, String)', welcher beim Laden von Saiku zu einer Exception geführt hat,
* wodurch das Frontend in der Ladeanzeige geblieben ist.
* Der Patch ändert die Klasse derart, dass sie die noch vorhandene Methode 'HttpServletResponse.setStatus(int)' aufruft,
* was zu funktionieren scheint.
* Ursprung entspricht https://github.com/javaee/jersey-1.x/blob/864a01d7be490ab93d2424da3e446ad8eb84b1e8/jersey-servlet/src/main/java/com/sun/jersey/spi/container/servlet/WebComponent.java
*/
package com.sun.jersey.spi.container.servlet;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.lang.reflect.Constructor;
import java.lang.reflect.Proxy;
import java.lang.reflect.Type;
import java.net.URI;
import java.security.Principal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Application;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.GenericEntity;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.SecurityContext;
import javax.naming.NamingException;
import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import com.sun.jersey.api.container.ContainerException;
import com.sun.jersey.api.container.MappableContainerException;
import com.sun.jersey.api.core.ApplicationAdapter;
import com.sun.jersey.api.core.ClasspathResourceConfig;
import com.sun.jersey.api.core.PackagesResourceConfig;
import com.sun.jersey.api.core.ResourceConfig;
import com.sun.jersey.api.core.TraceInformation;
import com.sun.jersey.api.core.servlet.WebAppResourceConfig;
import com.sun.jersey.api.representation.Form;
import com.sun.jersey.core.header.InBoundHeaders;
import com.sun.jersey.core.header.MediaTypes;
import com.sun.jersey.core.reflection.ReflectionHelper;
import com.sun.jersey.core.util.ReaderWriter;
import com.sun.jersey.server.impl.InitialContextHelper;
import com.sun.jersey.server.impl.ThreadLocalInvoker;
import com.sun.jersey.server.impl.application.DeferredResourceConfig;
import com.sun.jersey.server.impl.cdi.CDIComponentProviderFactoryInitializer;
import com.sun.jersey.server.impl.container.servlet.JSPTemplateProcessor;
import com.sun.jersey.server.impl.ejb.EJBComponentProviderFactoryInitilizer;
import com.sun.jersey.server.impl.managedbeans.ManagedBeanComponentProviderFactoryInitilizer;
import com.sun.jersey.server.impl.model.method.dispatch.FormDispatchProvider;
import com.sun.jersey.server.impl.monitoring.GlassFishMonitoringInitializer;
import com.sun.jersey.server.probes.UriRuleProbeProvider;
import com.sun.jersey.spi.container.ContainerListener;
import com.sun.jersey.spi.container.ContainerNotifier;
import com.sun.jersey.spi.container.ContainerRequest;
import com.sun.jersey.spi.container.ContainerResponse;
import com.sun.jersey.spi.container.ContainerResponseWriter;
import com.sun.jersey.spi.container.ReloadListener;
import com.sun.jersey.spi.container.WebApplication;
import com.sun.jersey.spi.container.WebApplicationFactory;
import com.sun.jersey.spi.inject.SingletonTypeInjectableProvider;
import java.security.AccessController;
import java.security.PrivilegedActionException;
/**
* An abstract Web component that may be extended a Servlet and/or
* Filter implementation, or encapsulated by a Servlet or Filter implementation.
*
* @author Paul Sandoz (paul.sandoz at oracle.com)
*/
public class WebComponent implements ContainerListener {
/**
* The servlet initialization property whose value is a fully qualified
* class name of a class that implements {@link ResourceConfig} or
* {@link Application}.
*/
public static final String APPLICATION_CONFIG_CLASS =
"javax.ws.rs.Application";
/**
* The servlet initialization property whose value is a fully qualified
* class name of a class that implements {@link ResourceConfig} or
* {@link Application}.
*/
public static final String RESOURCE_CONFIG_CLASS =
"com.sun.jersey.config.property.resourceConfigClass";
/**
* The base path in the Web Pages where JSP templates, associated with
* viewables of resource classes, are located.
* <p/>
* If this property is not set then the base path will be the root path
* of the Web Pages.
*/
public static final String JSP_TEMPLATES_BASE_PATH =
"com.sun.jersey.config.property.JSPTemplatesBasePath";
private static final Logger LOGGER =
Logger.getLogger(WebComponent.class.getName());
private final ThreadLocalInvoker<HttpServletRequest> requestInvoker =
new ThreadLocalInvoker<HttpServletRequest>();
private final ThreadLocalInvoker<HttpServletResponse> responseInvoker =
new ThreadLocalInvoker<HttpServletResponse>();
private WebConfig config;
private ResourceConfig resourceConfig;
private WebApplication application;
public WebComponent() {
}
public WebComponent(Application app) {
if (app == null)
throw new IllegalArgumentException();
if (app instanceof ResourceConfig) {
resourceConfig = (ResourceConfig) app;
} else {
resourceConfig = new ApplicationAdapter(app);
}
}
/**
* Get the Web configuration.
*
* @return the Web configuration.
*/
public WebConfig getWebConfig() {
return config;
}
/**
* Get the resource configuration.
*
* @return the resource configuration.
*/
public ResourceConfig getResourceConfig() {
return resourceConfig;
}
/**
* Initiate the Web component.
*
* @param webConfig the Web configuration.
* @throws javax.servlet.ServletException in case of any initialization error
*/
public void init(WebConfig webConfig) throws ServletException {
config = webConfig;
if (resourceConfig == null)
resourceConfig = createResourceConfig(config);
load();
Object o = resourceConfig.getProperties().get(
ResourceConfig.PROPERTY_CONTAINER_NOTIFIER);
if (o instanceof List) {
List list = (List) o;
for (Object elem : list) {
if (elem instanceof ContainerNotifier) {
ContainerNotifier crf = (ContainerNotifier) elem;
crf.addListener(this);
}
}
} else if (o instanceof ContainerNotifier) {
ContainerNotifier crf = (ContainerNotifier) o;
crf.addListener(this);
}
}
/**
* Destroy this Web component.
* <p/>
* This will destroy the Web application created by this this Web component.
*/
public void destroy() {
if (application != null)
application.destroy();
}
private final static class Writer extends OutputStream implements ContainerResponseWriter {
final HttpServletResponse response;
ContainerResponse cResponse;
long contentLength;
OutputStream out;
boolean statusAndHeadersWritten = false;
Writer(HttpServletResponse response) {
this.response = response;
}
public OutputStream writeStatusAndHeaders(long contentLength,
ContainerResponse cResponse) throws IOException {
this.contentLength = contentLength;
this.cResponse = cResponse;
this.statusAndHeadersWritten = false;
return this;
}
public void finish() throws IOException {
if (statusAndHeadersWritten)
return;
// Note that the writing of headers MUST be performed before
// the invocation of sendError as on some Servlet implementations
// modification of the response headers will have no effect
// after the invocation of sendError.
writeHeaders();
writeStatus();
}
private void writeStatus() {
Response.StatusType statusType = cResponse.getStatusType();
final String reasonPhrase = statusType.getReasonPhrase();
// if (reasonPhrase != null) {
// response.setStatus(statusType.getStatusCode(), reasonPhrase);
// } else {
response.setStatus(statusType.getStatusCode());
// }
}
public void write(int b) throws IOException {
initiate();
out.write(b);
}
@Override
public void write(byte b[]) throws IOException {
if (b.length > 0) {
initiate();
out.write(b);
}
}
@Override
public void write(byte b[], int off, int len) throws IOException {
if (len > 0) {
initiate();
out.write(b, off, len);
}
}
@Override
public void flush() throws IOException {
writeStatusAndHeaders();
if (out != null)
out.flush();
}
@Override
public void close() throws IOException {
initiate();
out.close();
}
void initiate() throws IOException {
if (out == null) {
writeStatusAndHeaders();
out = response.getOutputStream();
}
}
void writeStatusAndHeaders() {
if (statusAndHeadersWritten)
return;
writeHeaders();
writeStatus();
statusAndHeadersWritten = true;
}
void writeHeaders() {
if (contentLength != -1 && contentLength < Integer.MAX_VALUE)
response.setContentLength((int) contentLength);
MultivaluedMap<String, Object> headers = cResponse.getHttpHeaders();
for (Map.Entry<String, List<Object>> e : headers.entrySet()) {
for (Object v : e.getValue()) {
response.addHeader(e.getKey(), ContainerResponse.getHeaderValue(v));
}
}
}
}
/**
* Dispatch client requests to a resource class.
*
* @param baseUri the base URI of the request.
* @param requestUri the URI of the request.
* @param request the {@link HttpServletRequest} object that
* contains the request the client made to
* the Web component.
* @param response the {@link HttpServletResponse} object that
* contains the response the Web component returns
* to the client.
* @return the status code of the response.
* @throws IOException if an input or output error occurs
* while the Web component is handling the
* HTTP request.
* @throws ServletException if the HTTP request cannot
* be handled.
*/
public int service(URI baseUri, URI requestUri,
final HttpServletRequest request,
final HttpServletResponse response)
throws ServletException, IOException {
// Copy the application field to local instance to ensure that the
// currently loaded web application is used to process
// request
final WebApplication _application = application;
final ContainerRequest cRequest = createRequest(
_application,
request,
baseUri,
requestUri);
cRequest.setSecurityContext(new SecurityContext() {
public Principal getUserPrincipal() {
return request.getUserPrincipal();
}
public boolean isUserInRole(String role) {
return request.isUserInRole(role);
}
public boolean isSecure() {
return request.isSecure();
}
public String getAuthenticationScheme() {
return request.getAuthType();
}
});
try {
// Check if any servlet filters have consumed a request entity
// of the media type application/x-www-form-urlencoded
// This can happen if a filter calls request.getParameter(...)
filterFormParameters(request, cRequest);
UriRuleProbeProvider.requestStart(requestUri);
requestInvoker.set(request);
responseInvoker.set(response);
final Writer w = new Writer(response);
_application.handleRequest(cRequest, w);
return w.cResponse.getStatus();
} catch (WebApplicationException ex) {
final Response exResponse = ex.getResponse();
final String entity = exResponse.getEntity() != null ? exResponse.getEntity().toString() : null;
response.sendError(exResponse.getStatus(), entity);
return exResponse.getStatus();
} catch (MappableContainerException ex) {
traceOnException(cRequest, response);
throw new ServletException(ex.getCause());
} catch (ContainerException ex) {
traceOnException(cRequest, response);
throw new ServletException(ex);
} catch (RuntimeException ex) {
traceOnException(cRequest, response);
throw ex;
} finally {
UriRuleProbeProvider.requestEnd();
requestInvoker.set(null);
responseInvoker.set(null);
}
}
/**
* Extension point for creating your custom container request.
*
* @param app the web app
* @param request the current servlet api request
* @param baseUri the base uri
* @param requestUri the request uri
* @return the request container
* @throws IOException if any error occurs when getting the input stream
*/
protected ContainerRequest createRequest(WebApplication app,
HttpServletRequest request, URI baseUri, URI requestUri) throws IOException {
return new ContainerRequest(
app,
request.getMethod(),
baseUri,
requestUri,
getHeaders(request),
request.getInputStream());
}
private void traceOnException(final ContainerRequest cRequest, final HttpServletResponse response) {
if (cRequest.isTracingEnabled()) {
final TraceInformation ti = (TraceInformation) cRequest.getProperties().
get(TraceInformation.class.getName());
ti.addTraceHeaders(new TraceInformation.TraceHeaderListener() {
public void onHeader(String name, String value) {
response.addHeader(name, value);
}
});
}
}
/**
* Create a new instance of a {@link WebApplication}.
*
* @return the {@link WebApplication} instance.
*/
protected WebApplication create() {
return WebApplicationFactory.createWebApplication();
}
/**
* A helper class for creating an injectable provider that supports
* {@link Context} with a type and constant value.
*
* @param <T> the type of the constant value.
*/
protected static class ContextInjectableProvider<T> extends
SingletonTypeInjectableProvider<Context, T> {
/**
* Create a new instance.
*
* @param type the type of the constant value.
* @param instance the constant value.
*/
protected ContextInjectableProvider(Type type, T instance) {
super(type, instance);
}
}
/**
* Configure the {@link ResourceConfig}.
* <p/>
* The {@link ResourceConfig} is configured such that the following classes
* may be injected onto the field of a root resource class or a parameter
* of a method of root resource class that is annotated with
* {@link javax.ws.rs.core.Context}: {@link HttpServletRequest}, {@link HttpServletResponse}
* , {@link ServletContext} and {@link WebConfig}.
* <p/>
* Any root resource class in registered in the resource configuration
* that is an interface is processed as follows.
* If the class is an interface and there exists a JNDI named object
* with the fully qualified class name as the JNDI name then that named
* object is added as a singleton root resource and the class is removed
* from the set of root resource classes.
* <p/>
* An inheriting class may override this method to configure the
* {@link ResourceConfig} to provide alternative or additional instances
* that are resource or provider classes or instances, and may modify the
* features and properties of the {@link ResourceConfig}. For an inheriting
* class to extend configuration behaviour the overriding method MUST call
* <code>super.configure(servletConfig, rc, wa)</code> as the first statement
* of that method.
* <p/>
* This method will be called only once at initiation. Subsequent
* reloads of the Web application will not result in subsequence calls to
* this method.
*
* @param wc the Web configuration
* @param rc the Resource configuration
* @param wa the Web application
*/
protected void configure(WebConfig wc, ResourceConfig rc, WebApplication wa) {
configureJndiResources(rc);
rc.getSingletons().add(new ContextInjectableProvider<HttpServletRequest>(
HttpServletRequest.class,
(HttpServletRequest) Proxy.newProxyInstance(
this.getClass().getClassLoader(),
new Class[]{HttpServletRequest.class},
requestInvoker)));
rc.getSingletons().add(new ContextInjectableProvider<HttpServletResponse>(
HttpServletResponse.class,
(HttpServletResponse) Proxy.newProxyInstance(
this.getClass().getClassLoader(),
new Class[]{HttpServletResponse.class},
responseInvoker)));
GenericEntity<ThreadLocal<HttpServletRequest>> requestThreadLocal =
new GenericEntity<ThreadLocal<HttpServletRequest>>(requestInvoker.getImmutableThreadLocal()) {
};
rc.getSingletons().add(new ContextInjectableProvider<ThreadLocal<HttpServletRequest>>(
requestThreadLocal.getType(), requestThreadLocal.getEntity()));
GenericEntity<ThreadLocal<HttpServletResponse>> responseThreadLocal =
new GenericEntity<ThreadLocal<HttpServletResponse>>(responseInvoker.getImmutableThreadLocal()) {
};
rc.getSingletons().add(new ContextInjectableProvider<ThreadLocal<HttpServletResponse>>(
responseThreadLocal.getType(), responseThreadLocal.getEntity()));
rc.getSingletons().add(new ContextInjectableProvider<ServletContext>(
ServletContext.class,
wc.getServletContext()));
rc.getSingletons().add(new ContextInjectableProvider<WebConfig>(
WebConfig.class,
wc));
rc.getClasses().add(JSPTemplateProcessor.class);
// TODO
// If CDI is enabled should EJB injection be disabled?
EJBComponentProviderFactoryInitilizer.initialize(rc);
CDIComponentProviderFactoryInitializer.initialize(wc, rc, wa);
// TODO
// If CDI is enabled then no need to initialize managed beans
ManagedBeanComponentProviderFactoryInitilizer.initialize(rc);
GlassFishMonitoringInitializer.initialize();
}
/**
* Initiate the {@link WebApplication}.
* <p/>
* This method will be called once at initiation and for
* each reload of the Web application.
* <p/>
* An inheriting class may override this method to initiate the
* Web application with different parameters.
*
* @param rc the Resource configuration
* @param wa the Web application
*/
protected void initiate(ResourceConfig rc, WebApplication wa) {
wa.initiate(rc);
}
/**
* Load the Web application. This will create, configure and initiate
* the web application.
*/
public void load() {
WebApplication _application = create();
configure(config, resourceConfig, _application);
initiate(resourceConfig, _application);
application = _application;
}
/**
* Get the default resource configuration if one is not declared in the
* web.xml.
* <p/>
* This implementation returns an instance of {@link WebAppResourceConfig}
* that scans in files and directories as declared by the
* {@link ClasspathResourceConfig#PROPERTY_CLASSPATH} if present, otherwise
* in the "WEB-INF/lib" and "WEB-INF/classes" directories.
* <p/>
* An inheriting class may override this method to supply a different
* default resource configuration implementation.
*
* @param props the properties to pass to the resource configuration.
* @param wc the web configuration.
* @return the default resource configuration.
* @throws javax.servlet.ServletException in case of any issues with providing \
* the default resource configuration
*/
protected ResourceConfig getDefaultResourceConfig(Map<String, Object> props,
WebConfig wc) throws ServletException {
return getWebAppResourceConfig(props, wc);
}
// ContainerListener
/**
* Reload the Web application. This will create and initiate the web
* application using the same {@link ResourceConfig} implementation
* that was used to load the Web application.
* <p/>
* This method may be called at runtime, more than once, to reload the
* Web application. For example, if a {@link ResourceConfig} implementation
* is capable of detecting changes to resource classes (addition or removal)
* or providers then this method may be invoked to reload the web
* application for such changes to take effect.
* <p/>
* If this method is called when there are pending requests then such
* requests will be processed using the previously loaded web application.
*/
public void onReload() {
WebApplication oldApplication = application;
WebApplication newApplication = create();
initiate(resourceConfig, newApplication);
application = newApplication;
if (resourceConfig instanceof ReloadListener)
((ReloadListener) resourceConfig).onReload();
oldApplication.destroy();
}
//
/* package */ ResourceConfig getWebAppResourceConfig(Map<String, Object> props,
WebConfig webConfig) throws ServletException {
// Default to using Web app resource config
return new WebAppResourceConfig(props, webConfig.getServletContext());
}
private ResourceConfig createResourceConfig(WebConfig webConfig)
throws ServletException {
final Map<String, Object> props = getInitParams(webConfig);
final ResourceConfig rc = createResourceConfig(webConfig, props);
rc.setPropertiesAndFeatures(props);
return rc;
}
private ResourceConfig createResourceConfig(WebConfig webConfig, Map<String, Object> props)
throws ServletException {
// Check if the resource config class property is present
String resourceConfigClassName = webConfig.getInitParameter(RESOURCE_CONFIG_CLASS);
// Otherwise check if the JAX-RS application config class property is
// present
if (resourceConfigClassName == null)
resourceConfigClassName = webConfig.getInitParameter(APPLICATION_CONFIG_CLASS);
// If no resource config class property is present
if (resourceConfigClassName == null) {
// If the packages property is present then
// use the packages resource config
String packages = webConfig.getInitParameter(
PackagesResourceConfig.PROPERTY_PACKAGES);
if (packages != null) {
props.put(PackagesResourceConfig.PROPERTY_PACKAGES, packages);
return new PackagesResourceConfig(props);
}
ResourceConfig defaultConfig = webConfig.getDefaultResourceConfig(props);
if (defaultConfig != null)
return defaultConfig;
return getDefaultResourceConfig(props, webConfig);
}
try {
Class<?> resourceConfigClass = AccessController.doPrivileged(ReflectionHelper.
classForNameWithExceptionPEA(resourceConfigClassName));
// TODO add support for WebAppResourceConfig
if (resourceConfigClass == ClasspathResourceConfig.class) {
String[] paths = getPaths(webConfig.getInitParameter(
ClasspathResourceConfig.PROPERTY_CLASSPATH));
props.put(ClasspathResourceConfig.PROPERTY_CLASSPATH, paths);
return new ClasspathResourceConfig(props);
} else if (ResourceConfig.class.isAssignableFrom(resourceConfigClass)) {
try {
Constructor constructor = resourceConfigClass.getConstructor(Map.class);
if (ClasspathResourceConfig.class.isAssignableFrom(resourceConfigClass)) {
String[] paths = getPaths(webConfig.getInitParameter(
ClasspathResourceConfig.PROPERTY_CLASSPATH));
props.put(ClasspathResourceConfig.PROPERTY_CLASSPATH, paths);
}
return (ResourceConfig) constructor.newInstance(props);
} catch (NoSuchMethodException ex) {
// Pass through and try the default constructor
} catch (Exception e) {
throw new ServletException(e);
}
return new DeferredResourceConfig(resourceConfigClass.asSubclass(ResourceConfig.class));
} else if (Application.class.isAssignableFrom(resourceConfigClass)) {
return new DeferredResourceConfig(resourceConfigClass.asSubclass(Application.class));
} else {
String message = "Resource configuration class, " + resourceConfigClassName +
", is not a super class of " + Application.class;
throw new ServletException(message);
}
} catch (ClassNotFoundException e) {
String message = "Resource configuration class, " + resourceConfigClassName +
", could not be loaded";
throw new ServletException(message, e);
} catch (PrivilegedActionException e) {
String message = "Resource configuration class, " + resourceConfigClassName +
", could not be loaded";
throw new ServletException(message, e.getCause());
}
}
private Map<String, Object> getInitParams(WebConfig webConfig) {
Map<String, Object> props = new HashMap<String, Object>();
Enumeration names = webConfig.getInitParameterNames();
while (names.hasMoreElements()) {
String name = (String) names.nextElement();
props.put(name, webConfig.getInitParameter(name));
}
return props;
}
private String[] getPaths(String classpath) throws ServletException {
final ServletContext context = config.getServletContext();
if (classpath == null) {
String[] paths = {
context.getRealPath("/WEB-INF/lib"),
context.getRealPath("/WEB-INF/classes")
};
if (paths[0] == null && paths[1] == null) {
String message = "The default deployment configuration that scans for " +
"classes in /WEB-INF/lib and /WEB-INF/classes is not supported " +
"for the application server." +
"Try using the package scanning configuration, see the JavaDoc for " +
PackagesResourceConfig.class.getName() + " and the property " +
PackagesResourceConfig.PROPERTY_PACKAGES + ".";
throw new ServletException(message);
}
return paths;
} else {
String[] virtualPaths = classpath.split(";");
List<String> resourcePaths = new ArrayList<String>();
for (String virtualPath : virtualPaths) {
virtualPath = virtualPath.trim();
if (virtualPath.length() == 0) continue;
String path = context.getRealPath(virtualPath);
if (path != null) resourcePaths.add(path);
}
if (resourcePaths.isEmpty()) {
String message = "None of the declared classpath locations, " +
classpath +
", could be resolved. " +
"This could be because the default deployment configuration that scans for " +
"classes in classpath locations is not supported. " +
"Try using the package scanning configuration, see the JavaDoc for " +
PackagesResourceConfig.class.getName() + " and the property " +
PackagesResourceConfig.PROPERTY_PACKAGES + ".";
throw new ServletException(message);
}
return resourcePaths.toArray(new String[resourcePaths.size()]);
}
}
private void configureJndiResources(ResourceConfig rc) {
// Obtain any instances that are registered in JNDI
// Assumes such instances are singletons
// Registered classes have to be interfaces
javax.naming.Context x = InitialContextHelper.getInitialContext();
if (x != null) {
Iterator<Class<?>> i = rc.getClasses().iterator();
while (i.hasNext()) {
Class<?> c = i.next();
if (!c.isInterface()) continue;
try {
Object o = x.lookup(c.getName());
if (o != null) {
i.remove();
rc.getSingletons().add(o);
LOGGER.log(Level.INFO,
"An instance of the class " + c.getName() +
" is found by JNDI look up using the class name as the JNDI name. " +
"The instance will be registered as a singleton.");
}
} catch (NamingException ex) {
LOGGER.log(Level.CONFIG,
"JNDI lookup failed for Jersey application resource " + c.getName(),
ex);
}
}
}
}
private void filterFormParameters(HttpServletRequest servletRequest, ContainerRequest containerRequet) throws IOException {
if (MediaTypes.typeEquals(MediaType.APPLICATION_FORM_URLENCODED_TYPE, containerRequet.getMediaType())
&& !isEntityPresent(containerRequet)) {
Form f = new Form();
Enumeration e = servletRequest.getParameterNames();
while (e.hasMoreElements()) {
String name = (String) e.nextElement();
String[] values = servletRequest.getParameterValues(name);
f.put(name, Arrays.asList(values));
}
if (!f.isEmpty()) {
containerRequet.getProperties().put(FormDispatchProvider.FORM_PROPERTY, f);
if (LOGGER.isLoggable(Level.WARNING)) {
LOGGER.log(Level.WARNING,
"A servlet request, to the URI " + containerRequet.getRequestUri() + ", " +
"contains form parameters in " +
"the request body but the request body has been consumed " +
"by the servlet or a servlet filter accessing the request " +
"parameters. Only resource methods using @FormParam " +
"will work as expected. Resource methods consuming the " +
"request body by other means will not work as expected.");
}
}
}
}
private boolean isEntityPresent(ContainerRequest cr) throws IOException {
InputStream in = cr.getEntityInputStream();
if (!in.markSupported()) {
in = new BufferedInputStream(in, ReaderWriter.BUFFER_SIZE);
cr.setEntityInputStream(in);
}
in.mark(1);
if (in.read() == -1)
return false;
else {
in.reset();
return true;
}
}
private InBoundHeaders getHeaders(HttpServletRequest request) {
InBoundHeaders rh = new InBoundHeaders();
for (Enumeration<String> names = request.getHeaderNames(); names.hasMoreElements();) {
String name = names.nextElement();
List<String> valueList = new LinkedList<String>();
for (Enumeration<String> values = request.getHeaders(name); values.hasMoreElements();) {
valueList.add(values.nextElement());
}
rh.put(name, valueList);
}
return rh;
}
}

366
src-patches/org/dbforms/util/MultipartRequest.java

@ -1,366 +0,0 @@ @@ -1,366 +0,0 @@
/*
* $Header: /cvsroot/jdbforms/dbforms/src/org/dbforms/util/MultipartRequest.java,v 1.19 2005/02/19 21:26:32 hkollmann Exp $
* $Revision: 1.19 $
* $Date: 2005/02/19 21:26:32 $
*
* DbForms - a Rapid Application Development Framework
* Copyright (C) 2001 Joachim Peer <joepeer@excite.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package org.dbforms.util;
import org.apache.commons.fileupload.DiskFileUpload;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import java.util.Vector;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletRequestWrapper;
import jakarta.servlet.http.HttpServletRequest;
import org.dbforms.util.external.FileUtil;
import de.superx.util.multipart.support.DefaultMultipartHttpServletRequest;
/**
* A utility class to handle <code>multipart/form-data</code> requests, the
* kind of requests that support file uploads. This class emulates the interface
* of <code>HttpServletRequest</code>, making it familiar to use. It uses a
* "push" model where any incoming files are read and saved directly to disk in
* the constructor. If you wish to have more flexibility, e.g. write the files
* to a database, use the "pull" model <code>MultipartParser</code> instead.
* <p>
* This class can receive arbitrarily large files (up to an artificial limit you
* can set), and fairly efficiently too. It cannot handle nested data (multipart
* content within multipart content) or internationalized content (such as non
* Latin-1 filenames).
* </p>
* <p>
* See the included <a href="upload.war">upload.war </a> for an example of how
* to use this class.
* <p>
* The full file upload specification is contained in experimental RFC 1867,
* available at <a href="http://www.ietf.org/rfc/rfc1867.txt"
* http://www.ietf.org/rfc/rfc1867.txt </a>.
* </p>
* <p>
* PLEASE NOTE: this class uses Multipart Support Classes by Jason Hunter.
* Copyright (C) 1998 by Jason Hunter. All rights reserved.
* Use of this class is limited. Please see the LICENSE for more information.
* Make sure that you project meets the requierements defined by Jason Hunter
* respective O'reilly!
* </p>
*
* @see MultipartParser
*
* @author Jason Hunter
* @author Geoff Soutter
* @author Joe Peer - _changed_ it for use in DbForms (i apologize)
*/
/* Witt: am 28.05.2026 als Basis für gepatchte Datei nach 'src-patches' übernommen, Basis waren meine
* lokalen 'dbforms_2.5_20050226' Sourcen */
public class MultipartRequest {
private static Log logCat = LogFactory.getLog(MultipartRequest.class); // logging category
private Hashtable files = new Hashtable(); // name - UploadedFile
// for this class
//private File dir;
private Hashtable parameters = new Hashtable(); // name - Vector of values
/**
* Constructs a new MultipartRequest to handle the specified request,
* {saving any uploaded files to the given directory}, and limiting the
* upload size to the specified length. If the content is too large, an
* IOException is thrown. This constructor actually parses the
* <tt>multipart/form-data</tt> and throws an IOException if there's any
* problem reading or parsing the request.
*
* @param request
* the servlet request.
* @param maxPostSize
* the maximum size of the POST content.
* @exception IOException
* if the uploaded content is larger than
* <tt>maxPostSize</tt> or there's a problem reading or
* parsing the request.
*/
public MultipartRequest(HttpServletRequest request,
int maxPostSize)
throws IOException {
// Sanity check values
if (request == null) {
throw new IllegalArgumentException("request cannot be null");
}
// Create a new file upload handler
DiskFileUpload upload = new DiskFileUpload();
// Set upload parameters
upload.setSizeMax(maxPostSize);
String tmpDir = System.getProperty("java.io.tmpdir");
upload.setRepositoryPath(tmpDir);
// Parse the request
try {
// we initilize this list with 'null', as the following unwrapping code should do the work - contrary to the 'org.dbforms.util.MultipartRequest code, from which this is copied
List<FileItem> items = null; //upload.parseRequest(request);
if (items == null || items.size() == 0) {
ServletRequest originalRequest = request;
DefaultMultipartHttpServletRequest dmhsr = null;
while (originalRequest instanceof ServletRequestWrapper) {
if (originalRequest instanceof DefaultMultipartHttpServletRequest) {
dmhsr = (DefaultMultipartHttpServletRequest) originalRequest;
items = dmhsr.getFileItems();
break;
}
originalRequest = ((ServletRequestWrapper) originalRequest).getRequest();
}
}
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
String name = item.getFieldName();
if (item.isFormField()) {
String value = item.getString();
// plain parameters get allways into parameters structure
Vector existingValues = (Vector) parameters.get(name);
if (existingValues == null) {
existingValues = new Vector();
parameters.put(name, existingValues);
}
existingValues.addElement(value);
} else {
String fileName = item.getName();
if (!Util.isNull(fileName)) {
File f = new File(fileName);
// 2004-08-05-HKK/Dziugas Baltrunas:
// FileItem always returns the full pathname!
fileName = FileUtil.filename(f.getName());
// The part actually contained a file
// #changes by joe peer:
// we must delay storing the file-inputstream (into
// database, filesystem or whatever)
// until we know exactly what should happen with it
FileHolder fileHolder = new FileHolder(fileName, item);
files.put(name, fileHolder);
logCat.info("buffered and now added as " + name
+ " the following fileHolder:"
+ fileHolder.getFileName());
// #changes by joe peer:
// if a file parameter is not null it gets into the
// parameters structures as well
// this is important to provide a simple access to
// request (no distinction between files and plain
// params)
Vector existingValues = (Vector) parameters.get(name);
if (existingValues == null) {
existingValues = new Vector();
parameters.put(name, existingValues);
}
existingValues.addElement(fileName);
}
}
}
} catch (Exception e) {
logCat.error("MultipartRequest", e);
}
}
/**
* Returns the content type of the specified file (as supplied by the client
* browser), or null if the file was not included in the upload.
*
* @param name
* the file name.
* @return the content type of the file.
*/
public String getContentType(String name) {
try {
//#changed by joe peer
//UploadedFile file = (UploadedFile)files.get(name);
FileHolder filePart = (FileHolder) files.get(name);
return filePart.getContentType(); // may be null
} catch (Exception e) {
return null;
}
}
/**
* Returns a FilePart object for the specified file this method was added by
* joe peer
*
* @param name
* the file name.
* @return a FilePart object for the named file.
*/
public FileHolder getFileHolder(String name) {
try {
return (FileHolder) files.get(name);
} catch (Exception e) {
return null;
}
}
/**
* Returns a InputStream object for the specified file saved on the server's
* filesystem, or null if the file was not included in the upload.
*
* @param name
* the file name.
* @return a InputStream object for the named file.
*/
public InputStream getFileInputStream(String name) {
try {
//#changed by joe peer
//UploadedFile file = (UploadedFile)files.get(name);
FileHolder filePart = (FileHolder) files.get(name);
return filePart.getInputStreamFromBuffer(); // may be null
} catch (Exception e) {
return null;
}
}
/**
* Returns the names of all the uploaded files as an Enumeration of Strings.
* It returns an empty Enumeration if there are no uploaded files. Each file
* name is the name specified by the form, not by the user.
*
* @return the names of all the uploaded files as an Enumeration of Strings.
*/
public Enumeration getFileNames() {
return files.keys();
}
/**
* Returns the filesystem name of the specified file, or null if the file
* was not included in the upload. A filesystem name is the name specified
* by the user. It is also the name under which the file is actually saved.
*
* @param name
* the file name.
* @return the filesystem name of the file.
*/
public String getFilesystemName(String name) {
try {
//#changed by joe peer
//UploadedFile file = (UploadedFile)files.get(name);
FileHolder filePart = (FileHolder) files.get(name);
return filePart.getFileName(); // may be null
} catch (Exception e) {
return null;
}
}
/**
* Returns the value of the named parameter as a String, or null if the
* parameter was not sent or was sent without a value. The value is
* guaranteed to be in its normal, decoded form. If the parameter has
* multiple values, only the last one is returned (for backward
* compatibility). For parameters with multiple values, it's possible the
* last "value" may be null.
*
* @param name
* the parameter name.
* @return the parameter value.
*/
public String getParameter(String name) {
try {
Vector values = (Vector) parameters.get(name);
if ((values == null) || (values.size() == 0)) {
return null;
}
String value = (String) values.elementAt(0);
return value;
} catch (Exception e) {
return null;
}
}
/**
* Returns the names of all the parameters as an Enumeration of Strings. It
* returns an empty Enumeration if there are no parameters.
*
* @return the names of all the parameters as an Enumeration of Strings.
*/
public Enumeration getParameterNames() {
return parameters.keys();
}
/**
* Returns the values of the named parameter as a String array, or null if
* the parameter was not sent. The array has one entry for each parameter
* field sent. If any field was sent without a value that entry is stored in
* the array as a null. The values are guaranteed to be in their normal,
* decoded form. A single value is returned as a one-element array.
*
* @param name
* the parameter name.
* @return the parameter values.
*/
public String[] getParameterValues(String name) {
try {
Vector values = (Vector) parameters.get(name);
if ((values == null) || (values.size() == 0)) {
return null;
}
String[] valuesArray = new String[values.size()];
values.copyInto(valuesArray);
return valuesArray;
} catch (Exception e) {
return null;
}
}
}

699
src-patches/org/springframework/security/web/util/OnCommittedResponseWrapper.java

@ -1,699 +0,0 @@ @@ -1,699 +0,0 @@
/*
* Copyright 2002-2016 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/* taken/copied from 'spring-security-web-6.2.8.jar' as a base for patching */
package org.springframework.security.web.util;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Locale;
import jakarta.servlet.ServletOutputStream;
import jakarta.servlet.WriteListener;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletResponseWrapper;
/**
* Base class for response wrappers which encapsulate the logic for handling an event when
* the {@link jakarta.servlet.http.HttpServletResponse} is committed.
*
* @author Rob Winch
* @since 4.0.2
*/
public abstract class OnCommittedResponseWrapper extends HttpServletResponseWrapper {
private boolean disableOnCommitted;
/**
* The Content-Length response header. If this is greater than 0, then once
* {@link #contentWritten} is larger than or equal the response is considered
* committed.
*/
private long contentLength;
/**
* The size of data written to the response body. The field will only be updated when
* {@link #disableOnCommitted} is false.
*/
private long contentWritten;
/**
* @param response the response to be wrapped
*/
public OnCommittedResponseWrapper(HttpServletResponse response) {
super(response);
}
@Override
public void addHeader(String name, String value) {
checkContentLengthHeader(name, value);
super.addHeader(name, value);
}
@Override
public void addIntHeader(String name, int value) {
checkContentLengthHeader(name, value);
super.addIntHeader(name, value);
}
@Override
public void setHeader(String name, String value) {
checkContentLengthHeader(name, value);
super.setHeader(name, value);
}
@Override
public void setIntHeader(String name, int value) {
checkContentLengthHeader(name, value);
super.setIntHeader(name, value);
}
private void checkContentLengthHeader(String name, int value) {
if ("Content-Length".equalsIgnoreCase(name)) {
setContentLength(value);
}
}
private void checkContentLengthHeader(String name, String value) {
if ("Content-Length".equalsIgnoreCase(name)) {
setContentLength(Long.parseLong(value));
}
}
@Override
public void setContentLength(int len) {
setContentLength((long) len);
super.setContentLength(len);
}
@Override
public void setContentLengthLong(long len) {
setContentLength(len);
super.setContentLengthLong(len);
}
private void setContentLength(long len) {
this.contentLength = len;
checkContentLength(0);
}
/**
* Invoke this method to disable invoking
* {@link OnCommittedResponseWrapper#onResponseCommitted()} when the
* {@link jakarta.servlet.http.HttpServletResponse} is committed. This can be useful
* in the event that Async Web Requests are made.
*/
protected void disableOnResponseCommitted() {
this.disableOnCommitted = true;
}
/**
* Returns true if {@link #onResponseCommitted()} will be invoked when the response is
* committed, else false.
* @return if {@link #onResponseCommitted()} is enabled
*/
protected boolean isDisableOnResponseCommitted() {
return this.disableOnCommitted;
}
/**
* Implement the logic for handling the
* {@link jakarta.servlet.http.HttpServletResponse} being committed
*/
protected abstract void onResponseCommitted();
/**
* Makes sure {@link OnCommittedResponseWrapper#onResponseCommitted()} is invoked
* before calling the superclass <code>sendError()</code>
*/
@Override
public final void sendError(int sc) throws IOException {
doOnResponseCommitted();
super.sendError(sc);
}
/**
* Makes sure {@link OnCommittedResponseWrapper#onResponseCommitted()} is invoked
* before calling the superclass <code>sendError()</code>
*/
@Override
public final void sendError(int sc, String msg) throws IOException {
doOnResponseCommitted();
super.sendError(sc, msg);
}
/**
* Makes sure {@link OnCommittedResponseWrapper#onResponseCommitted()} is invoked
* before calling the superclass <code>sendRedirect()</code>
*/
@Override
public final void sendRedirect(String location) throws IOException {
doOnResponseCommitted();
super.sendRedirect(location);
}
/**
* Makes sure {@link OnCommittedResponseWrapper#onResponseCommitted()} is invoked
* before calling the calling <code>getOutputStream().close()</code> or
* <code>getOutputStream().flush()</code>
*/
@Override
public ServletOutputStream getOutputStream() throws IOException {
return new SaveContextServletOutputStream(super.getOutputStream());
}
/**
* Makes sure {@link OnCommittedResponseWrapper#onResponseCommitted()} is invoked
* before calling the <code>getWriter().close()</code> or
* <code>getWriter().flush()</code>
*/
@Override
public PrintWriter getWriter() throws IOException {
return new SaveContextPrintWriter(super.getWriter());
}
/**
* Makes sure {@link OnCommittedResponseWrapper#onResponseCommitted()} is invoked
* before calling the superclass <code>flushBuffer()</code>
*/
@Override
public void flushBuffer() throws IOException {
doOnResponseCommitted();
super.flushBuffer();
}
private void trackContentLength(boolean content) {
if (!this.disableOnCommitted) {
checkContentLength(content ? 4 : 5); // TODO Localization
}
}
private void trackContentLength(char content) {
if (!this.disableOnCommitted) {
checkContentLength(1);
}
}
private void trackContentLength(Object content) {
if (!this.disableOnCommitted) {
trackContentLength(String.valueOf(content));
}
}
private void trackContentLength(byte[] content) {
if (!this.disableOnCommitted) {
checkContentLength((content != null) ? content.length : 0);
}
}
private void trackContentLength(char[] content) {
if (!this.disableOnCommitted) {
checkContentLength((content != null) ? content.length : 0);
}
}
private void trackContentLength(int content) {
if (!this.disableOnCommitted) {
trackContentLength(String.valueOf(content));
}
}
private void trackContentLength(float content) {
if (!this.disableOnCommitted) {
trackContentLength(String.valueOf(content));
}
}
private void trackContentLength(double content) {
if (!this.disableOnCommitted) {
trackContentLength(String.valueOf(content));
}
}
private void trackContentLengthLn() {
if (!this.disableOnCommitted) {
trackContentLength("\r\n");
}
}
private void trackContentLength(String content) {
if (!this.disableOnCommitted) {
int contentLength = (content != null) ? content.length() : 4;
checkContentLength(contentLength);
}
}
/**
* Adds the contentLengthToWrite to the total contentWritten size and checks to see if
* the response should be written.
* @param contentLengthToWrite the size of the content that is about to be written.
*/
private void checkContentLength(long contentLengthToWrite) {
this.contentWritten += contentLengthToWrite;
boolean isBodyFullyWritten = this.contentLength > 0 && this.contentWritten >= this.contentLength;
int bufferSize = getBufferSize();
boolean requiresFlush = bufferSize > 0 && this.contentWritten >= bufferSize;
if (isBodyFullyWritten || requiresFlush) {
doOnResponseCommitted();
}
}
/**
* Calls <code>onResponseCommmitted()</code> with the current contents as long as
* {@link #disableOnResponseCommitted()} was not invoked.
*/
private void doOnResponseCommitted() {
if (!this.disableOnCommitted) {
onResponseCommitted();
disableOnResponseCommitted();
}
}
/**
* Ensures {@link OnCommittedResponseWrapper#onResponseCommitted()} is invoked before
* calling the prior to methods that commit the response. We delegate all methods to
* the original {@link java.io.PrintWriter} to ensure that the behavior is as close to
* the original {@link java.io.PrintWriter} as possible. See SEC-2039
*
* @author Rob Winch
*/
private class SaveContextPrintWriter extends PrintWriter {
private final PrintWriter delegate;
SaveContextPrintWriter(PrintWriter delegate) {
super(delegate);
this.delegate = delegate;
}
@Override
public void flush() {
doOnResponseCommitted();
this.delegate.flush();
}
@Override
public void close() {
doOnResponseCommitted();
this.delegate.close();
}
@Override
public boolean equals(Object obj) {
return this.delegate.equals(obj);
}
@Override
public int hashCode() {
return this.delegate.hashCode();
}
@Override
public String toString() {
return getClass().getName() + "[delegate=" + this.delegate.toString() + "]";
}
@Override
public boolean checkError() {
return this.delegate.checkError();
}
@Override
public void write(int c) {
trackContentLength(c);
this.delegate.write(c);
}
@Override
public void write(char[] buf, int off, int len) {
checkContentLength(len);
this.delegate.write(buf, off, len);
}
@Override
public void write(char[] buf) {
trackContentLength(buf);
this.delegate.write(buf);
}
@Override
public void write(String s, int off, int len) {
checkContentLength(len);
this.delegate.write(s, off, len);
}
@Override
public void write(String s) {
trackContentLength(s);
this.delegate.write(s);
}
@Override
public void print(boolean b) {
trackContentLength(b);
this.delegate.print(b);
}
@Override
public void print(char c) {
trackContentLength(c);
this.delegate.print(c);
}
@Override
public void print(int i) {
trackContentLength(i);
this.delegate.print(i);
}
@Override
public void print(long l) {
trackContentLength(l);
this.delegate.print(l);
}
@Override
public void print(float f) {
trackContentLength(f);
this.delegate.print(f);
}
@Override
public void print(double d) {
trackContentLength(d);
this.delegate.print(d);
}
@Override
public void print(char[] s) {
trackContentLength(s);
this.delegate.print(s);
}
@Override
public void print(String s) {
trackContentLength(s);
this.delegate.print(s);
}
@Override
public void print(Object obj) {
trackContentLength(obj);
this.delegate.print(obj);
}
@Override
public void println() {
trackContentLengthLn();
this.delegate.println();
}
@Override
public void println(boolean x) {
trackContentLength(x);
trackContentLengthLn();
this.delegate.println(x);
}
@Override
public void println(char x) {
trackContentLength(x);
trackContentLengthLn();
this.delegate.println(x);
}
@Override
public void println(int x) {
trackContentLength(x);
trackContentLengthLn();
this.delegate.println(x);
}
@Override
public void println(long x) {
trackContentLength(x);
trackContentLengthLn();
this.delegate.println(x);
}
@Override
public void println(float x) {
trackContentLength(x);
trackContentLengthLn();
this.delegate.println(x);
}
@Override
public void println(double x) {
trackContentLength(x);
trackContentLengthLn();
this.delegate.println(x);
}
@Override
public void println(char[] x) {
trackContentLength(x);
trackContentLengthLn();
this.delegate.println(x);
}
@Override
public void println(String x) {
trackContentLength(x);
trackContentLengthLn();
this.delegate.println(x);
}
@Override
public void println(Object x) {
trackContentLength(x);
trackContentLengthLn();
this.delegate.println(x);
}
@Override
public PrintWriter printf(String format, Object... args) {
return this.delegate.printf(format, args);
}
@Override
public PrintWriter printf(Locale l, String format, Object... args) {
return this.delegate.printf(l, format, args);
}
@Override
public PrintWriter format(String format, Object... args) {
return this.delegate.format(format, args);
}
@Override
public PrintWriter format(Locale l, String format, Object... args) {
return this.delegate.format(l, format, args);
}
@Override
public PrintWriter append(CharSequence csq) {
checkContentLength(csq.length());
return this.delegate.append(csq);
}
@Override
public PrintWriter append(CharSequence csq, int start, int end) {
checkContentLength(end - start);
return this.delegate.append(csq, start, end);
}
@Override
public PrintWriter append(char c) {
trackContentLength(c);
return this.delegate.append(c);
}
}
/**
* Ensures{@link OnCommittedResponseWrapper#onResponseCommitted()} is invoked before
* calling methods that commit the response. We delegate all methods to the original
* {@link jakarta.servlet.ServletOutputStream} to ensure that the behavior is as close
* to the original {@link jakarta.servlet.ServletOutputStream} as possible. See
* SEC-2039
*
* @author Rob Winch
*/
private class SaveContextServletOutputStream extends ServletOutputStream {
private final ServletOutputStream delegate;
SaveContextServletOutputStream(ServletOutputStream delegate) {
this.delegate = delegate;
}
@Override
public void write(int b) throws IOException {
trackContentLength(b);
this.delegate.write(b);
}
@Override
public void flush() throws IOException {
doOnResponseCommitted();
this.delegate.flush();
}
@Override
public void close() throws IOException {
doOnResponseCommitted();
this.delegate.close();
}
@Override
public void print(boolean b) throws IOException {
trackContentLength(b);
this.delegate.print(b);
}
@Override
public void print(char c) throws IOException {
trackContentLength(c);
this.delegate.print(c);
}
@Override
public void print(double d) throws IOException {
trackContentLength(d);
this.delegate.print(d);
}
@Override
public void print(float f) throws IOException {
trackContentLength(f);
this.delegate.print(f);
}
@Override
public void print(int i) throws IOException {
trackContentLength(i);
this.delegate.print(i);
}
@Override
public void print(long l) throws IOException {
trackContentLength(l);
this.delegate.print(l);
}
@Override
public void print(String s) throws IOException {
trackContentLength(s);
this.delegate.print(s);
}
@Override
public void println() throws IOException {
trackContentLengthLn();
this.delegate.println();
}
@Override
public void println(boolean b) throws IOException {
trackContentLength(b);
trackContentLengthLn();
this.delegate.println(b);
}
@Override
public void println(char c) throws IOException {
trackContentLength(c);
trackContentLengthLn();
this.delegate.println(c);
}
@Override
public void println(double d) throws IOException {
trackContentLength(d);
trackContentLengthLn();
this.delegate.println(d);
}
@Override
public void println(float f) throws IOException {
trackContentLength(f);
trackContentLengthLn();
this.delegate.println(f);
}
@Override
public void println(int i) throws IOException {
trackContentLength(i);
trackContentLengthLn();
this.delegate.println(i);
}
@Override
public void println(long l) throws IOException {
trackContentLength(l);
trackContentLengthLn();
this.delegate.println(l);
}
@Override
public void println(String s) throws IOException {
trackContentLength(s);
trackContentLengthLn();
this.delegate.println(s);
}
@Override
public void write(byte[] b) throws IOException {
trackContentLength(b);
this.delegate.write(b);
}
@Override
public void write(byte[] b, int off, int len) throws IOException {
checkContentLength(len);
this.delegate.write(b, off, len);
}
@Override
public boolean isReady() {
return this.delegate.isReady();
}
@Override
public void setWriteListener(WriteListener writeListener) {
this.delegate.setWriteListener(writeListener);
}
@Override
public boolean equals(Object obj) {
return this.delegate.equals(obj);
}
@Override
public int hashCode() {
return this.delegate.hashCode();
}
@Override
public String toString() {
return getClass().getName() + "[delegate=" + this.delegate.toString() + "]";
}
}
}

12
src/de/memtext/util/CryptUtils.java

@ -7,7 +7,6 @@ import java.util.StringTokenizer; @@ -7,7 +7,6 @@ import java.util.StringTokenizer;
import javax.crypto.Cipher;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.digest.Crypt;
/**
*
@ -78,16 +77,7 @@ public class CryptUtils { @@ -78,16 +77,7 @@ public class CryptUtils {
}
return encrypted.toString();
}
public static String encodeSHA512(String txt) {
if (txt ==null || txt.length() > 1000) {
throw new RuntimeException("Passwort ist ungültig");
}
byte txtArray[] = txt.getBytes();
return Crypt.crypt(txtArray, "$6$0q5233a66a3e9bea16f3139bfe4f6ce50ced591deafbc4b9ef56d6ae60fe9c4b22aa78dbd704bde57c");
}
public static String encryptSimple(String s) {
int i = 0;
byte pad[] = s.getBytes();

4
src/de/memtext/util/XmlFlatFileMerger.java

@ -10,7 +10,6 @@ import java.util.Collection; @@ -10,7 +10,6 @@ import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@ -143,8 +142,7 @@ public class XmlFlatFileMerger { @@ -143,8 +142,7 @@ public class XmlFlatFileMerger {
String tagName = entry.getKey();
logger.debug("All elements of type " + tagName + ":");
SortedSet<String> sortedEntries = new TreeSet<String>(entry.getValue().keySet());
Iterator<Node> it = entry.getValue().values().iterator();
boolean isContainerTag = !(it.hasNext() && it.next().getName().equals(tagName));
boolean isContainerTag = !entry.getValue().values().iterator().next().getName().equals(tagName);
Element addToNode = isContainerTag ? root.addElement(tagName) : root;
for (String key : sortedEntries) {
logger.debug("Name: " + key);

6
src/de/statspez/plausi/astat/csv/Abschluss3steller.csv

@ -276,7 +276,7 @@ @@ -276,7 +276,7 @@
482;058540;Bachelor an Universitäten - Ergänzungs-, Erweiterungs- und Zusatzstudium;20072;99999;82;
484;602540;Bachelor an Fachhochschulen - Ergänzungs-, Erweiterungs- und Zusatzstudium;20072;99999;84;
488;059540;Master an Universitäten (Abschlussprüfung vorausge.) - Ergänzungs-, Erweiterungs- und Zusatzstudium;20072;99999;88;
489;557040;Master an Kunsthochschulen (Abschlusspr. vorausg.) - Ergänzungs-, Erweiterungs- und Zusatzstududium;20092;99999;89;
489;557040;Master an Kunsthochschulen (Abschlussprüfung vorausgesetzt) - Ergänzungs-, Erweiterungs- und Zusatzs;20092;99999;89;
490;603540;Master an Fachhochschulen (Abschlusspr. vorausge.) - Ergänzungs-, Erweiterungs- und Zusatzstudium;20072;99999;90;
494;650540;Abschlusszeugnis / Zertifikat - Ergänzungs-, Erweiterungs- und Zusatzstudium;20072;99999;94;
495;651040;Sonstiger Abschluss in Deutschland - Ergänzungs-, Erweiterungs- und Zusatzstudium;20072;99999;95;
@ -288,7 +288,7 @@ @@ -288,7 +288,7 @@
591;101550;Promotion (Abschlussprüfung vorausgesetzt) - Strukturiertes Promotionsstudium;20072;99999;91;
592;101050;Promotion (Abschlussprüfung vorausgesetzt) - Promotion nach FH-Abschluss bzw. wiss. Kurzstudium;20072;99999;92;
596;651550;Abschlussprüfung im Ausland - Promotionsstudium;20072;99999;96;
601;051260;Mehr-Fächer-Bachelor mit Lehramtsoption - Weiterbildungsstudium;20102;99999;01;
601;051260;Mehr-Fächer-Bachelor mit Lehramtsoption – Weiterbildungsstudium;20102;99999;01;
602;050560;Magister - Weiterbildungsstudium;20072;99999;02;
608;053060;Staatsexamen / 1. Staatsprüfung - Weiterbildungsstudium;20072;99999;08;
611;054560;Diplom (U) - Weiterbildungsstudium;20072;99999;11;
@ -330,7 +330,7 @@ @@ -330,7 +330,7 @@
755;201570;LA Master Sekundarstufe I / Primarstufe - Konsekutives Masterstudium;20092;99999;55;
757;203070;LA Master Grundschulen / Sekundarstufe I - Konsekutives Masterstudium;20092;99999;57;
758;251570;LA Master Realschulen - Konsekutives Masterstudium;20092;99999;58;
760;253070;LA Master Haupt- und Realschulen / Unterstufe und Mittelstufe Gymnasien - Konsek. Masterstudium;20092;99999;60;
760;253070;LA Master Haupt- und Realschulen / Unterstufe und Mittelstufe Gymnasien - Konsekutives Masterstudiu;20092;99999;60;
761;254570;LA Master Mittelstufe / Sekundarstufe I - Konsekutives Masterstudium;20092;99999;61;
762;301570;LA Master Sekundarstufe II / Sekundarstufe I - Konsekutives Masterstudium;20092;99999;62;
763;353070;LA Master Oberstufe / Sekundarstufe II, allgemeinbildende Schulen - Konsekutives Masterstudium;20092;99999;63;

1 101 051210 Mehr-Fächer-Bachelor mit Lehramtsoption - Erststudium 20102 99999 01
276 482 058540 Bachelor an Universitäten - Ergänzungs-, Erweiterungs- und Zusatzstudium 20072 99999 82
277 484 602540 Bachelor an Fachhochschulen - Ergänzungs-, Erweiterungs- und Zusatzstudium 20072 99999 84
278 488 059540 Master an Universitäten (Abschlussprüfung vorausge.) - Ergänzungs-, Erweiterungs- und Zusatzstudium 20072 99999 88
279 489 557040 Master an Kunsthochschulen (Abschlusspr. vorausg.) - Ergänzungs-, Erweiterungs- und Zusatzstududium Master an Kunsthochschulen (Abschlussprüfung vorausgesetzt) - Ergänzungs-, Erweiterungs- und Zusatzs 20092 99999 89
280 490 603540 Master an Fachhochschulen (Abschlusspr. vorausge.) - Ergänzungs-, Erweiterungs- und Zusatzstudium 20072 99999 90
281 494 650540 Abschlusszeugnis / Zertifikat - Ergänzungs-, Erweiterungs- und Zusatzstudium 20072 99999 94
282 495 651040 Sonstiger Abschluss in Deutschland - Ergänzungs-, Erweiterungs- und Zusatzstudium 20072 99999 95
288 591 101550 Promotion (Abschlussprüfung vorausgesetzt) - Strukturiertes Promotionsstudium 20072 99999 91
289 592 101050 Promotion (Abschlussprüfung vorausgesetzt) - Promotion nach FH-Abschluss bzw. wiss. Kurzstudium 20072 99999 92
290 596 651550 Abschlussprüfung im Ausland - Promotionsstudium 20072 99999 96
291 601 051260 Mehr-Fächer-Bachelor mit Lehramtsoption - Weiterbildungsstudium Mehr-Fächer-Bachelor mit Lehramtsoption – Weiterbildungsstudium 20102 99999 01
292 602 050560 Magister - Weiterbildungsstudium 20072 99999 02
293 608 053060 Staatsexamen / 1. Staatsprüfung - Weiterbildungsstudium 20072 99999 08
294 611 054560 Diplom (U) - Weiterbildungsstudium 20072 99999 11
330 755 201570 LA Master Sekundarstufe I / Primarstufe - Konsekutives Masterstudium 20092 99999 55
331 757 203070 LA Master Grundschulen / Sekundarstufe I - Konsekutives Masterstudium 20092 99999 57
332 758 251570 LA Master Realschulen - Konsekutives Masterstudium 20092 99999 58
333 760 253070 LA Master Haupt- und Realschulen / Unterstufe und Mittelstufe Gymnasien - Konsek. Masterstudium LA Master Haupt- und Realschulen / Unterstufe und Mittelstufe Gymnasien - Konsekutives Masterstudiu 20092 99999 60
334 761 254570 LA Master Mittelstufe / Sekundarstufe I - Konsekutives Masterstudium 20092 99999 61
335 762 301570 LA Master Sekundarstufe II / Sekundarstufe I - Konsekutives Masterstudium 20092 99999 62
336 763 353070 LA Master Oberstufe / Sekundarstufe II, allgemeinbildende Schulen - Konsekutives Masterstudium 20092 99999 63

56
src/de/statspez/plausi/astat/csv/Hochschule.csv

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
001;10725;U Kassel;20042;99999;1;
002;60515;APOLLON H der Gesundheitswirtschaft Bremen (Priv. FH);20102;99999;6;
003;60265;Macromedia University of Applied Sciences Potsdam, Campus München (Priv. FH);20252;99999;6;
003;60265;Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus München (Priv. FH);20252;99999;6;
004;61074;FH der Diakonie Bielefeld-Bethel (Kirchl. FH);20171;99999;6;
006;60129;Hochschule für angewandte Wissenschaften der Bundesagentur für Arbeit in Mannheim (FH);20222;99999;6;
008;11034;U Duisburg-Essen;20062;99999;1;
@ -8,6 +8,7 @@ @@ -8,6 +8,7 @@
013;11065;U Siegen;20042;99999;1;
014;11070;U Wuppertal;20042;99999;1;
015;11040;Fernuniversität Hagen;20042;99999;1;
017;60333;Touro College Berlin (Priv. FH);20062;99999;6;
018;10315;Charite - Universitätsmedizin Berlin;20042;99999;1;
019;10410;Europa-U Viadrina Frankfurt (Oder);20042;99999;1;
020;10320;Humboldt-Universität Berlin;20042;99999;1;
@ -38,12 +39,12 @@ @@ -38,12 +39,12 @@
068;10335;Hertie School of Governance Berlin (Priv. U);20171;99999;1;
069;10615;HafenCity Universität Hamburg;20052;99999;1;
070;60335;bbw Hochschule Berlin (Priv. FH);20092;99999;6;
071;41012;H für Kirchenmusik Witten (Kirchl.-Theol. H);20252;99999;4;
071;41012;H für Kirchenmusik Herford-Witten (Kirchl.-Theol. H);20211;99999;4;
072;60264;Internationale Hochschule SDI München-Hochschule für angewandte Wissenschaften (Priv. FH) ;20192;99999;6;
073;61640;SRH University of Applied Sciences Heidelberg in Gera (Priv. FH);20242;99999;6;
074;70910;Norddeutsche Hochschule für Rechtspflege Hildesheim (Verw-FH);20171;99999;7;
075;70930;Kommunale H für Verwaltung in Niedersachsen, Hannover (Priv. Verw-FH);20171;99999;7;
076;60347;Health Innovation University of Applied Sciences Berlin in Berlin (Priv. FH);20261;99999;6;
076;60347;IB Hochschule für Gesundheit und Soziales Berlin in Berlin (Priv. FH);20192;99999;6;
079;60336;Akkon Hochschule Berlin (Priv. FH);20171;99999;6;
080;10620;Helmut-Schmidt-Universität Hamburg;20042;99999;1;
081;10240;U der Bundeswehr München;20042;99999;1;
@ -74,7 +75,7 @@ @@ -74,7 +75,7 @@
116;10710;U Frankfurt a.M.;20042;99999;1;
117;10715;U Gießen;20042;99999;1;
118;10730;U Marburg;20042;99999;1;
119;11135;WHU - Otto Beisheim Hochschule Vallendar in Vallendar (Priv. U);20262;99999;1;
119;11135;Wissenschaftliche H für Unternehmensführung, Vallendar (Priv. U);20171;99999;1;
120;11130;U Trier;20042;99999;1;
121;11105;Rheinland-Pfälzische Technische Universität;20231;99999;1;
122;11115;U Mainz;20042;99999;1;
@ -103,6 +104,7 @@ @@ -103,6 +104,7 @@
148;11005;TH Aachen (U);20171;99999;1;
149;11075;Universität Witten-Herdecke (Priv. U);20171;99999;1;
150;61048;H für Finanzwirtschaft & Management Bonn (Priv. FH);20201;99999;6;
151;60765;CVJM-Hochschule Kassel (Priv. FH);20091;99999;6;
152;10350;International Psychoanalytic University Berlin (Priv. U);20171;99999;1;
153;10705;TU Darmstadt;20042;99999;1;
154;10740;EBS U für Wirtschaft und Recht (Priv. U);20171;99999;1;
@ -113,7 +115,7 @@ @@ -113,7 +115,7 @@
159;10135;U Stuttgart;20042;99999;1;
160;60367;Quadriga Hochschule Berlin (Priv. FH);20101;99999;6;
163;10235;TU München in München, Straubing, Garching und Weihenstephan;20182;99999;1;
168;61065;CBS International Business School, Campus Köln, Neuss und Solingen (Priv. FH);20262;99999;6;
168;61065;CBS International Business School, Campus Köln und Neuss (Priv. FH);20242;99999;6;
169;10310;TU Berlin;20042;99999;1;
170;10325;ESCP Europe Wirtschaftshochschule Berlin (Priv. U);20171;99999;1;
171;10245;H für Politik München (U);20171;99999;1;
@ -154,7 +156,7 @@ @@ -154,7 +156,7 @@
224;60361;Hochschule für Soziale Arbeit und Pädagogik (HSAP), Berlin (Priv. FH);20241;99999;6;
227;41035;Kirchliche Hochschule Wuppertal (Kirchl.-Theol. H);20241;99999;4;
228;61059;IST-Hochschule für Management Düsseldorf (Priv. FH);20131;99999;6;
229;60364;Whitecliffe University of Applied Sciences Berlin (priv. FH);20261;99999;6;
229;60364;Berlin International University of Applied Sciences (Priv. FH);20181;99999;6;
230;10175;H für jüdische Studien Heidelberg (Kirchl. U);20171;99999;1;
232;40715;Luth.-Theologische H Oberursel (Kirchl.-Theol. H) ;20171;99999;4;
235;41405;Theol. H Friedensau (Kirchl.-Theol. H);20171;99999;4;
@ -216,6 +218,7 @@ @@ -216,6 +218,7 @@
308;51045;Hochschule der bildenden Künste (HBK) Essen (Priv. Kunst-H);20181;99999;5;
309;61070;HSD Hochschule Döpfer Potsdam in Köln (Priv. FH);20222;99999;6;
310;11505;EUF Europa-Universität Flensburg;20162;99999;1;
312;60177;Hochschule für Kommunikation und Gestaltung (Priv. FH);20142;99999;6;
313;50330;Barenboim-Said Akademie Berlin (Priv. Kunst-H);20171;99999;5;
314;60357;CODE University of Applied Sciences Berlin (Priv. FH);20172;99999;6;
323;61150;H für Gesellschaftsgestaltung Koblenz (Priv. FH);20231;99999;6;
@ -226,7 +229,6 @@ @@ -226,7 +229,6 @@
336;60345;Digital Business University Berlin (Priv. FH);20192;99999;6;
337;10227;Technische Universität Nürnberg;20211;99999;1;
343;60608;Berufliche Hochschule Hamburg (FH);20212;99999;6;
344;11625;HMU Health and Medical University Erfurt (Priv. U);20262;99999;1;
349;60440;XU Exponential University Potsdam (Priv. FH);20192;99999;6;
350;10415;U Potsdam;20042;99999;1;
364;60445;Gisma University of Applied Sciences Potsdam (Priv. FH);20242;99999;6;
@ -271,12 +273,6 @@ @@ -271,12 +273,6 @@
426;B0718;Deutsche Berufsakademie Sport und Gesundheit (dba) in Baunatal (Private BA);20172;99999;B;
427;B0945;Berufsakademie Wilhelmshaven (Private BA);20192;99999;B;
428;B1230;Berufsakademie Heimerer GmbH, Quierschied (Private BA);20202;99999;B;
468;60276;Promotionszentrum MeVuT – Menschenorient. Forsch. für innova. Versorgung und Teilhabe, München;20262;99999;6;
469;61162;Promotionscluster Angewandte Informatik, Trier;20261;99999;6;
470;61164;Promotionscluster Medical and Environmental Life Sciences, Kaiserslautern;20261;99999;6;
471;61166;Promotionscluster Nachhaltige Technik und Naturwissenschaften, Koblenz;20261;99999;6;
472;60278;Promotionszentrum Prisma Health - Deggendorf;20262;99999;6;
473;60299;CAF - Promotionszentrum LiWa - Technische Hochschule Würzburg-Schweinfurt;20262;99999;6;
474;60298;Promotionszentrum Integrierte Mobilität - München;20252;99999;6;
475;60281;Promotionszentrum Advanced Building Technologies, TH Rosenheim;20242;99999;6;
476;60280;Promotionszentrum NITRO, TH Augsburg;20242;99999;6;
@ -372,7 +368,7 @@ @@ -372,7 +368,7 @@
638;71305;Hochschule Meißen (FH) und Fortbildungszentrum (Verw-FH);20172;99999;7;
639;60740;Wilhelm Büchner Hochschule Darmstadt (Priv. Fern-FH);20082;99999;6;
640;60755;DIPLOMA - FH Nordhessen (Priv. FH);20092;99999;6;
641;61051;Europäische FH (EUFH) in Brühl, Köln, Neuss und Rheine (Priv. FH);20182;20262;6;
641;61051;Europäische FH (EUFH) in Brühl, Köln, Neuss und Rheine (Priv. FH);20182;99999;6;
643;60430;Theologische Hochschule Elstal (Kirchl. FH);20171;99999;6;
651;61105;Technische Hochschule Bingen (FH);20162;99999;6;
652;61110;Hochschule Kaiserslautern (FH);20142;99999;6;
@ -385,7 +381,7 @@ @@ -385,7 +381,7 @@
665;61120;Hochschule für Wirtschaft und Gesellschaft Ludwigshafen (FH);20191;99999;6;
666;61135;Hochschule Worms (FH);20142;99999;6;
667;61125;Hochschule Mainz (FH);20142;99999;6;
668;61225;Hochschule für angewandtes Management, Teltow (Priv. FH);20261;99999;6;
668;60263;Hochschule für angewandtes Management, Ismaning (Priv. FH);20172;99999;6;
669;60745;Provadis School of Intern. Management and Technology, Frankfurt a.M. (Priv. FH);20042;99999;6;
671;60103;Hochschule Aalen - Technik und Wirtschaft (FH);20161;99999;6;
672;60109;H Biberach a. d. Riss (FH);20171;99999;6;
@ -463,6 +459,7 @@ @@ -463,6 +459,7 @@
792;60410;Hochschule für nachhaltige Entwicklung Eberswalde (FH);20102;99999;6;
794;60425;Technische Hochschule Wildau (FH);20171;99999;6;
795;60420;FH Potsdam;20042;99999;6;
796;10340;Steinbeis Hochschule in Berlin (Priv. U);20222;99999;1;
797;60356;SRH University of Applied Sciences Heidelberg in Berlin (Priv. FH);20242;99999;6;
799;70610;Norddeutsche Akademie für Finanzen und Steuerrecht Hamburg (Verw-FH);20171;99999;7;
800;61420;Hochschule Merseburg (FH);20102;99999;6;
@ -483,9 +480,6 @@ @@ -483,9 +480,6 @@
821;60150;Europäische Hochschule für Innovation und Perspektive (EHIP), Backnang (Priv. FH);20241;99999;6;
822;61328;Duale Hochschule Sachsen (FH);20251;99999;6;
823;10435;German University of Digital Science (GUDS), Potsdam (Priv. U);20252;99999;1;
824;50145;Hochschule für Kirchenmusik Rottenburg (Kirchl. Kunst-H);20262;99999;5;
825;50147;Hochschule für Kirchenmusik Tübingen (Kirchl. Kunst-H);20262;99999;5;
826;50149;Hochschule für Kirchenmusik Heidelberg (Kirchl. Kunst-H);20262;99999;5;
900;89805;Sonstige deutsche Hochschulen;20042;99999;8;
950;89850;Berufsakademie in Deutschland;20171;99999;8;
999;99905;Hochschulen im Ausland;20042;99999;9;
@ -505,13 +499,13 @@ A22;60835;Europäische FH (EUFH) in Rostock (Priv. FH);20171;99999;6; @@ -505,13 +499,13 @@ A22;60835;Europäische FH (EUFH) in Rostock (Priv. FH);20171;99999;6;
A23;60944;FH des Mittelstandes (FHM) in Hannover (Priv. FH);20162;99999;6;
A24;60830;FH des Mittelstandes (FHM) in Rostock (Priv. FH);20252;99999;6;
A25;60825;Hochschule für angewandte Wissenschaften der Bundesagentur für Arbeit in Schwerin (FH);20222;99999;6;
A26;60166;Macromedia University of Applied Sciences Potsdam, Campus Stuttgart und Freiburg (Priv. FH);20252;99999;6;
A26;60166;H Macromedia für angewandte Wissenschaften Potsdam, Campus Stuttgart und Freiburg (Priv. FH);20252;99999;6;
A27;61062;Macromedia University of Applied Sciences Potsdam, Campus Köln (Priv. FH);20252;99999;6;
A28;60678;Macromedia University of Applied Sciences Potsdam, Campus Hamburg (Priv. FH) ;20252;99999;6;
A29;60338;Macromedia University of Applied Sciences Potsdam, Campus Berlin (Priv. FH);20252;99999;6;
A30;60672;Health Innovation University of Applied Sciences Berlin in Hamburg (Priv. FH);20261;99999;6;
A31;60249;Health Innovation University of Applied Sciences Berlin in München (Priv. FH) ;20261;99999;6;
A32;60188;Health Innovation University of Applied Sciences Berlin in Stuttgart (Priv. FH) ;20261;99999;6;
A28;60678;Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Hamburg (Priv. FH) ;20252;99999;6;
A29;60338;Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Berlin (Priv. FH);20252;99999;6;
A30;60672;IB Hochschule für Gesundheit und Soziales Berlin in Hamburg (Priv. FH);20192;99999;6;
A31;60249;IB Hochschule für Gesundheit und Soziales Berlin in München (Priv. FH) ;20192;99999;6;
A32;60188;IB Hochschule für Gesundheit und Soziales Berlin in Stuttgart (Priv. FH) ;20192;99999;6;
A33;60758;Media University of Applied Sciences Berlin, Campus Frankfurt (Priv. FH);20242;99999;6;
A34;60670;BSP Business and Law School - Hochschule für Management und Recht Berlin in Hamburg (Priv. FH) ;20192;99999;6;
A36;60248;Mediadesign Hochschule Berlin in München (Priv. FH);20171;99999;6;
@ -527,6 +521,7 @@ A45;60668;H für Ökonomie und Management Essen in Hamburg (Priv. FH);20171;9999 @@ -527,6 +521,7 @@ A45;60668;H für Ökonomie und Management Essen in Hamburg (Priv. FH);20171;9999
A46;60525;H für Ökonomie und Management Essen in Bremen (Priv. FH);20171;99999;6;
A47;60164;H für Ökonomie und Management Essen in Karlsruhe, Mannheim und Stuttgart (Priv. FH);20201;99999;6;
A48;60258;FH des Mittelstandes (FHM) in Bamberg (Priv. FH) ;20171;99999;6;
A49;61040;IB Hochschule für Gesundheit und Soziales Berlin in Köln (Priv. FH);20192;99999;6;
A50;61041;Mediadesign Hochschule Berlin in Düsseldorf (Priv. FH) ;20171;99999;6;
A51;60675;University of Europe for Applied Sciences Potsdam in Hamburg (Priv. FH);20202;99999;6;
A52;61155;CBS International Business School, Campus Mainz (Priv. FH) ;20201;99999;6;
@ -537,7 +532,7 @@ A57;60168;International School of Management Dortmund in Stuttgart (Priv. FH);20 @@ -537,7 +532,7 @@ A57;60168;International School of Management Dortmund in Stuttgart (Priv. FH);20
A58;60354;FH des Mittelstandes (FHM) in Berlin (Priv. FH) ;20182;99999;6;
A59;60649;International School of Management Dortmund in Hamburg (Priv. FH) ;20182;99999;6;
A60;60165;IU Internationale Hochschule Erfurt in Freiburg, Mannheim und Stuttgart (Priv. FH) ;20222;99999;6;
A61;61331;Macromedia University of Applied Sciences Potsdam, Campus Leipzig (Priv. FH);20252;99999;6;
A61;61331;Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Leipzig (Priv. FH);20252;99999;6;
A62;61650;IU Internationale Hochschule Erfurt in Erfurt (Priv. FH) ;20211;99999;6;
A63;60680;IU Internationale Hochschule Erfurt in Hamburg (Priv. FH);20211;99999;6;
A64;60780;International School of Management Dortmund in Frankfurt (Priv. FH);20192;99999;6;
@ -548,7 +543,7 @@ A68;60667;SRH University of Applied Sciences Heidelberg in Hamburg (Priv. FH) ;2 @@ -548,7 +543,7 @@ A68;60667;SRH University of Applied Sciences Heidelberg in Hamburg (Priv. FH) ;2
A69;61220;H für Ökonomie und Management Essen in Saarbrücken (Priv. FH) ;20202;99999;6;
A70;61333;IU Internationale Hochschule Erfurt in Leipzig und Dresden (Priv. FH);20221;99999;6;
A71;60269;HSD Hochschule Döpfer Potsdam in Regensburg (Priv. FH);20222;99999;6;
A72;60776;Macromedia University of Applied Sciences Potsdam, Campus Frankfurt a. M. (Priv. FH);20252;99999;6;
A72;60776;Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Frankfurt a. M. (Priv. FH);20252;99999;6;
A73;60358;Europäische FH (EUFH) in Berlin (Priv. FH);20221;99999;6;
A74;61160;IU Internationale Hochschule Erfurt in Mainz (Priv. FH);20221;99999;6;
A75;61545;IU Internationale Hochschule Erfurt in Lübeck (Priv. FH);20221;99999;6;
@ -557,14 +552,11 @@ A77;10265;Charlotte Fresenius Hochschule Wiesbaden in München (Priv. U);20222;9 @@ -557,14 +552,11 @@ A77;10265;Charlotte Fresenius Hochschule Wiesbaden in München (Priv. U);20222;9
A78;10635;Charlotte Fresenius Hochschule Wiesbaden in Hamburg (Priv. U);20222;99999;1;
A79;60424;HSD Hochschule Döpfer Potsdam in Potsdam (Priv. FH);20222;99999;6;
A80;61430;Steinbeis Hochschule in Magdeburg (Priv. FH);20222;99999;6;
A81;11625;HMU Health and Medical University Erfurt in Erfurt (Priv. U);20231;20261;1;
A82;11077;Charlotte Fresenius Hochschule Wiesbaden in Köln (Priv. U);20242;99999;1;
A83;61542;SRH University of Applied Sciences Heidelberg in Heide (Priv. FH);20242;99999;6;
A84;60530;SRH University of Applied Sciences Heidelberg in Bremen (Priv. FH);20241;99999;6;
A85;11072;HMU Health and Medical University Potsdam in Düsseldorf (Priv. U);20252;99999;1;
A85;11072;HMU Health and Medical University Potsdam in Düsseldof (Priv. U);20252;99999;1;
A86;60840;CBS International Business School, Campus Rostock (Priv. FH);20252;99999;6;
A87;60455;Macromedia University of Applied Sciences Potsdam, Campus Potsdam (Priv. FH);20252;99999;6;
A88;70810;Hochschule des Bundes für öffentliche Verwaltung, Rostock;20261;99999;7;
A89;60648;HSD Hochschule Döpfer Potsdam in Hamburg (Priv. FH);20262;99999;6;
A90;11076;WHU - Otto Beisheim Hochschule Vallendar in Düsseldorf (Priv. U);20262;99999;1;
A91;10267;HMU Health and Medical University Potsdam Campus München (Priv. U);20262;99999;1;
A87;60455;Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Potsdam (Priv. FH);20252;99999;6;
991;10921;HIS Test Eigene Hochschule;20042;99999;1;

1 001 10725 U Kassel 20042 99999 1
2 002 60515 APOLLON H der Gesundheitswirtschaft Bremen (Priv. FH) 20102 99999 6
3 003 60265 Macromedia University of Applied Sciences Potsdam, Campus München (Priv. FH) Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus München (Priv. FH) 20252 99999 6
4 004 61074 FH der Diakonie Bielefeld-Bethel (Kirchl. FH) 20171 99999 6
5 006 60129 Hochschule für angewandte Wissenschaften der Bundesagentur für Arbeit in Mannheim (FH) 20222 99999 6
6 008 11034 U Duisburg-Essen 20062 99999 1
8 013 11065 U Siegen 20042 99999 1
9 014 11070 U Wuppertal 20042 99999 1
10 015 11040 Fernuniversität Hagen 20042 99999 1
11 017 60333 Touro College Berlin (Priv. FH) 20062 99999 6
12 018 10315 Charite - Universitätsmedizin Berlin 20042 99999 1
13 019 10410 Europa-U Viadrina Frankfurt (Oder) 20042 99999 1
14 020 10320 Humboldt-Universität Berlin 20042 99999 1
39 068 10335 Hertie School of Governance Berlin (Priv. U) 20171 99999 1
40 069 10615 HafenCity Universität Hamburg 20052 99999 1
41 070 60335 bbw Hochschule Berlin (Priv. FH) 20092 99999 6
42 071 41012 H für Kirchenmusik Witten (Kirchl.-Theol. H) H für Kirchenmusik Herford-Witten (Kirchl.-Theol. H) 20252 20211 99999 4
43 072 60264 Internationale Hochschule SDI München-Hochschule für angewandte Wissenschaften (Priv. FH) 20192 99999 6
44 073 61640 SRH University of Applied Sciences Heidelberg in Gera (Priv. FH) 20242 99999 6
45 074 70910 Norddeutsche Hochschule für Rechtspflege Hildesheim (Verw-FH) 20171 99999 7
46 075 70930 Kommunale H für Verwaltung in Niedersachsen, Hannover (Priv. Verw-FH) 20171 99999 7
47 076 60347 Health Innovation University of Applied Sciences Berlin in Berlin (Priv. FH) IB Hochschule für Gesundheit und Soziales Berlin in Berlin (Priv. FH) 20261 20192 99999 6
48 079 60336 Akkon Hochschule Berlin (Priv. FH) 20171 99999 6
49 080 10620 Helmut-Schmidt-Universität Hamburg 20042 99999 1
50 081 10240 U der Bundeswehr München 20042 99999 1
75 116 10710 U Frankfurt a.M. 20042 99999 1
76 117 10715 U Gießen 20042 99999 1
77 118 10730 U Marburg 20042 99999 1
78 119 11135 WHU - Otto Beisheim Hochschule Vallendar in Vallendar (Priv. U) Wissenschaftliche H für Unternehmensführung, Vallendar (Priv. U) 20262 20171 99999 1
79 120 11130 U Trier 20042 99999 1
80 121 11105 Rheinland-Pfälzische Technische Universität 20231 99999 1
81 122 11115 U Mainz 20042 99999 1
104 148 11005 TH Aachen (U) 20171 99999 1
105 149 11075 Universität Witten-Herdecke (Priv. U) 20171 99999 1
106 150 61048 H für Finanzwirtschaft & Management Bonn (Priv. FH) 20201 99999 6
107 151 60765 CVJM-Hochschule Kassel (Priv. FH) 20091 99999 6
108 152 10350 International Psychoanalytic University Berlin (Priv. U) 20171 99999 1
109 153 10705 TU Darmstadt 20042 99999 1
110 154 10740 EBS U für Wirtschaft und Recht (Priv. U) 20171 99999 1
115 159 10135 U Stuttgart 20042 99999 1
116 160 60367 Quadriga Hochschule Berlin (Priv. FH) 20101 99999 6
117 163 10235 TU München in München, Straubing, Garching und Weihenstephan 20182 99999 1
118 168 61065 CBS International Business School, Campus Köln, Neuss und Solingen (Priv. FH) CBS International Business School, Campus Köln und Neuss (Priv. FH) 20262 20242 99999 6
119 169 10310 TU Berlin 20042 99999 1
120 170 10325 ESCP Europe Wirtschaftshochschule Berlin (Priv. U) 20171 99999 1
121 171 10245 H für Politik München (U) 20171 99999 1
156 224 60361 Hochschule für Soziale Arbeit und Pädagogik (HSAP), Berlin (Priv. FH) 20241 99999 6
157 227 41035 Kirchliche Hochschule Wuppertal (Kirchl.-Theol. H) 20241 99999 4
158 228 61059 IST-Hochschule für Management Düsseldorf (Priv. FH) 20131 99999 6
159 229 60364 Whitecliffe University of Applied Sciences Berlin (priv. FH) Berlin International University of Applied Sciences (Priv. FH) 20261 20181 99999 6
160 230 10175 H für jüdische Studien Heidelberg (Kirchl. U) 20171 99999 1
161 232 40715 Luth.-Theologische H Oberursel (Kirchl.-Theol. H) 20171 99999 4
162 235 41405 Theol. H Friedensau (Kirchl.-Theol. H) 20171 99999 4
218 308 51045 Hochschule der bildenden Künste (HBK) Essen (Priv. Kunst-H) 20181 99999 5
219 309 61070 HSD Hochschule Döpfer Potsdam in Köln (Priv. FH) 20222 99999 6
220 310 11505 EUF Europa-Universität Flensburg 20162 99999 1
221 312 60177 Hochschule für Kommunikation und Gestaltung (Priv. FH) 20142 99999 6
222 313 50330 Barenboim-Said Akademie Berlin (Priv. Kunst-H) 20171 99999 5
223 314 60357 CODE University of Applied Sciences Berlin (Priv. FH) 20172 99999 6
224 323 61150 H für Gesellschaftsgestaltung Koblenz (Priv. FH) 20231 99999 6
229 336 60345 Digital Business University Berlin (Priv. FH) 20192 99999 6
230 337 10227 Technische Universität Nürnberg 20211 99999 1
231 343 60608 Berufliche Hochschule Hamburg (FH) 20212 99999 6
344 11625 HMU Health and Medical University Erfurt (Priv. U) 20262 99999 1
232 349 60440 XU Exponential University Potsdam (Priv. FH) 20192 99999 6
233 350 10415 U Potsdam 20042 99999 1
234 364 60445 Gisma University of Applied Sciences Potsdam (Priv. FH) 20242 99999 6
273 426 B0718 Deutsche Berufsakademie Sport und Gesundheit (dba) in Baunatal (Private BA) 20172 99999 B
274 427 B0945 Berufsakademie Wilhelmshaven (Private BA) 20192 99999 B
275 428 B1230 Berufsakademie Heimerer GmbH, Quierschied (Private BA) 20202 99999 B
468 60276 Promotionszentrum MeVuT – Menschenorient. Forsch. für innova. Versorgung und Teilhabe, München 20262 99999 6
469 61162 Promotionscluster Angewandte Informatik, Trier 20261 99999 6
470 61164 Promotionscluster Medical and Environmental Life Sciences, Kaiserslautern 20261 99999 6
471 61166 Promotionscluster Nachhaltige Technik und Naturwissenschaften, Koblenz 20261 99999 6
472 60278 Promotionszentrum Prisma Health - Deggendorf 20262 99999 6
473 60299 CAF - Promotionszentrum LiWa - Technische Hochschule Würzburg-Schweinfurt 20262 99999 6
276 474 60298 Promotionszentrum Integrierte Mobilität - München 20252 99999 6
277 475 60281 Promotionszentrum Advanced Building Technologies, TH Rosenheim 20242 99999 6
278 476 60280 Promotionszentrum NITRO, TH Augsburg 20242 99999 6
368 638 71305 Hochschule Meißen (FH) und Fortbildungszentrum (Verw-FH) 20172 99999 7
369 639 60740 Wilhelm Büchner Hochschule Darmstadt (Priv. Fern-FH) 20082 99999 6
370 640 60755 DIPLOMA - FH Nordhessen (Priv. FH) 20092 99999 6
371 641 61051 Europäische FH (EUFH) in Brühl, Köln, Neuss und Rheine (Priv. FH) 20182 20262 99999 6
372 643 60430 Theologische Hochschule Elstal (Kirchl. FH) 20171 99999 6
373 651 61105 Technische Hochschule Bingen (FH) 20162 99999 6
374 652 61110 Hochschule Kaiserslautern (FH) 20142 99999 6
381 665 61120 Hochschule für Wirtschaft und Gesellschaft Ludwigshafen (FH) 20191 99999 6
382 666 61135 Hochschule Worms (FH) 20142 99999 6
383 667 61125 Hochschule Mainz (FH) 20142 99999 6
384 668 61225 60263 Hochschule für angewandtes Management, Teltow (Priv. FH) Hochschule für angewandtes Management, Ismaning (Priv. FH) 20261 20172 99999 6
385 669 60745 Provadis School of Intern. Management and Technology, Frankfurt a.M. (Priv. FH) 20042 99999 6
386 671 60103 Hochschule Aalen - Technik und Wirtschaft (FH) 20161 99999 6
387 672 60109 H Biberach a. d. Riss (FH) 20171 99999 6
459 792 60410 Hochschule für nachhaltige Entwicklung Eberswalde (FH) 20102 99999 6
460 794 60425 Technische Hochschule Wildau (FH) 20171 99999 6
461 795 60420 FH Potsdam 20042 99999 6
462 796 10340 Steinbeis Hochschule in Berlin (Priv. U) 20222 99999 1
463 797 60356 SRH University of Applied Sciences Heidelberg in Berlin (Priv. FH) 20242 99999 6
464 799 70610 Norddeutsche Akademie für Finanzen und Steuerrecht Hamburg (Verw-FH) 20171 99999 7
465 800 61420 Hochschule Merseburg (FH) 20102 99999 6
480 821 60150 Europäische Hochschule für Innovation und Perspektive (EHIP), Backnang (Priv. FH) 20241 99999 6
481 822 61328 Duale Hochschule Sachsen (FH) 20251 99999 6
482 823 10435 German University of Digital Science (GUDS), Potsdam (Priv. U) 20252 99999 1
824 50145 Hochschule für Kirchenmusik Rottenburg (Kirchl. Kunst-H) 20262 99999 5
825 50147 Hochschule für Kirchenmusik Tübingen (Kirchl. Kunst-H) 20262 99999 5
826 50149 Hochschule für Kirchenmusik Heidelberg (Kirchl. Kunst-H) 20262 99999 5
483 900 89805 Sonstige deutsche Hochschulen 20042 99999 8
484 950 89850 Berufsakademie in Deutschland 20171 99999 8
485 999 99905 Hochschulen im Ausland 20042 99999 9
499 A23 60944 FH des Mittelstandes (FHM) in Hannover (Priv. FH) 20162 99999 6
500 A24 60830 FH des Mittelstandes (FHM) in Rostock (Priv. FH) 20252 99999 6
501 A25 60825 Hochschule für angewandte Wissenschaften der Bundesagentur für Arbeit in Schwerin (FH) 20222 99999 6
502 A26 60166 Macromedia University of Applied Sciences Potsdam, Campus Stuttgart und Freiburg (Priv. FH) H Macromedia für angewandte Wissenschaften Potsdam, Campus Stuttgart und Freiburg (Priv. FH) 20252 99999 6
503 A27 61062 Macromedia University of Applied Sciences Potsdam, Campus Köln (Priv. FH) 20252 99999 6
504 A28 60678 Macromedia University of Applied Sciences Potsdam, Campus Hamburg (Priv. FH) Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Hamburg (Priv. FH) 20252 99999 6
505 A29 60338 Macromedia University of Applied Sciences Potsdam, Campus Berlin (Priv. FH) Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Berlin (Priv. FH) 20252 99999 6
506 A30 60672 Health Innovation University of Applied Sciences Berlin in Hamburg (Priv. FH) IB Hochschule für Gesundheit und Soziales Berlin in Hamburg (Priv. FH) 20261 20192 99999 6
507 A31 60249 Health Innovation University of Applied Sciences Berlin in München (Priv. FH) IB Hochschule für Gesundheit und Soziales Berlin in München (Priv. FH) 20261 20192 99999 6
508 A32 60188 Health Innovation University of Applied Sciences Berlin in Stuttgart (Priv. FH) IB Hochschule für Gesundheit und Soziales Berlin in Stuttgart (Priv. FH) 20261 20192 99999 6
509 A33 60758 Media University of Applied Sciences Berlin, Campus Frankfurt (Priv. FH) 20242 99999 6
510 A34 60670 BSP Business and Law School - Hochschule für Management und Recht Berlin in Hamburg (Priv. FH) 20192 99999 6
511 A36 60248 Mediadesign Hochschule Berlin in München (Priv. FH) 20171 99999 6
521 A46 60525 H für Ökonomie und Management Essen in Bremen (Priv. FH) 20171 99999 6
522 A47 60164 H für Ökonomie und Management Essen in Karlsruhe, Mannheim und Stuttgart (Priv. FH) 20201 99999 6
523 A48 60258 FH des Mittelstandes (FHM) in Bamberg (Priv. FH) 20171 99999 6
524 A49 61040 IB Hochschule für Gesundheit und Soziales Berlin in Köln (Priv. FH) 20192 99999 6
525 A50 61041 Mediadesign Hochschule Berlin in Düsseldorf (Priv. FH) 20171 99999 6
526 A51 60675 University of Europe for Applied Sciences Potsdam in Hamburg (Priv. FH) 20202 99999 6
527 A52 61155 CBS International Business School, Campus Mainz (Priv. FH) 20201 99999 6
532 A58 60354 FH des Mittelstandes (FHM) in Berlin (Priv. FH) 20182 99999 6
533 A59 60649 International School of Management Dortmund in Hamburg (Priv. FH) 20182 99999 6
534 A60 60165 IU Internationale Hochschule Erfurt in Freiburg, Mannheim und Stuttgart (Priv. FH) 20222 99999 6
535 A61 61331 Macromedia University of Applied Sciences Potsdam, Campus Leipzig (Priv. FH) Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Leipzig (Priv. FH) 20252 99999 6
536 A62 61650 IU Internationale Hochschule Erfurt in Erfurt (Priv. FH) 20211 99999 6
537 A63 60680 IU Internationale Hochschule Erfurt in Hamburg (Priv. FH) 20211 99999 6
538 A64 60780 International School of Management Dortmund in Frankfurt (Priv. FH) 20192 99999 6
543 A69 61220 H für Ökonomie und Management Essen in Saarbrücken (Priv. FH) 20202 99999 6
544 A70 61333 IU Internationale Hochschule Erfurt in Leipzig und Dresden (Priv. FH) 20221 99999 6
545 A71 60269 HSD Hochschule Döpfer Potsdam in Regensburg (Priv. FH) 20222 99999 6
546 A72 60776 Macromedia University of Applied Sciences Potsdam, Campus Frankfurt a. M. (Priv. FH) Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Frankfurt a. M. (Priv. FH) 20252 99999 6
547 A73 60358 Europäische FH (EUFH) in Berlin (Priv. FH) 20221 99999 6
548 A74 61160 IU Internationale Hochschule Erfurt in Mainz (Priv. FH) 20221 99999 6
549 A75 61545 IU Internationale Hochschule Erfurt in Lübeck (Priv. FH) 20221 99999 6
552 A78 10635 Charlotte Fresenius Hochschule Wiesbaden in Hamburg (Priv. U) 20222 99999 1
553 A79 60424 HSD Hochschule Döpfer Potsdam in Potsdam (Priv. FH) 20222 99999 6
554 A80 61430 Steinbeis Hochschule in Magdeburg (Priv. FH) 20222 99999 6
555 A81 11625 HMU Health and Medical University Erfurt in Erfurt (Priv. U) 20231 20261 1
556 A82 11077 Charlotte Fresenius Hochschule Wiesbaden in Köln (Priv. U) 20242 99999 1
557 A83 61542 SRH University of Applied Sciences Heidelberg in Heide (Priv. FH) 20242 99999 6
558 A84 60530 SRH University of Applied Sciences Heidelberg in Bremen (Priv. FH) 20241 99999 6
559 A85 11072 HMU Health and Medical University Potsdam in Düsseldorf (Priv. U) HMU Health and Medical University Potsdam in Düsseldof (Priv. U) 20252 99999 1
560 A86 60840 CBS International Business School, Campus Rostock (Priv. FH) 20252 99999 6
561 A87 60455 Macromedia University of Applied Sciences Potsdam, Campus Potsdam (Priv. FH) Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Potsdam (Priv. FH) 20252 99999 6
A88 70810 Hochschule des Bundes für öffentliche Verwaltung, Rostock 20261 99999 7
A89 60648 HSD Hochschule Döpfer Potsdam in Hamburg (Priv. FH) 20262 99999 6
A90 11076 WHU - Otto Beisheim Hochschule Vallendar in Düsseldorf (Priv. U) 20262 99999 1
A91 10267 HMU Health and Medical University Potsdam Campus München (Priv. U) 20262 99999 1
562 991 10921 HIS Test Eigene Hochschule 20042 99999 1

47
src/de/statspez/plausi/astat/csv/HochschuleErsteinschreibung.csv

@ -3,15 +3,15 @@ @@ -3,15 +3,15 @@
0013;;U Kassel in Kassel (Kunsthochschule);20171;99999;
0014;;U Kassel in Kassel (Intern. Management School);20171;99999;
0020;;APOLLON H der Gesundheitswirtschaft Bremen (Priv. FH);20171;99999;
0030;;Macromedia University of Applied Sciences Potsdam, Campus München (Priv. FH);20252;99999;
0032;;Macromedia University of Applied Sciences Potsdam, Campus Berlin (Priv. FH);20252;99999;
0033;;Macromedia University of Applied Sciences Potsdam, Campus Hamburg (Priv. FH);20252;99999;
0030;;Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus München (Priv. FH);20252;99999;
0032;;Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Berlin (Priv. FH);20252;99999;
0033;;Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Hamburg (Priv. FH);20252;99999;
0034;;Macromedia University of Applied Sciences Potsdam, Campus Köln (Priv. FH);20252;99999;
0035;;Macromedia University of Applied Sciences Potsdam, Campus Stuttgart (Priv. FH);20252;99999;
0036;;Macromedia University of Applied SciencesPotsdam, Campus Freiburg i. Br. (Priv. FH);20252;99999;
0037;;Macromedia University of Applied Sciences Potsdam, Campus Leipzig (Priv. FH) ;20252;99999;
0038;;Macromedia University of Applied Sciences Potsdam, Campus Frankfurt a. M. (Priv. FH);20252;99999;
0039;;Macromedia University of Applied Sciences Potsdam, Campus Potsdam (Priv. FH);20252;99999;
0035;;Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Stuttgart (Priv. FH);20252;99999;
0036;;Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Freiburg i. Br. (Priv. FH);20252;99999;
0037;;Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Leipzig (Priv. FH) ;20252;99999;
0038;;Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Frankfurt a. M. (Priv. FH);20252;99999;
0039;;Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Potsdam (Priv. FH);20252;99999;
0040;;FH der Diakonie Bielefeld-Bethel (Kirchl. FH);20171;99999;
0050;;German Graduate School of Management & Law Heilbronn (Priv. FH);20171;99999;
0060;;Hochschule für angewandte Wissenschaften der Bundesagentur für Arbeit in Mannheim (FH);20222;99999;
@ -60,16 +60,16 @@ @@ -60,16 +60,16 @@
0680;;Hertie School of Governance Berlin (Priv. U);20171;99999;
0690;;HafenCity Universität Hamburg;20171;99999;
0700;;bbw Hochschule Berlin (Priv. FH);20171;99999;
0710;;H für Kirchenmusik Witten (Kirchl.-Theol. H);20252;99999;
0710;;H für Kirchenmusik Herford-Witten (Kirchl.-Theol. H);20211;99999;
0720;;Internationale Hochschule SDI München-Hochschule für angewandte Wissenschaften (Priv. FH) ;20192;99999;
0730;;SRH University of Applied Sciences Heidelberg in Gera (Priv. FH);20242;99999;
0740;;Norddeutsche Hochschule für Rechtspflege Hildesheim (Verw-FH);20171;99999;
0750;;Kommunale H für Verwaltung in Niedersachsen, Hannover (Priv. Verw-FH);20171;99999;
0760;;Health Innovation University of Applied Sciences Berlin in Berlin (Priv. FH);20261;99999;
0761;;Health Innovation University of Applied Sciences Berlin in Stuttgart (Priv. FH) ;20261;99999;
0762;;Health Innovation University of Applied Sciences Berlin in München (Priv. FH) ;20261;99999;
0763;;Health Innovation University of Applied Sciences Berlin in Hamburg (Priv. FH) ;20261;99999;
0764;;Health Innovation University of Applied Sciences Berlin in Köln (Priv. FH);20261;99999;
0760;;IB Hochschule für Gesundheit und Soziales Berlin in Berlin (Priv. FH);20192;99999;
0761;;IB Hochschule für Gesundheit und Soziales Berlin in Stuttgart (Priv. FH) ;20192;99999;
0762;;IB Hochschule für Gesundheit und Soziales Berlin in München (Priv. FH) ;20192;99999;
0763;;IB Hochschule für Gesundheit und Soziales Berlin in Hamburg (Priv. FH) ;20192;99999;
0764;;IB Hochschule für Gesundheit und Soziales Berlin in Köln (Priv. FH);20192;99999;
0790;;Akkon Hochschule Berlin (Priv. FH);20171;99999;
0800;;Helmut-Schmidt-Universität Hamburg;20171;99999;
0811;;U der Bundeswehr München (FB Universitätsstudiengänge);20171;99999;
@ -105,8 +105,7 @@ @@ -105,8 +105,7 @@
1160;;U Frankfurt a.M.;20171;99999;
1170;;U Gießen;20171;99999;
1180;;U Marburg;20171;99999;
1190;;WHU - Otto Beisheim Hochschule Vallendar in Vallendar (Priv. U);20262;99999;
1191;;WHU - Otto Beisheim Hochschule Vallendar in Düsseldorf (Priv. U);20262;99999;
1190;;Wissenschaftliche H für Unternehmensführung, Vallendar (Priv. U);20171;99999;
1200;;U Trier;20171;99999;
1210;;Rheinland-Pfälzische Technische Universität in Kaiserslautern;20231;99999;
1211;;Rheinland-Pfälzische Technische Universität in Landau;20231;99999;
@ -166,7 +165,6 @@ @@ -166,7 +165,6 @@
1682;;CBS International Business School, Campus Brühl (Priv. FH);20222;99999;
1683;;CBS International Business School, Campus Neuss (Priv. FH);20222;99999;
1684;;CBS International Business School, Campus Rostock (Priv. FH);20252;99999;
1685;;CBS International Business School, Campus Solingen (Priv. FH);20262;99999;
1690;;TU Berlin;20171;99999;
1700;;ESCP Europe Wirtschaftshochschule Berlin (Priv. U);20171;99999;
1710;;H für Politik München (U);20171;99999;
@ -218,7 +216,7 @@ @@ -218,7 +216,7 @@
2271;;Kirchliche Hochschule Wuppertal / Bethel in Bethel (Kirchl.-Theol. H);20182;99999;
2272;;Kirchliche Hochschule Wuppertal (Kirchl.-Theol. H);20241;99999;
2280;;IST-Hochschule für Management Düsseldorf (Priv. FH);20171;99999;
2290;;Whitecliffe University of Applied Sciences Berlin (priv. FH);20261;99999;
2290;;Berlin International University of Applied Sciences (Priv. FH);20181;99999;
2300;;H für jüdische Studien Heidelberg (Kirchl. U);20171;99999;
2320;;Luth.-Theologische H Oberursel (Kirchl.-Theol. H) ;20171;99999;
2350;;Theol. H Friedensau (Kirchl.-Theol. H);20171;99999;
@ -300,7 +298,6 @@ @@ -300,7 +298,6 @@
3090;;HSD Hochschule Döpfer Potsdam in Köln (Priv. FH);20222;99999;
3091;;HSD Hochschule Döpfer Potsdam in Regensburg (Priv. FH);20222;99999;
3092;;HSD Hochschule Döpfer Potsdam in Potsdam (Priv. FH);20222;99999;
3093;;HSD Hochschule Döpfer Potsdam in Hamburg (Priv. FH);20262;99999;
3100;;EUF Europa-Universität Flensburg;20171;99999;
3121;;Hochschule für Kommunikation und Gestaltung in Stuttgart (Priv. FH);20171;99999;
3122;;Hochschule für Kommunikation und Gestaltung in Ulm (Priv. FH);20171;99999;
@ -315,11 +312,9 @@ @@ -315,11 +312,9 @@
3290;;HMU Health and Medical University Potsdam in Potsdam (Priv. U);20252;99999;
3291;;HMU Health and Medical University Erfurt in Erfurt (Priv. U);20231;99999;
3292;;HMU Health and Medical University Potsdam in Düsseldof (Priv. U);20252;99999;
3293;;HMU Health and Medical University Potsdam Campus München (Priv. U);20262;99999;
3360;;Digital Business University Berlin (Priv. FH);20192;99999;
3370;;Technische Universität Nürnberg;20211;99999;
3430;;Berufliche Hochschule Hamburg (FH);20212;99999;
3440;;HMU Health and Medical University Erfurt (Priv. U);20262;99999;
3490;;XU Exponential University Potsdam (Priv. FH);20192;99999;
3500;;U Potsdam;20171;99999;
3640;;Gisma University of Applied Sciences Potsdam (Priv. FH);20242;99999;
@ -338,9 +333,6 @@ @@ -338,9 +333,6 @@
3950;;Promotionskolleg NRW, Bochum (FH);20222;99999;
3971;;Brandenburgische TU Cottbus-Senftenberg in Cottbus;20171;99999;
3972;;Brandenburgische TU Cottbus-Senftenberg in Senftenberg;20171;99999;
4690;;Promotionscluster Angewandte Informatik, Trier;20261;99999;
4700;;Promotionscluster Medical and Environmental Life Sciences, Kaiserslautern;20261;99999;
4710;;Promotionscluster Nachhaltige Technik und Naturwissenschaften, Koblenz;20261;99999;
4940;;Deutsche Hochschule für angewandte Wissenschaften (DHAW), Potsdam (Priv. FH);20252;99999;
4950;;INU - Innovative University of Applied Sciences, Köln (Priv. FH);20241;99999;
4960;;media Akademie - Hochschule Stuttgart (Priv. FH);20171;99999;
@ -504,7 +496,6 @@ @@ -504,7 +496,6 @@
620D;;Hochschule des Bundes für öffentliche Verwaltung, FB Bundespolizei in Lübeck;20171;99999;
620E;;Hochschule des Bundes für öffentl. Verwaltung, FB Landwirtschaftliche Sozialversicherung in Kassel;20171;99999;
620F;;Hochschule des Bundes für öffentliche Verwaltung, FB Nachrichtendienste in Berlin ;20182;99999;
620G;;Hochschule des Bundes für öffentliche Verwaltung, Fachbereich Finanzen in Rostock;20261;99999;
6211;;h_da - H Darmstadt in Darmstadt (FH);20171;99999;
6212;;h_da - H Darmstadt in Dieburg (FH);20171;99999;
6220;;Frankfurt University of Applied Sciences (FH);20171;99999;
@ -516,7 +507,6 @@ @@ -516,7 +507,6 @@
6270;;Evangelische Hochschule Darmstadt (EHD), (Kirchl. FH);20171;99999;
6271;;Evangelische Hochschule Darmstadt (EHD) in Darmstadt (Kirchl. FH);20171;99999;
6272;;Evangelische Hochschule Darmstadt (EHD) in Schwalmstadt (Kirchl. FH);20171;99999;
6273;;Evangelische Hochschule Darmstadt (EHD) in Kassel (Kirchl. FH);20261;99999;
6281;;Hochschule Fresenius Idstein in Idstein (Priv. FH);20171;99999;
6282;;Hochschule Fresenius Idstein in Köln (Priv. FH);20171;99999;
6284;;Hochschule Fresenius Idstein in München (Priv. FH);20171;99999;
@ -562,7 +552,7 @@ @@ -562,7 +552,7 @@
6650;;Hochschule für Wirtschaft und Gesellschaft Ludwigshafen (FH);20191;99999;
6660;;Hochschule Worms (FH);20171;99999;
6670;;Hochschule Mainz (FH);20171;99999;
6680;;Hochschule für angewandtes Management, Teltow (Priv. FH);20261;99999;
6680;;Hochschule für angewandtes Management, Ismaning (Priv. FH);20172;99999;
6690;;Provadis School of Intern. Management and Technology, Frankfurt a.M. (Priv. FH);20171;99999;
6710;;Hochschule Aalen - Technik und Wirtschaft in Aalen (FH);20171;99999;
6711;;Hochschule Aalen - Technik und Wirtschaft in Schwäbisch Gmünd (FH);20171;99999;
@ -773,9 +763,6 @@ @@ -773,9 +763,6 @@
8226;;Duale Hochschule Sachsen - Plauen (FH);20251;99999;
8227;;Duale Hochschule Sachsen - Riesa (FH);20251;99999;
8230;;German University of Digital Science (GUDS), Potsdam (Priv. U);20252;99999;
8240;;Hochschule für Kirchenmusik Rottenburg (Kirchl. Kunst-H);20262;99999;
8250;;Hochschule für Kirchenmusik Tübingen (Kirchl. Kunst-H);20262;99999;
8260;;Hochschule für Kirchenmusik Heidelberg (Kirchl. Kunst-H);20262;99999;
9000;;Sonstige deutsche Hochschulen;20171;99999;
9990;;Hochschulen im Ausland;20171;99999;
9994;;HIS Test Eigene Hochschule;20171;99999;

1 0011 U Kassel in Kassel (ohne Kunsthochschule) 20171 99999
3 0013 U Kassel in Kassel (Kunsthochschule) 20171 99999
4 0014 U Kassel in Kassel (Intern. Management School) 20171 99999
5 0020 APOLLON H der Gesundheitswirtschaft Bremen (Priv. FH) 20171 99999
6 0030 Macromedia University of Applied Sciences Potsdam, Campus München (Priv. FH) Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus München (Priv. FH) 20252 99999
7 0032 Macromedia University of Applied Sciences Potsdam, Campus Berlin (Priv. FH) Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Berlin (Priv. FH) 20252 99999
8 0033 Macromedia University of Applied Sciences Potsdam, Campus Hamburg (Priv. FH) Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Hamburg (Priv. FH) 20252 99999
9 0034 Macromedia University of Applied Sciences Potsdam, Campus Köln (Priv. FH) 20252 99999
10 0035 Macromedia University of Applied Sciences Potsdam, Campus Stuttgart (Priv. FH) Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Stuttgart (Priv. FH) 20252 99999
11 0036 Macromedia University of Applied SciencesPotsdam, Campus Freiburg i. Br. (Priv. FH) Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Freiburg i. Br. (Priv. FH) 20252 99999
12 0037 Macromedia University of Applied Sciences Potsdam, Campus Leipzig (Priv. FH) Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Leipzig (Priv. FH) 20252 99999
13 0038 Macromedia University of Applied Sciences Potsdam, Campus Frankfurt a. M. (Priv. FH) Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Frankfurt a. M. (Priv. FH) 20252 99999
14 0039 Macromedia University of Applied Sciences Potsdam, Campus Potsdam (Priv. FH) Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Potsdam (Priv. FH) 20252 99999
15 0040 FH der Diakonie Bielefeld-Bethel (Kirchl. FH) 20171 99999
16 0050 German Graduate School of Management & Law Heilbronn (Priv. FH) 20171 99999
17 0060 Hochschule für angewandte Wissenschaften der Bundesagentur für Arbeit in Mannheim (FH) 20222 99999
60 0680 Hertie School of Governance Berlin (Priv. U) 20171 99999
61 0690 HafenCity Universität Hamburg 20171 99999
62 0700 bbw Hochschule Berlin (Priv. FH) 20171 99999
63 0710 H für Kirchenmusik Witten (Kirchl.-Theol. H) H für Kirchenmusik Herford-Witten (Kirchl.-Theol. H) 20252 20211 99999
64 0720 Internationale Hochschule SDI München-Hochschule für angewandte Wissenschaften (Priv. FH) 20192 99999
65 0730 SRH University of Applied Sciences Heidelberg in Gera (Priv. FH) 20242 99999
66 0740 Norddeutsche Hochschule für Rechtspflege Hildesheim (Verw-FH) 20171 99999
67 0750 Kommunale H für Verwaltung in Niedersachsen, Hannover (Priv. Verw-FH) 20171 99999
68 0760 Health Innovation University of Applied Sciences Berlin in Berlin (Priv. FH) IB Hochschule für Gesundheit und Soziales Berlin in Berlin (Priv. FH) 20261 20192 99999
69 0761 Health Innovation University of Applied Sciences Berlin in Stuttgart (Priv. FH) IB Hochschule für Gesundheit und Soziales Berlin in Stuttgart (Priv. FH) 20261 20192 99999
70 0762 Health Innovation University of Applied Sciences Berlin in München (Priv. FH) IB Hochschule für Gesundheit und Soziales Berlin in München (Priv. FH) 20261 20192 99999
71 0763 Health Innovation University of Applied Sciences Berlin in Hamburg (Priv. FH) IB Hochschule für Gesundheit und Soziales Berlin in Hamburg (Priv. FH) 20261 20192 99999
72 0764 Health Innovation University of Applied Sciences Berlin in Köln (Priv. FH) IB Hochschule für Gesundheit und Soziales Berlin in Köln (Priv. FH) 20261 20192 99999
73 0790 Akkon Hochschule Berlin (Priv. FH) 20171 99999
74 0800 Helmut-Schmidt-Universität Hamburg 20171 99999
75 0811 U der Bundeswehr München (FB Universitätsstudiengänge) 20171 99999
105 1160 U Frankfurt a.M. 20171 99999
106 1170 U Gießen 20171 99999
107 1180 U Marburg 20171 99999
108 1190 WHU - Otto Beisheim Hochschule Vallendar in Vallendar (Priv. U) Wissenschaftliche H für Unternehmensführung, Vallendar (Priv. U) 20262 20171 99999
1191 WHU - Otto Beisheim Hochschule Vallendar in Düsseldorf (Priv. U) 20262 99999
109 1200 U Trier 20171 99999
110 1210 Rheinland-Pfälzische Technische Universität in Kaiserslautern 20231 99999
111 1211 Rheinland-Pfälzische Technische Universität in Landau 20231 99999
165 1682 CBS International Business School, Campus Brühl (Priv. FH) 20222 99999
166 1683 CBS International Business School, Campus Neuss (Priv. FH) 20222 99999
167 1684 CBS International Business School, Campus Rostock (Priv. FH) 20252 99999
1685 CBS International Business School, Campus Solingen (Priv. FH) 20262 99999
168 1690 TU Berlin 20171 99999
169 1700 ESCP Europe Wirtschaftshochschule Berlin (Priv. U) 20171 99999
170 1710 H für Politik München (U) 20171 99999
216 2271 Kirchliche Hochschule Wuppertal / Bethel in Bethel (Kirchl.-Theol. H) 20182 99999
217 2272 Kirchliche Hochschule Wuppertal (Kirchl.-Theol. H) 20241 99999
218 2280 IST-Hochschule für Management Düsseldorf (Priv. FH) 20171 99999
219 2290 Whitecliffe University of Applied Sciences Berlin (priv. FH) Berlin International University of Applied Sciences (Priv. FH) 20261 20181 99999
220 2300 H für jüdische Studien Heidelberg (Kirchl. U) 20171 99999
221 2320 Luth.-Theologische H Oberursel (Kirchl.-Theol. H) 20171 99999
222 2350 Theol. H Friedensau (Kirchl.-Theol. H) 20171 99999
298 3090 HSD Hochschule Döpfer Potsdam in Köln (Priv. FH) 20222 99999
299 3091 HSD Hochschule Döpfer Potsdam in Regensburg (Priv. FH) 20222 99999
300 3092 HSD Hochschule Döpfer Potsdam in Potsdam (Priv. FH) 20222 99999
3093 HSD Hochschule Döpfer Potsdam in Hamburg (Priv. FH) 20262 99999
301 3100 EUF Europa-Universität Flensburg 20171 99999
302 3121 Hochschule für Kommunikation und Gestaltung in Stuttgart (Priv. FH) 20171 99999
303 3122 Hochschule für Kommunikation und Gestaltung in Ulm (Priv. FH) 20171 99999
312 3290 HMU Health and Medical University Potsdam in Potsdam (Priv. U) 20252 99999
313 3291 HMU Health and Medical University Erfurt in Erfurt (Priv. U) 20231 99999
314 3292 HMU Health and Medical University Potsdam in Düsseldof (Priv. U) 20252 99999
3293 HMU Health and Medical University Potsdam Campus München (Priv. U) 20262 99999
315 3360 Digital Business University Berlin (Priv. FH) 20192 99999
316 3370 Technische Universität Nürnberg 20211 99999
317 3430 Berufliche Hochschule Hamburg (FH) 20212 99999
3440 HMU Health and Medical University Erfurt (Priv. U) 20262 99999
318 3490 XU Exponential University Potsdam (Priv. FH) 20192 99999
319 3500 U Potsdam 20171 99999
320 3640 Gisma University of Applied Sciences Potsdam (Priv. FH) 20242 99999
333 3950 Promotionskolleg NRW, Bochum (FH) 20222 99999
334 3971 Brandenburgische TU Cottbus-Senftenberg in Cottbus 20171 99999
335 3972 Brandenburgische TU Cottbus-Senftenberg in Senftenberg 20171 99999
4690 Promotionscluster Angewandte Informatik, Trier 20261 99999
4700 Promotionscluster Medical and Environmental Life Sciences, Kaiserslautern 20261 99999
4710 Promotionscluster Nachhaltige Technik und Naturwissenschaften, Koblenz 20261 99999
336 4940 Deutsche Hochschule für angewandte Wissenschaften (DHAW), Potsdam (Priv. FH) 20252 99999
337 4950 INU - Innovative University of Applied Sciences, Köln (Priv. FH) 20241 99999
338 4960 media Akademie - Hochschule Stuttgart (Priv. FH) 20171 99999
496 620D Hochschule des Bundes für öffentliche Verwaltung, FB Bundespolizei in Lübeck 20171 99999
497 620E Hochschule des Bundes für öffentl. Verwaltung, FB Landwirtschaftliche Sozialversicherung in Kassel 20171 99999
498 620F Hochschule des Bundes für öffentliche Verwaltung, FB Nachrichtendienste in Berlin 20182 99999
620G Hochschule des Bundes für öffentliche Verwaltung, Fachbereich Finanzen in Rostock 20261 99999
499 6211 h_da - H Darmstadt in Darmstadt (FH) 20171 99999
500 6212 h_da - H Darmstadt in Dieburg (FH) 20171 99999
501 6220 Frankfurt University of Applied Sciences (FH) 20171 99999
507 6270 Evangelische Hochschule Darmstadt (EHD), (Kirchl. FH) 20171 99999
508 6271 Evangelische Hochschule Darmstadt (EHD) in Darmstadt (Kirchl. FH) 20171 99999
509 6272 Evangelische Hochschule Darmstadt (EHD) in Schwalmstadt (Kirchl. FH) 20171 99999
6273 Evangelische Hochschule Darmstadt (EHD) in Kassel (Kirchl. FH) 20261 99999
510 6281 Hochschule Fresenius Idstein in Idstein (Priv. FH) 20171 99999
511 6282 Hochschule Fresenius Idstein in Köln (Priv. FH) 20171 99999
512 6284 Hochschule Fresenius Idstein in München (Priv. FH) 20171 99999
552 6650 Hochschule für Wirtschaft und Gesellschaft Ludwigshafen (FH) 20191 99999
553 6660 Hochschule Worms (FH) 20171 99999
554 6670 Hochschule Mainz (FH) 20171 99999
555 6680 Hochschule für angewandtes Management, Teltow (Priv. FH) Hochschule für angewandtes Management, Ismaning (Priv. FH) 20261 20172 99999
556 6690 Provadis School of Intern. Management and Technology, Frankfurt a.M. (Priv. FH) 20171 99999
557 6710 Hochschule Aalen - Technik und Wirtschaft in Aalen (FH) 20171 99999
558 6711 Hochschule Aalen - Technik und Wirtschaft in Schwäbisch Gmünd (FH) 20171 99999
763 8226 Duale Hochschule Sachsen - Plauen (FH) 20251 99999
764 8227 Duale Hochschule Sachsen - Riesa (FH) 20251 99999
765 8230 German University of Digital Science (GUDS), Potsdam (Priv. U) 20252 99999
8240 Hochschule für Kirchenmusik Rottenburg (Kirchl. Kunst-H) 20262 99999
8250 Hochschule für Kirchenmusik Tübingen (Kirchl. Kunst-H) 20262 99999
8260 Hochschule für Kirchenmusik Heidelberg (Kirchl. Kunst-H) 20262 99999
766 9000 Sonstige deutsche Hochschulen 20171 99999
767 9990 Hochschulen im Ausland 20171 99999
768 9994 HIS Test Eigene Hochschule 20171 99999

64
src/de/statspez/plausi/astat/csv/Hochschulfachbereich.csv

@ -3,15 +3,15 @@ @@ -3,15 +3,15 @@
0013;10725102;U Kassel in Kassel (Kunsthochschule);20042;99999;001Y;2;1;CRS3035RES100mN3132800E4285400;1;
0014;10725103;U Kassel in Kassel (Intern. Management School);20171;99999;001Y;2;1;CRS3035RES100mN3135000E4286500;0;
0020;60515000;APOLLON H der Gesundheitswirtschaft Bremen (Priv. FH);20102;99999;002Z;4;0;CRS3035RES100mN3333300E4244600;0;
0030;60265000;Macromedia University of Applied Sciences Potsdam, Campus München (Priv. FH);20252;99999;003Z;4;0;CRS3035RES100mN2782700E4436700;0;
0032;60338000;Macromedia University of Applied Sciences Potsdam, Campus Berlin (Priv. FH);20252;99999;003W;4;0;CRS3035RES100mN3270200E4551000;0;
0033;60678000;Macromedia University of Applied Sciences Potsdam, Campus Hamburg (Priv. FH);20252;99999;003V;4;0;CRS3035RES100mN3382700E4320900;0;
0030;60265000;Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus München (Priv. FH);20252;99999;003Z;4;0;CRS3035RES100mN2782700E4436700;0;
0032;60338000;Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Berlin (Priv. FH);20252;99999;003W;4;0;CRS3035RES100mN3270200E4551000;0;
0033;60678000;Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Hamburg (Priv. FH);20252;99999;003V;4;0;CRS3035RES100mN3382700E4320900;0;
0034;61062000;Macromedia University of Applied Sciences Potsdam, Campus Köln (Priv. FH);20252;99999;003U;4;0;CRS3035RES100mN3096200E4106700;0;
0035;60166000;Macromedia University of Applied Sciences Potsdam, Campus Stuttgart (Priv. FH);20252;99999;003T;4;0;CRS3035RES100mN2855900E4263100;0;
0036;60166100;Macromedia University of Applied Sciences Potsdam, Campus Freiburg i. Br. (Priv. FH);20252;99999;003S;4;0;CRS3035RES100mN2766600E4159300;0;
0037;61331000;Macromedia University of Applied Sciences Potsdam, Campus Leipzig (Priv. FH) ;20252;99999;003P;4;0;CRS3035RES100mN3139700E4486400;0;
0038;60776000;Macromedia University of Applied Sciences Potsdam, Campus Frankfurt a. M. (Priv. FH);20252;99999;003Q;4;0;CRS3035RES100mN3003700E4222600;0;
0039;60455000;Macromedia University of Applied Sciences Potsdam, Campus Potsdam (Priv. FH);20252;99999;003N;4;0;CRS3035RES100mN3257800E4533500;0;
0035;60166000;Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Stuttgart (Priv. FH);20252;99999;003T;4;0;CRS3035RES100mN2855900E4263100;0;
0036;60166100;Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Freiburg i. Br. (Priv. FH);20252;99999;003S;4;0;CRS3035RES100mN2766600E4159300;0;
0037;61331000;Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Leipzig (Priv. FH) ;20252;99999;003P;4;0;CRS3035RES100mN3139700E4486400;0;
0038;60776000;Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Frankfurt a. M. (Priv. FH);20252;99999;003Q;4;0;CRS3035RES100mN3003700E4222600;0;
0039;60455000;Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Potsdam (Priv. FH);20252;99999;003N;4;0;CRS3035RES100mN3257800E4533500;0;
0040;61074000;FH der Diakonie Bielefeld-Bethel (Kirchl. FH);20171;99999;004Z;5;0;CRS3035RES100mN3212100E4219700;0;
0060;60129000;Hochschule für angewandte Wissenschaften der Bundesagentur für Arbeit in Mannheim (FH);20222;99999;006Z;1;0;CRS3035RES100mN2930300E4213300;0;
0061;60825000;Hochschule für angewandte Wissenschaften der Bundesagentur für Arbeit in Schwerin (FH);20222;99999;006Y;1;0;CRS3035RES100mN3395200E4414200;0;
@ -23,6 +23,7 @@ @@ -23,6 +23,7 @@
0130;11065000;U Siegen;20172;99999;013Z;2;1;CRS3035RES100mN3090600E4182100;1;
0140;11070000;U Wuppertal;20042;99999;014Z;2;1;CRS3035RES100mN3129900E4122000;1;
0150;11040000;Fernuniversität Hagen;20042;99999;015Z;2;1;CRS3035RES100mN3143700E4146400;1;
0170;60333000;Touro College Berlin (Priv. FH);20062;99999;017Z;4;0;CRS3035RES100mN3271000E4539100;0;
0180;10315000;Charité - Universitätsmedizin Berlin;20082;99999;018Z;2;1;CRS3035RES100mN3273500E4550200;1;
0190;10410000;Europa-U Viadrina Frankfurt (Oder);20042;99999;019Z;2;1;CRS3035RES100mN3257700E4631100;1;
0200;10320000;Humboldt-Universität Berlin;20042;99999;020Z;2;1;CRS3035RES100mN3272900E4551200;1;
@ -71,20 +72,21 @@ @@ -71,20 +72,21 @@
0680;10335000;Hertie School of Governance Berlin (Priv. U);20172;99999;068Z;4;0;CRS3035RES100mN3272400E4551000;0;
0690;10615000;HafenCity Universität Hamburg;20172;99999;069Z;2;0;CRS3035RES100mN3381400E4321200;1;
0700;60335000;bbw Hochschule Berlin (Priv. FH);20092;99999;070Z;4;0;CRS3035RES100mN3272000E4545900;0;
0710;41012000;H für Kirchenmusik Witten (Kirchl.-Theol. H);20252;99999;071Z;5;0;CRS3035RES100mN3150600E4135800;0;
0710;41012000;H für Kirchenmusik Herford-Witten (Kirchl.-Theol. H);20211;99999;071Z;5;0;CRS3035RES100mN3223200E4230900;0;
0720;60264000;Internationale Hochschule SDI München-Hochschule für angewandte Wissenschaften (Priv. FH);20192;99999;072Z;4;0;CRS3035RES100mN2777100E4435100;0;
0730;61640000;SRH University of Applied Sciences Heidelberg in Gera (Priv. FH);20242;99999;073Z;4;0;CRS3035RES100mN3087500E4466800;0;
0740;70910000;Norddeutsche Hochschule für Rechtspflege Hildesheim (Verw-FH);20171;99999;074Z;2;0;CRS3035RES100mN3226100E4317500;0;
0750;70930000;Kommunale H für Verwaltung in Niedersachsen, Hannover (Priv. Verw-FH);20171;99999;075Z;4;0;CRS3035RES100mN3251200E4302000;0;
0760;60347000;Health Innovation University of Applied Sciences Berlin in Berlin (Priv. FH);20261;99999;076Z;4;0;CRS3035RES100mN3273100E4563100;0;
0761;60188000;Health Innovation University of Applied Sciences Berlin in Stuttgart (Priv. FH) ;20261;99999;076Y;4;0;CRS3035RES100mN2851400E4259900;0;
0762;60249000;Health Innovation University of Applied Sciences Berlin in München (Priv. FH) ;20261;99999;076X;4;0;CRS3035RES100mN2780500E4436700;0;
0763;60672000;Health Innovation University of Applied Sciences Berlin in Hamburg (Priv. FH);20261;99999;076W;4;0;CRS3035RES100mN3372400E4317600;0;
0760;60347000;IB Hochschule für Gesundheit und Soziales Berlin in Berlin (Priv. FH);20201;99999;076Z;4;0;CRS3035RES100mN3279500E4545200;0;
0761;60188000;IB Hochschule für Gesundheit und Soziales Berlin in Stuttgart (Priv. FH) ;20192;99999;076Y;4;0;CRS3035RES100mN2851400E4259900;0;
0762;60249000;IB Hochschule für Gesundheit und Soziales Berlin in München (Priv. FH) ;20192;99999;076X;4;0;CRS3035RES100mN2780500E4436700;0;
0763;60672000;IB Hochschule für Gesundheit und Soziales Berlin in Hamburg (Priv. FH);20192;99999;076W;4;0;CRS3035RES100mN3372400E4317600;0;
0764;61040000;IB Hochschule für Gesundheit und Soziales Berlin in Köln (Priv. FH);20192;99999;076V;4;0;CRS3035RES100mN3093300E4107500;0;
0790;60336000;Akkon Hochschule Berlin (Priv. FH);20171;99999;079Z;4;0;CRS3035RES100mN3266000E4551600;0;
0800;10620000;Helmut-Schmidt-Universität Hamburg;20042;99999;080Z;1;0;CRS3035RES100mN3384500E4328000;1;
0811;10240001;U der Bundeswehr München (FB Universitätsstudiengänge);20082;99999;081Z;1;0;CRS3035RES100mN2775400E4443100;1;
0812;10240002;U der Bundeswehr München (FB Fachhochschulstudiengänge);20102;99999;081Z;1;0;CRS3035RES100mN2775400E4443100;0;
0821;60352000;Deutsche Hochschule für Gesundheit und Sport Berlin in Berlin (Priv. FH);20261;99999;082W;4;0;CRS3035RES100mN3273900E4557500;0;
0821;60352000;Deutsche Hochschule für Gesundheit und Sport Berlin in Berlin (Priv. FH);20211;99999;082W;4;0;CRS3035RES100mN3272700E4546600;0;
0822;60268000;Deutsche Hochschule für Gesundheit und Sport Berlin in Ismaning (Priv. FH);20181;99999;082X;4;0;CRS3035RES100mN2792000E4445900;0;
0823;61067000;Deutsche Hochschule für Gesundheit und Sport Berlin in Unna (Priv. FH);20181;99999;082Y;4;0;CRS3035RES100mN3162800E4157100;0;
0860;61215000;Deutsche Hochschule für Prävention und Gesundheitsmanagement, Saarbrücken (Priv. FH);20082;99999;086Z;4;0;CRS3035RES100mN2908500E4105200;0;
@ -132,8 +134,7 @@ @@ -132,8 +134,7 @@
1169;10710990;U Frankfurt a.M. (Klinikum);20042;99999;116K;2;1;CRS3035RES100mN2999100E4225100;0;
1170;10715000;U Gießen;20042;99999;117Z;2;1;CRS3035RES100mN3052900E4227200;1;
1180;10730000;U Marburg;20042;99999;118Z;2;1;CRS3035RES100mN3078300E4234500;1;
1190;11135000;WHU - Otto Beisheim Hochschule Vallendar in Vallendar (Priv. U);20262;99999;119Z;4;0;CRS3035RES100mN3034700E4151400;1;
1191;11076000;WHU - Otto Beisheim Hochschule Vallendar in Düsseldorf (Priv. U);20262;99999;119Y;4;0;CRS3035RES100mN3128000E4098500;1;
1190;11135000;Wissenschaftliche H für Unternehmensführung, Vallendar (Priv. U);20171;99999;119Z;4;0;CRS3035RES100mN3034700E4151400;1;
1200;11130000;U Trier;20042;99999;120Z;2;1;CRS3035RES100mN2964600E4082300;1;
1210;11105000;Rheinland-Pfälzische Technische Universität in Kaiserslautern;20231;99999;121Z;2;1;CRS3035RES100mN2925900E4158100;1;
1211;11105100;Rheinland-Pfälzische Technische Universität in Landau;20231;99999;121Y;2;0;CRS3035RES100mN2900700E4183000;1;
@ -192,6 +193,7 @@ @@ -192,6 +193,7 @@
1491;11075100;Universität Witten-Herdecke (Priv. U) (ohne Klinikum);20171;99999;149Z;4;1;CRS3035RES100mN3152300E4137300;1;
1499;11075990;Universität Witten-Herdecke (Priv. U) (Klinikum);20171;99999;149K;4;1;CRS3035RES100mN3152300E4137000;0;
1500;61048000;H für Finanzwirtschaft & Management Bonn (Priv. FH);20201;99999;150Z;4;0;CRS3035RES100mN3071700E4117100;0;
1510;60765000;CVJM-Hochschule Kassel (Priv. FH);20091;99999;151Z;4;0;CRS3035RES100mN3132600E4280100;0;
1520;10350000;International Psychoanalytic University Berlin (Priv. U);20171;99999;152Z;4;0;CRS3035RES100mN3273400E4547700;0;
1530;10705000;TU Darmstadt;20042;99999;153Z;2;1;CRS3035RES100mN2974500E4224300;1;
1541;10740100;EBS U für Wirtschaft und Recht in Oestrich-Winkel (Priv. U);20171;99999;154X;4;0;CRS3035RES100mN2989200E4178200;1;
@ -210,13 +212,11 @@ @@ -210,13 +212,11 @@
1633;10235300;TU München in Garching;20162;99999;163W;2;1;CRS3035RES100mN2794500E4442400;1;
1634;10235400;TU München in Straubing;20162;99999;163U;2;1;CRS3035RES100mN2866700E4510400;1;
1635;10148000;TU München in Heilbronn;20182;99999;163J;2;1;CRS3035RES100mN2892900E4263900;1;
1638;10235980;TU München in München Deutsches Herzzentrum (DHZ) (Klinikum);20252;99999;163H;4;0;CRS3035RES100mN2783300E4436200;0;
1639;10235990;TU München in München (Klinikum);20042;99999;163K;2;1;CRS3035RES100mN2781600E4440000;1;
1680;61065000;CBS International Business School, Campus Köln (Priv. FH);20201;99999;168Z;4;0;CRS3035RES100mN3094800E4106500;0;
1681;61155000;CBS International Business School, Campus Mainz (Priv. FH);20201;99999;168Y;4;0;CRS3035RES100mN2988400E4197700;0;
1683;61065200;CBS International Business School, Campus Neuss (Priv. FH);20222;99999;168W;4;0;CRS3035RES100mN3126500E4091200;0;
1684;60840000;CBS International Business School, Campus Rostock (Priv. FH);20252;99999;168V;4;0;CRS3035RES100mN3444900E4458800;0;
1685;61065300;CBS International Business School, Campus Solingen (Priv. FH);20262;99999;168U;4;0;CRS3035RES100mN3122100E4111600;0;
1690;10310000;TU Berlin;20042;99999;169Z;2;1;CRS3035RES100mN3272100E4546700;1;
1700;10325000;ESCP Europe Wirtschaftshochschule Berlin (Priv. U);20171;99999;170Z;4;0;CRS3035RES100mN3273300E4544100;0;
1710;10245000;H für Politik München (U);20171;99999;171Z;2;0;CRS3035RES100mN2782700E4437300;0;
@ -264,7 +264,7 @@ @@ -264,7 +264,7 @@
2240;60361000;Hochschule für Soziale Arbeit und Pädagogik (HSAP), Berlin (Priv. FH);20241;99999;224Z;4;0;CRS3035RES100mN3270500E4556900;0;
2272;41035200;Kirchliche Hochschule Wuppertal (Kirchl.-Theol. H);20241;99999;227X;5;0;CRS3035RES100mN3132100E4123500;1;
2280;61059000;IST-Hochschule für Management Düsseldorf (Priv. FH);20172;99999;228Z;4;0;CRS3035RES100mN3128000E4098500;0;
2290;60364000;Whitecliffe University of Applied Sciences Berlin (priv. FH);20261;99999;229Z;4;0;CRS3035RES100mN3272600E4546800;0;
2290;60364000;Berlin International University of Applied Sciences (Priv. FH);20202;99999;229Z;4;0;CRS3035RES100mN3272600E4546800;0;
2300;10175000;H für jüdische Studien Heidelberg (Kirchl. U);20171;99999;230Z;5;0;CRS3035RES100mN2922700E4226700;0;
2320;40715000;Luth.-Theologische H Oberursel (Kirchl.-Theol. H) ;20171;99999;232Z;5;0;CRS3035RES100mN3011800E4217800;0;
2350;41405000;Theol. H Friedensau (Kirchl.-Theol. H);20171;99999;235Z;5;0;CRS3035RES100mN3235300E4456600;0;
@ -337,8 +337,9 @@ @@ -337,8 +337,9 @@
3090;61070000;HSD Hochschule Döpfer Potsdam in Köln (Priv. FH);20222;99999;309Z;4;0;CRS3035RES100mN3095600E4107000;0;
3091;60269000;HSD Hochschule Döpfer Potsdam in Regensburg (Priv. FH);20222;99999;309Y;4;0;CRS3035RES100mN2880400E4473100;0;
3092;60424000;HSD Hochschule Döpfer Potsdam in Potsdam (Priv. FH);20222;99999;309X;4;0;CRS3035RES100mN3258400E4531200;0;
3093;60648000;HSD Hochschule Döpfer Potsdam in Hamburg (Priv. FH);20262;99999;309W;4;0;CRS3035RES100mN3386800E4327400;0;
3100;11505000;EUF Europa-Universität Flensburg;20172;99999;310Z;2;1;CRS3035RES100mN3519000E4286100;1;
3121;60177100;Hochschule für Kommunikation und Gestaltung in Stuttgart (Priv. FH);20142;99999;312X;4;0;CRS3035RES100mN2856800E4262400;0;
3122;60177200;Hochschule für Kommunikation und Gestaltung in Ulm (Priv. FH);20142;99999;312Y;4;0;CRS3035RES100mN2808800E4320000;0;
3130;50330000;Barenboim-Said Akademie Berlin (Priv. Kunst-H);20171;99999;313Z;4;0;CRS3035RES100mN3272700E4551400;0;
3140;60357000;CODE University of Applied Sciences Berlin (Priv. FH);20172;99999;314Z;4;0;CRS3035RES100mN3270500E4554900;0;
3230;61150000;H für Gesellschaftsgestaltung Koblenz (Priv. FH);20231;99999;323Z;4;0;CRS3035RES100mN3030500E4150100;0;
@ -347,12 +348,11 @@ @@ -347,12 +348,11 @@
3260;61540000;DHSH - Duale Hochschule Schleswig-Holstein, Kiel (Priv. FH);20182;99999;326Z;4;0;CRS3035RES100mN3472600E4329000;0;
3270;10365000;German International University Berlin (Priv. U);20192;99999;327Z;4;0;CRS3035RES100mN3279700E4543800;0;
3290;10430000;HMU Health and Medical University Potsdam in Potsdam (Priv. U);20252;99999;329Z;4;0;CRS3035RES100mN3260100E4530700;0;
3292;11072000;HMU Health and Medical University Potsdam in Düsseldorf (Priv. U);20252;99999;329W;4;0;CRS3035RES100mN3127700E4094300;0;
3293;10267000;HMU Health and Medical University Potsdam Campus München (Priv. U);20262;99999;329V;4;0;CRS3035RES100mN2782300E4436700;0;
3291;11625000;HMU Health and Medical University Erfurt in Erfurt (Priv. U);20231;20261;329Y;4;0;CRS3035RES100mN3098200E4392000;0;
3292;11072000;HMU Health and Medical University Potsdam in Düsseldof (Priv. U);20252;99999;329W;4;0;CRS3035RES100mN3127700E4094300;0;
3360;60345000;Digital Business University Berlin (Priv. FH);20192;99999;336Z;4;0;CRS3035RES100mN3271100E4553200;0;
3370;10227000;Technische Universität Nürnberg;20211;99999;337Z;2;0;CRS3035RES100mN2924600E4398800;1;
3430;60608000;Berufliche Hochschule Hamburg (FH);20212;99999;343Z;2;0;CRS3035RES100mN3382900E4323300;0;
3440;11625000;HMU Health and Medical University Erfurt (Priv. U);20262;99999;344Z;4;0;CRS3035RES100mN3098200E4392000;0;
3490;60440000;XU Exponential University Potsdam (Priv. FH);20192;99999;349Z;4;0;CRS3035RES100mN3257700E4533400;0;
3500;10415000;U Potsdam;20042;99999;350Z;2;1;CRS3035RES100mN3258800E4526000;1;
3640;60445000;Gisma University of Applied Sciences Potsdam (Priv. FH);20242;99999;364Z;4;0;CRS3035RES100mN3262700E4528600;0;
@ -413,12 +413,6 @@ @@ -413,12 +413,6 @@
4260;B0718000;Deutsche Berufsakademie Sport und Gesundheit (dba) in Baunatal (Private BA);20172;99999;426Z;4;0;CRS3035RES100mN3127100E4278400;0;
4270;B0945100;Berufsakademie Wilhelmshaven (Private BA);20192;99999;427Z;4;0;CRS3035RES100mN3386500E4195100;0;
4280;B1230100;Berufsakademie Heimerer GmbH, Quierschied (Private BA);20202;99999;428Z;4;0;CRS3035RES100mN2915300E4105500;0;
4680;60276000;Promotionszentrum MeVuT – Menschenorient. Forsch. für innova. Versorgung und Teilhabe, München;20262;99999;468Z;5;0;CRS3035RES100mN2781100E4440300;0;
4690;61162000;Promotionscluster Angewandte Informatik, Trier;20261;99999;469Z;2;0;CRS3035RES100mN2967200E4078300;0;
4700;61164000;Promotionscluster Medical and Environmental Life Sciences, Kaiserslautern;20261;99999;470Z;2;0;CRS3035RES100mN2928400E4158400;0;
4710;61166000;Promotionscluster Nachhaltige Technik und Naturwissenschaften, Koblenz;20261;99999;471Z;2;0;CRS3035RES100mN3027700E4147900;0;
4720;60278000;Promotionszentrum Prisma Health - Deggendorf;20262;99999;472Z;2;0;CRS3035RES100mN2861700E4538000;0;
4730;60299000;CAF - Promotionszentrum LiWa - Technische Hochschule Würzburg-Schweinfurt;20262;99999;473Z;2;0;CRS3035RES100mN2963800E4316100;0;
4740;60298000;Promotionszentrum Integrierte Mobilität - München;20252;99999;474Z;2;0;CRS3035RES100mN2783600E4436500;0;
4750;60281000;Promotionszentrum Advanced Building Technologies, TH Rosenheim;20242;99999;475Z;2;0;CRS3035RES100mN2752600E4478700;0;
4760;60280000;Promotionszentrum NITRO, TH Augsburg;20242;99999;476Z;2;0;CRS3035RES100mN2805000E4388100;0;
@ -591,7 +585,6 @@ @@ -591,7 +585,6 @@
620D;71510000;Hochschule des Bundes für öffentliche Verwaltung, FB Bundespolizei in Lübeck;20142;99999;620Q;1;0;CRS3035RES100mN3413300E4368500;0;
620E;70720300;Hochschule des Bundes für öffentl. Verwaltung, FB Landwirtschaftliche Sozialversicherung in Kassel;20142;99999;620P;1;0;CRS3035RES100mN3134100E4281200;0;
620F;70310003;Hochschule des Bundes für öffentliche Verwaltung, FB Nachrichtendienste in Berlin ;20182;99999;620X;1;0;CRS3035RES100mN3274500E4550100;0;
620G;70810000;Hochschule des Bundes für öffentliche Verwaltung, Fachbereich Finanzen in Rostock;20261;99999;620N;1;0;CRS3035RES100mN3450600E4455600;0;
6211;60705100;h_da - H Darmstadt in Darmstadt (FH);20062;99999;621Y;2;1;CRS3035RES100mN2973600E4223100;0;
6212;60705200;h_da - H Darmstadt in Dieburg (FH);20062;99999;621X;2;1;CRS3035RES100mN2977200E4238700;0;
6220;60710000;Frankfurt University of Applied Sciences (FH);20141;99999;622Z;2;1;CRS3035RES100mN3002700E4227500;0;
@ -603,7 +596,6 @@ @@ -603,7 +596,6 @@
6270;60760000;Evangelische Hochschule Darmstadt (EHD), (Kirchl. FH);20171;99999;627Z;5;0;CRS3035RES100mN2974400E4222300;0;
6271;60760100;Evangelische Hochschule Darmstadt (EHD) in Darmstadt (Kirchl. FH);20171;99999;627Z;5;0;CRS3035RES100mN2974400E4222300;0;
6272;60760200;Evangelische Hochschule Darmstadt (EHD) in Schwalmstadt (Kirchl. FH);20171;99999;627Y;5;0;CRS3035RES100mN3089300E4263200;0;
6273;60760300;Evangelische Hochschule Darmstadt (EHD) in Kassel (Kirchl. FH);20261;99999;627X;5;0;CRS3035RES100mN3132600E4280100;0;
6281;60750100;Hochschule Fresenius Idstein in Idstein (Priv. FH);20131;99999;628Y;4;0;CRS3035RES100mN3013500E4197300;0;
6282;61066000;Hochschule Fresenius Idstein in Köln (Priv. FH);20082;99999;628X;4;0;CRS3035RES100mN3097500E4106400;0;
6284;60262000;Hochschule Fresenius Idstein in München (Priv. FH);20091;99999;628V;4;0;CRS3035RES100mN2784000E4436600;0;
@ -625,8 +617,8 @@ @@ -625,8 +617,8 @@
6390;60740000;Wilhelm Büchner Hochschule Darmstadt (Priv. Fern-FH);20082;99999;639Z;4;0;CRS3035RES100mN2967600E4221300;0;
6401;60755100;DIPLOMA - FH Nordhessen in Bad Sooden-Allendorf (Priv. FH);20091;99999;640Y;4;0;CRS3035RES100mN3128400E4318300;0;
6402;60755200;DIPLOMA - FH Nordhessen in Kassel (Priv. FH);20091;99999;640X;4;0;CRS3035RES100mN3133600E4281300;0;
6411;61051100;Europäische FH (EUFH) in Brühl (Priv. FH);20182;20262;641Y;4;0;CRS3035RES100mN3084800E4103000;0;
6412;61051200;Europäische FH (EUFH) in Neuss (Priv. FH);20182;20262;641X;4;0;CRS3035RES100mN3126500E4091200;0;
6411;61051100;Europäische FH (EUFH) in Brühl (Priv. FH);20182;99999;641Y;4;0;CRS3035RES100mN3084800E4103000;0;
6412;61051200;Europäische FH (EUFH) in Neuss (Priv. FH);20182;99999;641X;4;0;CRS3035RES100mN3126500E4091200;0;
6413;60835000;Europäische FH (EUFH) in Rostock (Priv. FH);20171;99999;641W;4;0;CRS3035RES100mN3444900E4458800;0;
6414;61051300;Europäische FH (EUFH) in Köln (Priv. FH);20182;99999;641U;4;0;CRS3035RES100mN3098300E4107100;0;
6415;61051400;Europäische FH (EUFH) in Rheine (Priv. FH);20182;99999;641V;4;0;CRS3035RES100mN3243700E4145300;0;
@ -649,7 +641,7 @@ @@ -649,7 +641,7 @@
6650;61120000;Hochschule für Wirtschaft und Gesellschaft Ludwigshafen (FH);20191;99999;665Z;2;1;CRS3035RES100mN2930100E4206700;0;
6660;61135000;Hochschule Worms (FH);20142;99999;666Z;2;1;CRS3035RES100mN2948000E4201300;0;
6670;61125000;Hochschule Mainz (FH);20142;99999;667Z;2;1;CRS3035RES100mN2987700E4193800;0;
6680;61225000;Hochschule für angewandtes Management, Teltow (Priv. FH);20261;99999;668Z;4;0;CRS3035RES100mN3259200E4541700;0;
6680;60263000;Hochschule für angewandtes Management, Ismaning (Priv. FH);20172;99999;668Z;4;0;CRS3035RES100mN2792000E4445900;0;
6690;60745000;Provadis School of Intern. Management and Technology, Frankfurt a.M. (Priv. FH);20172;99999;669Z;4;0;CRS3035RES100mN2999500E4216400;0;
6710;60103100;Hochschule Aalen - Technik und Wirtschaft in Aalen (FH);20161;99999;671Z;2;1;CRS3035RES100mN2858300E4326300;0;
6711;60103200;Hochschule Aalen - Technik und Wirtschaft in Schwäbisch Gmünd (FH);20161;99999;671Y;2;1;CRS3035RES100mN2853300E4305800;0;
@ -765,6 +757,7 @@ @@ -765,6 +757,7 @@
7920;60410000;Hochschule für nachhaltige Entwicklung Eberswalde (FH);20102;99999;792Z;2;1;CRS3035RES100mN3309400E4578100;0;
7940;60425000;Technische Hochschule Wildau (FH);20171;99999;794Z;2;1;CRS3035RES100mN3251700E4568500;0;
7950;60420000;FH Potsdam;20042;99999;795Z;2;1;CRS3035RES100mN3260300E4528500;0;
7960;10340000;Steinbeis Hochschule in Berlin (Priv. U);20222;99999;796Z;4;0;CRS3035RES100mN3263800E4561600;0;
7961;61430000;Steinbeis Hochschule in Magdeburg (Priv. FH);20222;99999;796Y;4;0;CRS3035RES100mN3224700E4432700;0;
7971;60356000;SRH University of Applied Sciences Heidelberg in Berlin (Priv. FH);20242;99999;797Z;4;0;CRS3035RES100mN3272300E4546400;0;
7972;61338000;SRH University of Applied Sciences Heidelberg in Dresden (Priv. FH);20242;99999;797Y;4;0;CRS3035RES100mN3112300E4583500;0;
@ -852,9 +845,6 @@ @@ -852,9 +845,6 @@
8226;61328600;Duale Hochschule Sachsen - Plauen (FH);20251;99999;822T;2;0;CRS3035RES100mN3044700E4472800;0;
8227;61328700;Duale Hochschule Sachsen - Riesa (FH);20251;99999;822S;2;0;CRS3035RES100mN3139100E4550100;0;
8230;10435000;German University of Digital Science (GUDS), Potsdam (Priv. U);20252;99999;823Z;4;0;CRS3035RES100mN3257800E4533100;0;
8240;50145000;Hochschule für Kirchenmusik Rottenburg (Kirchl. Kunst-H);20262;99999;824Z;5;0;CRS3035RES100mN2819700E4242700;0;
8250;50147000;Hochschule für Kirchenmusik Tübingen (Kirchl. Kunst-H);20262;99999;825Z;5;0;CRS3035RES100mN2823200E4251500;0;
8260;50149000;Hochschule für Kirchenmusik Heidelberg (Kirchl. Kunst-H);20262;99999;826Z;5;0;CRS3035RES100mN2921800E4225300;0;
9000;89805000;Sonstige deutsche Hochschulen;20042;99999;900Z;6;0;;1;
9500;89850000;Berufsakademie in Deutschland;20171;99999;950Z;6;0;;0;
9990;99905000;Hochschulen im Ausland;20042;99999;999Z;6;0;;1;

1 0011 10725101 U Kassel in Kassel (ohne Kunsthochschule) 20042 99999 001Y 2 1 CRS3035RES100mN3134700E4286600 1
3 0013 10725102 U Kassel in Kassel (Kunsthochschule) 20042 99999 001Y 2 1 CRS3035RES100mN3132800E4285400 1
4 0014 10725103 U Kassel in Kassel (Intern. Management School) 20171 99999 001Y 2 1 CRS3035RES100mN3135000E4286500 0
5 0020 60515000 APOLLON H der Gesundheitswirtschaft Bremen (Priv. FH) 20102 99999 002Z 4 0 CRS3035RES100mN3333300E4244600 0
6 0030 60265000 Macromedia University of Applied Sciences Potsdam, Campus München (Priv. FH) Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus München (Priv. FH) 20252 99999 003Z 4 0 CRS3035RES100mN2782700E4436700 0
7 0032 60338000 Macromedia University of Applied Sciences Potsdam, Campus Berlin (Priv. FH) Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Berlin (Priv. FH) 20252 99999 003W 4 0 CRS3035RES100mN3270200E4551000 0
8 0033 60678000 Macromedia University of Applied Sciences Potsdam, Campus Hamburg (Priv. FH) Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Hamburg (Priv. FH) 20252 99999 003V 4 0 CRS3035RES100mN3382700E4320900 0
9 0034 61062000 Macromedia University of Applied Sciences Potsdam, Campus Köln (Priv. FH) 20252 99999 003U 4 0 CRS3035RES100mN3096200E4106700 0
10 0035 60166000 Macromedia University of Applied Sciences Potsdam, Campus Stuttgart (Priv. FH) Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Stuttgart (Priv. FH) 20252 99999 003T 4 0 CRS3035RES100mN2855900E4263100 0
11 0036 60166100 Macromedia University of Applied Sciences Potsdam, Campus Freiburg i. Br. (Priv. FH) Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Freiburg i. Br. (Priv. FH) 20252 99999 003S 4 0 CRS3035RES100mN2766600E4159300 0
12 0037 61331000 Macromedia University of Applied Sciences Potsdam, Campus Leipzig (Priv. FH) Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Leipzig (Priv. FH) 20252 99999 003P 4 0 CRS3035RES100mN3139700E4486400 0
13 0038 60776000 Macromedia University of Applied Sciences Potsdam, Campus Frankfurt a. M. (Priv. FH) Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Frankfurt a. M. (Priv. FH) 20252 99999 003Q 4 0 CRS3035RES100mN3003700E4222600 0
14 0039 60455000 Macromedia University of Applied Sciences Potsdam, Campus Potsdam (Priv. FH) Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Potsdam (Priv. FH) 20252 99999 003N 4 0 CRS3035RES100mN3257800E4533500 0
15 0040 61074000 FH der Diakonie Bielefeld-Bethel (Kirchl. FH) 20171 99999 004Z 5 0 CRS3035RES100mN3212100E4219700 0
16 0060 60129000 Hochschule für angewandte Wissenschaften der Bundesagentur für Arbeit in Mannheim (FH) 20222 99999 006Z 1 0 CRS3035RES100mN2930300E4213300 0
17 0061 60825000 Hochschule für angewandte Wissenschaften der Bundesagentur für Arbeit in Schwerin (FH) 20222 99999 006Y 1 0 CRS3035RES100mN3395200E4414200 0
23 0130 11065000 U Siegen 20172 99999 013Z 2 1 CRS3035RES100mN3090600E4182100 1
24 0140 11070000 U Wuppertal 20042 99999 014Z 2 1 CRS3035RES100mN3129900E4122000 1
25 0150 11040000 Fernuniversität Hagen 20042 99999 015Z 2 1 CRS3035RES100mN3143700E4146400 1
26 0170 60333000 Touro College Berlin (Priv. FH) 20062 99999 017Z 4 0 CRS3035RES100mN3271000E4539100 0
27 0180 10315000 Charité - Universitätsmedizin Berlin 20082 99999 018Z 2 1 CRS3035RES100mN3273500E4550200 1
28 0190 10410000 Europa-U Viadrina Frankfurt (Oder) 20042 99999 019Z 2 1 CRS3035RES100mN3257700E4631100 1
29 0200 10320000 Humboldt-Universität Berlin 20042 99999 020Z 2 1 CRS3035RES100mN3272900E4551200 1
72 0680 10335000 Hertie School of Governance Berlin (Priv. U) 20172 99999 068Z 4 0 CRS3035RES100mN3272400E4551000 0
73 0690 10615000 HafenCity Universität Hamburg 20172 99999 069Z 2 0 CRS3035RES100mN3381400E4321200 1
74 0700 60335000 bbw Hochschule Berlin (Priv. FH) 20092 99999 070Z 4 0 CRS3035RES100mN3272000E4545900 0
75 0710 41012000 H für Kirchenmusik Witten (Kirchl.-Theol. H) H für Kirchenmusik Herford-Witten (Kirchl.-Theol. H) 20252 20211 99999 071Z 5 0 CRS3035RES100mN3150600E4135800 CRS3035RES100mN3223200E4230900 0
76 0720 60264000 Internationale Hochschule SDI München-Hochschule für angewandte Wissenschaften (Priv. FH) 20192 99999 072Z 4 0 CRS3035RES100mN2777100E4435100 0
77 0730 61640000 SRH University of Applied Sciences Heidelberg in Gera (Priv. FH) 20242 99999 073Z 4 0 CRS3035RES100mN3087500E4466800 0
78 0740 70910000 Norddeutsche Hochschule für Rechtspflege Hildesheim (Verw-FH) 20171 99999 074Z 2 0 CRS3035RES100mN3226100E4317500 0
79 0750 70930000 Kommunale H für Verwaltung in Niedersachsen, Hannover (Priv. Verw-FH) 20171 99999 075Z 4 0 CRS3035RES100mN3251200E4302000 0
80 0760 60347000 Health Innovation University of Applied Sciences Berlin in Berlin (Priv. FH) IB Hochschule für Gesundheit und Soziales Berlin in Berlin (Priv. FH) 20261 20201 99999 076Z 4 0 CRS3035RES100mN3273100E4563100 CRS3035RES100mN3279500E4545200 0
81 0761 60188000 Health Innovation University of Applied Sciences Berlin in Stuttgart (Priv. FH) IB Hochschule für Gesundheit und Soziales Berlin in Stuttgart (Priv. FH) 20261 20192 99999 076Y 4 0 CRS3035RES100mN2851400E4259900 0
82 0762 60249000 Health Innovation University of Applied Sciences Berlin in München (Priv. FH) IB Hochschule für Gesundheit und Soziales Berlin in München (Priv. FH) 20261 20192 99999 076X 4 0 CRS3035RES100mN2780500E4436700 0
83 0763 60672000 Health Innovation University of Applied Sciences Berlin in Hamburg (Priv. FH) IB Hochschule für Gesundheit und Soziales Berlin in Hamburg (Priv. FH) 20261 20192 99999 076W 4 0 CRS3035RES100mN3372400E4317600 0
84 0764 61040000 IB Hochschule für Gesundheit und Soziales Berlin in Köln (Priv. FH) 20192 99999 076V 4 0 CRS3035RES100mN3093300E4107500 0
85 0790 60336000 Akkon Hochschule Berlin (Priv. FH) 20171 99999 079Z 4 0 CRS3035RES100mN3266000E4551600 0
86 0800 10620000 Helmut-Schmidt-Universität Hamburg 20042 99999 080Z 1 0 CRS3035RES100mN3384500E4328000 1
87 0811 10240001 U der Bundeswehr München (FB Universitätsstudiengänge) 20082 99999 081Z 1 0 CRS3035RES100mN2775400E4443100 1
88 0812 10240002 U der Bundeswehr München (FB Fachhochschulstudiengänge) 20102 99999 081Z 1 0 CRS3035RES100mN2775400E4443100 0
89 0821 60352000 Deutsche Hochschule für Gesundheit und Sport Berlin in Berlin (Priv. FH) 20261 20211 99999 082W 4 0 CRS3035RES100mN3273900E4557500 CRS3035RES100mN3272700E4546600 0
90 0822 60268000 Deutsche Hochschule für Gesundheit und Sport Berlin in Ismaning (Priv. FH) 20181 99999 082X 4 0 CRS3035RES100mN2792000E4445900 0
91 0823 61067000 Deutsche Hochschule für Gesundheit und Sport Berlin in Unna (Priv. FH) 20181 99999 082Y 4 0 CRS3035RES100mN3162800E4157100 0
92 0860 61215000 Deutsche Hochschule für Prävention und Gesundheitsmanagement, Saarbrücken (Priv. FH) 20082 99999 086Z 4 0 CRS3035RES100mN2908500E4105200 0
134 1169 10710990 U Frankfurt a.M. (Klinikum) 20042 99999 116K 2 1 CRS3035RES100mN2999100E4225100 0
135 1170 10715000 U Gießen 20042 99999 117Z 2 1 CRS3035RES100mN3052900E4227200 1
136 1180 10730000 U Marburg 20042 99999 118Z 2 1 CRS3035RES100mN3078300E4234500 1
137 1190 11135000 WHU - Otto Beisheim Hochschule Vallendar in Vallendar (Priv. U) Wissenschaftliche H für Unternehmensführung, Vallendar (Priv. U) 20262 20171 99999 119Z 4 0 CRS3035RES100mN3034700E4151400 1
1191 11076000 WHU - Otto Beisheim Hochschule Vallendar in Düsseldorf (Priv. U) 20262 99999 119Y 4 0 CRS3035RES100mN3128000E4098500 1
138 1200 11130000 U Trier 20042 99999 120Z 2 1 CRS3035RES100mN2964600E4082300 1
139 1210 11105000 Rheinland-Pfälzische Technische Universität in Kaiserslautern 20231 99999 121Z 2 1 CRS3035RES100mN2925900E4158100 1
140 1211 11105100 Rheinland-Pfälzische Technische Universität in Landau 20231 99999 121Y 2 0 CRS3035RES100mN2900700E4183000 1
193 1491 11075100 Universität Witten-Herdecke (Priv. U) (ohne Klinikum) 20171 99999 149Z 4 1 CRS3035RES100mN3152300E4137300 1
194 1499 11075990 Universität Witten-Herdecke (Priv. U) (Klinikum) 20171 99999 149K 4 1 CRS3035RES100mN3152300E4137000 0
195 1500 61048000 H für Finanzwirtschaft & Management Bonn (Priv. FH) 20201 99999 150Z 4 0 CRS3035RES100mN3071700E4117100 0
196 1510 60765000 CVJM-Hochschule Kassel (Priv. FH) 20091 99999 151Z 4 0 CRS3035RES100mN3132600E4280100 0
197 1520 10350000 International Psychoanalytic University Berlin (Priv. U) 20171 99999 152Z 4 0 CRS3035RES100mN3273400E4547700 0
198 1530 10705000 TU Darmstadt 20042 99999 153Z 2 1 CRS3035RES100mN2974500E4224300 1
199 1541 10740100 EBS U für Wirtschaft und Recht in Oestrich-Winkel (Priv. U) 20171 99999 154X 4 0 CRS3035RES100mN2989200E4178200 1
212 1633 10235300 TU München in Garching 20162 99999 163W 2 1 CRS3035RES100mN2794500E4442400 1
213 1634 10235400 TU München in Straubing 20162 99999 163U 2 1 CRS3035RES100mN2866700E4510400 1
214 1635 10148000 TU München in Heilbronn 20182 99999 163J 2 1 CRS3035RES100mN2892900E4263900 1
1638 10235980 TU München in München Deutsches Herzzentrum (DHZ) (Klinikum) 20252 99999 163H 4 0 CRS3035RES100mN2783300E4436200 0
215 1639 10235990 TU München in München (Klinikum) 20042 99999 163K 2 1 CRS3035RES100mN2781600E4440000 1
216 1680 61065000 CBS International Business School, Campus Köln (Priv. FH) 20201 99999 168Z 4 0 CRS3035RES100mN3094800E4106500 0
217 1681 61155000 CBS International Business School, Campus Mainz (Priv. FH) 20201 99999 168Y 4 0 CRS3035RES100mN2988400E4197700 0
218 1683 61065200 CBS International Business School, Campus Neuss (Priv. FH) 20222 99999 168W 4 0 CRS3035RES100mN3126500E4091200 0
219 1684 60840000 CBS International Business School, Campus Rostock (Priv. FH) 20252 99999 168V 4 0 CRS3035RES100mN3444900E4458800 0
1685 61065300 CBS International Business School, Campus Solingen (Priv. FH) 20262 99999 168U 4 0 CRS3035RES100mN3122100E4111600 0
220 1690 10310000 TU Berlin 20042 99999 169Z 2 1 CRS3035RES100mN3272100E4546700 1
221 1700 10325000 ESCP Europe Wirtschaftshochschule Berlin (Priv. U) 20171 99999 170Z 4 0 CRS3035RES100mN3273300E4544100 0
222 1710 10245000 H für Politik München (U) 20171 99999 171Z 2 0 CRS3035RES100mN2782700E4437300 0
264 2240 60361000 Hochschule für Soziale Arbeit und Pädagogik (HSAP), Berlin (Priv. FH) 20241 99999 224Z 4 0 CRS3035RES100mN3270500E4556900 0
265 2272 41035200 Kirchliche Hochschule Wuppertal (Kirchl.-Theol. H) 20241 99999 227X 5 0 CRS3035RES100mN3132100E4123500 1
266 2280 61059000 IST-Hochschule für Management Düsseldorf (Priv. FH) 20172 99999 228Z 4 0 CRS3035RES100mN3128000E4098500 0
267 2290 60364000 Whitecliffe University of Applied Sciences Berlin (priv. FH) Berlin International University of Applied Sciences (Priv. FH) 20261 20202 99999 229Z 4 0 CRS3035RES100mN3272600E4546800 0
268 2300 10175000 H für jüdische Studien Heidelberg (Kirchl. U) 20171 99999 230Z 5 0 CRS3035RES100mN2922700E4226700 0
269 2320 40715000 Luth.-Theologische H Oberursel (Kirchl.-Theol. H) 20171 99999 232Z 5 0 CRS3035RES100mN3011800E4217800 0
270 2350 41405000 Theol. H Friedensau (Kirchl.-Theol. H) 20171 99999 235Z 5 0 CRS3035RES100mN3235300E4456600 0
337 3090 61070000 HSD Hochschule Döpfer Potsdam in Köln (Priv. FH) 20222 99999 309Z 4 0 CRS3035RES100mN3095600E4107000 0
338 3091 60269000 HSD Hochschule Döpfer Potsdam in Regensburg (Priv. FH) 20222 99999 309Y 4 0 CRS3035RES100mN2880400E4473100 0
339 3092 60424000 HSD Hochschule Döpfer Potsdam in Potsdam (Priv. FH) 20222 99999 309X 4 0 CRS3035RES100mN3258400E4531200 0
3093 60648000 HSD Hochschule Döpfer Potsdam in Hamburg (Priv. FH) 20262 99999 309W 4 0 CRS3035RES100mN3386800E4327400 0
340 3100 11505000 EUF Europa-Universität Flensburg 20172 99999 310Z 2 1 CRS3035RES100mN3519000E4286100 1
341 3121 60177100 Hochschule für Kommunikation und Gestaltung in Stuttgart (Priv. FH) 20142 99999 312X 4 0 CRS3035RES100mN2856800E4262400 0
342 3122 60177200 Hochschule für Kommunikation und Gestaltung in Ulm (Priv. FH) 20142 99999 312Y 4 0 CRS3035RES100mN2808800E4320000 0
343 3130 50330000 Barenboim-Said Akademie Berlin (Priv. Kunst-H) 20171 99999 313Z 4 0 CRS3035RES100mN3272700E4551400 0
344 3140 60357000 CODE University of Applied Sciences Berlin (Priv. FH) 20172 99999 314Z 4 0 CRS3035RES100mN3270500E4554900 0
345 3230 61150000 H für Gesellschaftsgestaltung Koblenz (Priv. FH) 20231 99999 323Z 4 0 CRS3035RES100mN3030500E4150100 0
348 3260 61540000 DHSH - Duale Hochschule Schleswig-Holstein, Kiel (Priv. FH) 20182 99999 326Z 4 0 CRS3035RES100mN3472600E4329000 0
349 3270 10365000 German International University Berlin (Priv. U) 20192 99999 327Z 4 0 CRS3035RES100mN3279700E4543800 0
350 3290 10430000 HMU Health and Medical University Potsdam in Potsdam (Priv. U) 20252 99999 329Z 4 0 CRS3035RES100mN3260100E4530700 0
351 3292 3291 11072000 11625000 HMU Health and Medical University Potsdam in Düsseldorf (Priv. U) HMU Health and Medical University Erfurt in Erfurt (Priv. U) 20252 20231 99999 20261 329W 329Y 4 0 CRS3035RES100mN3127700E4094300 CRS3035RES100mN3098200E4392000 0
352 3293 3292 10267000 11072000 HMU Health and Medical University Potsdam Campus München (Priv. U) HMU Health and Medical University Potsdam in Düsseldof (Priv. U) 20262 20252 99999 329V 329W 4 0 CRS3035RES100mN2782300E4436700 CRS3035RES100mN3127700E4094300 0
353 3360 60345000 Digital Business University Berlin (Priv. FH) 20192 99999 336Z 4 0 CRS3035RES100mN3271100E4553200 0
354 3370 10227000 Technische Universität Nürnberg 20211 99999 337Z 2 0 CRS3035RES100mN2924600E4398800 1
355 3430 60608000 Berufliche Hochschule Hamburg (FH) 20212 99999 343Z 2 0 CRS3035RES100mN3382900E4323300 0
3440 11625000 HMU Health and Medical University Erfurt (Priv. U) 20262 99999 344Z 4 0 CRS3035RES100mN3098200E4392000 0
356 3490 60440000 XU Exponential University Potsdam (Priv. FH) 20192 99999 349Z 4 0 CRS3035RES100mN3257700E4533400 0
357 3500 10415000 U Potsdam 20042 99999 350Z 2 1 CRS3035RES100mN3258800E4526000 1
358 3640 60445000 Gisma University of Applied Sciences Potsdam (Priv. FH) 20242 99999 364Z 4 0 CRS3035RES100mN3262700E4528600 0
413 4260 B0718000 Deutsche Berufsakademie Sport und Gesundheit (dba) in Baunatal (Private BA) 20172 99999 426Z 4 0 CRS3035RES100mN3127100E4278400 0
414 4270 B0945100 Berufsakademie Wilhelmshaven (Private BA) 20192 99999 427Z 4 0 CRS3035RES100mN3386500E4195100 0
415 4280 B1230100 Berufsakademie Heimerer GmbH, Quierschied (Private BA) 20202 99999 428Z 4 0 CRS3035RES100mN2915300E4105500 0
4680 60276000 Promotionszentrum MeVuT – Menschenorient. Forsch. für innova. Versorgung und Teilhabe, München 20262 99999 468Z 5 0 CRS3035RES100mN2781100E4440300 0
4690 61162000 Promotionscluster Angewandte Informatik, Trier 20261 99999 469Z 2 0 CRS3035RES100mN2967200E4078300 0
4700 61164000 Promotionscluster Medical and Environmental Life Sciences, Kaiserslautern 20261 99999 470Z 2 0 CRS3035RES100mN2928400E4158400 0
4710 61166000 Promotionscluster Nachhaltige Technik und Naturwissenschaften, Koblenz 20261 99999 471Z 2 0 CRS3035RES100mN3027700E4147900 0
4720 60278000 Promotionszentrum Prisma Health - Deggendorf 20262 99999 472Z 2 0 CRS3035RES100mN2861700E4538000 0
4730 60299000 CAF - Promotionszentrum LiWa - Technische Hochschule Würzburg-Schweinfurt 20262 99999 473Z 2 0 CRS3035RES100mN2963800E4316100 0
416 4740 60298000 Promotionszentrum Integrierte Mobilität - München 20252 99999 474Z 2 0 CRS3035RES100mN2783600E4436500 0
417 4750 60281000 Promotionszentrum Advanced Building Technologies, TH Rosenheim 20242 99999 475Z 2 0 CRS3035RES100mN2752600E4478700 0
418 4760 60280000 Promotionszentrum NITRO, TH Augsburg 20242 99999 476Z 2 0 CRS3035RES100mN2805000E4388100 0
585 620D 71510000 Hochschule des Bundes für öffentliche Verwaltung, FB Bundespolizei in Lübeck 20142 99999 620Q 1 0 CRS3035RES100mN3413300E4368500 0
586 620E 70720300 Hochschule des Bundes für öffentl. Verwaltung, FB Landwirtschaftliche Sozialversicherung in Kassel 20142 99999 620P 1 0 CRS3035RES100mN3134100E4281200 0
587 620F 70310003 Hochschule des Bundes für öffentliche Verwaltung, FB Nachrichtendienste in Berlin 20182 99999 620X 1 0 CRS3035RES100mN3274500E4550100 0
620G 70810000 Hochschule des Bundes für öffentliche Verwaltung, Fachbereich Finanzen in Rostock 20261 99999 620N 1 0 CRS3035RES100mN3450600E4455600 0
588 6211 60705100 h_da - H Darmstadt in Darmstadt (FH) 20062 99999 621Y 2 1 CRS3035RES100mN2973600E4223100 0
589 6212 60705200 h_da - H Darmstadt in Dieburg (FH) 20062 99999 621X 2 1 CRS3035RES100mN2977200E4238700 0
590 6220 60710000 Frankfurt University of Applied Sciences (FH) 20141 99999 622Z 2 1 CRS3035RES100mN3002700E4227500 0
596 6270 60760000 Evangelische Hochschule Darmstadt (EHD), (Kirchl. FH) 20171 99999 627Z 5 0 CRS3035RES100mN2974400E4222300 0
597 6271 60760100 Evangelische Hochschule Darmstadt (EHD) in Darmstadt (Kirchl. FH) 20171 99999 627Z 5 0 CRS3035RES100mN2974400E4222300 0
598 6272 60760200 Evangelische Hochschule Darmstadt (EHD) in Schwalmstadt (Kirchl. FH) 20171 99999 627Y 5 0 CRS3035RES100mN3089300E4263200 0
6273 60760300 Evangelische Hochschule Darmstadt (EHD) in Kassel (Kirchl. FH) 20261 99999 627X 5 0 CRS3035RES100mN3132600E4280100 0
599 6281 60750100 Hochschule Fresenius Idstein in Idstein (Priv. FH) 20131 99999 628Y 4 0 CRS3035RES100mN3013500E4197300 0
600 6282 61066000 Hochschule Fresenius Idstein in Köln (Priv. FH) 20082 99999 628X 4 0 CRS3035RES100mN3097500E4106400 0
601 6284 60262000 Hochschule Fresenius Idstein in München (Priv. FH) 20091 99999 628V 4 0 CRS3035RES100mN2784000E4436600 0
617 6390 60740000 Wilhelm Büchner Hochschule Darmstadt (Priv. Fern-FH) 20082 99999 639Z 4 0 CRS3035RES100mN2967600E4221300 0
618 6401 60755100 DIPLOMA - FH Nordhessen in Bad Sooden-Allendorf (Priv. FH) 20091 99999 640Y 4 0 CRS3035RES100mN3128400E4318300 0
619 6402 60755200 DIPLOMA - FH Nordhessen in Kassel (Priv. FH) 20091 99999 640X 4 0 CRS3035RES100mN3133600E4281300 0
620 6411 61051100 Europäische FH (EUFH) in Brühl (Priv. FH) 20182 20262 99999 641Y 4 0 CRS3035RES100mN3084800E4103000 0
621 6412 61051200 Europäische FH (EUFH) in Neuss (Priv. FH) 20182 20262 99999 641X 4 0 CRS3035RES100mN3126500E4091200 0
622 6413 60835000 Europäische FH (EUFH) in Rostock (Priv. FH) 20171 99999 641W 4 0 CRS3035RES100mN3444900E4458800 0
623 6414 61051300 Europäische FH (EUFH) in Köln (Priv. FH) 20182 99999 641U 4 0 CRS3035RES100mN3098300E4107100 0
624 6415 61051400 Europäische FH (EUFH) in Rheine (Priv. FH) 20182 99999 641V 4 0 CRS3035RES100mN3243700E4145300 0
641 6650 61120000 Hochschule für Wirtschaft und Gesellschaft Ludwigshafen (FH) 20191 99999 665Z 2 1 CRS3035RES100mN2930100E4206700 0
642 6660 61135000 Hochschule Worms (FH) 20142 99999 666Z 2 1 CRS3035RES100mN2948000E4201300 0
643 6670 61125000 Hochschule Mainz (FH) 20142 99999 667Z 2 1 CRS3035RES100mN2987700E4193800 0
644 6680 61225000 60263000 Hochschule für angewandtes Management, Teltow (Priv. FH) Hochschule für angewandtes Management, Ismaning (Priv. FH) 20261 20172 99999 668Z 4 0 CRS3035RES100mN3259200E4541700 CRS3035RES100mN2792000E4445900 0
645 6690 60745000 Provadis School of Intern. Management and Technology, Frankfurt a.M. (Priv. FH) 20172 99999 669Z 4 0 CRS3035RES100mN2999500E4216400 0
646 6710 60103100 Hochschule Aalen - Technik und Wirtschaft in Aalen (FH) 20161 99999 671Z 2 1 CRS3035RES100mN2858300E4326300 0
647 6711 60103200 Hochschule Aalen - Technik und Wirtschaft in Schwäbisch Gmünd (FH) 20161 99999 671Y 2 1 CRS3035RES100mN2853300E4305800 0
757 7920 60410000 Hochschule für nachhaltige Entwicklung Eberswalde (FH) 20102 99999 792Z 2 1 CRS3035RES100mN3309400E4578100 0
758 7940 60425000 Technische Hochschule Wildau (FH) 20171 99999 794Z 2 1 CRS3035RES100mN3251700E4568500 0
759 7950 60420000 FH Potsdam 20042 99999 795Z 2 1 CRS3035RES100mN3260300E4528500 0
760 7960 10340000 Steinbeis Hochschule in Berlin (Priv. U) 20222 99999 796Z 4 0 CRS3035RES100mN3263800E4561600 0
761 7961 61430000 Steinbeis Hochschule in Magdeburg (Priv. FH) 20222 99999 796Y 4 0 CRS3035RES100mN3224700E4432700 0
762 7971 60356000 SRH University of Applied Sciences Heidelberg in Berlin (Priv. FH) 20242 99999 797Z 4 0 CRS3035RES100mN3272300E4546400 0
763 7972 61338000 SRH University of Applied Sciences Heidelberg in Dresden (Priv. FH) 20242 99999 797Y 4 0 CRS3035RES100mN3112300E4583500 0
845 8226 61328600 Duale Hochschule Sachsen - Plauen (FH) 20251 99999 822T 2 0 CRS3035RES100mN3044700E4472800 0
846 8227 61328700 Duale Hochschule Sachsen - Riesa (FH) 20251 99999 822S 2 0 CRS3035RES100mN3139100E4550100 0
847 8230 10435000 German University of Digital Science (GUDS), Potsdam (Priv. U) 20252 99999 823Z 4 0 CRS3035RES100mN3257800E4533100 0
8240 50145000 Hochschule für Kirchenmusik Rottenburg (Kirchl. Kunst-H) 20262 99999 824Z 5 0 CRS3035RES100mN2819700E4242700 0
8250 50147000 Hochschule für Kirchenmusik Tübingen (Kirchl. Kunst-H) 20262 99999 825Z 5 0 CRS3035RES100mN2823200E4251500 0
8260 50149000 Hochschule für Kirchenmusik Heidelberg (Kirchl. Kunst-H) 20262 99999 826Z 5 0 CRS3035RES100mN2921800E4225300 0
848 9000 89805000 Sonstige deutsche Hochschulen 20042 99999 900Z 6 0 1
849 9500 89850000 Berufsakademie in Deutschland 20171 99999 950Z 6 0 0
850 9990 99905000 Hochschulen im Ausland 20042 99999 999Z 6 0 1

62
src/de/statspez/plausi/astat/csv/Hochschulstandort.csv

@ -1,15 +1,15 @@ @@ -1,15 +1,15 @@
001X;1072520;U Kassel in Witzenhausen;20042;99999;001;06;06636016;
001Y;1072510;U Kassel in Kassel;20042;99999;001;06;06611000;
002Z;6051500;APOLLON H der Gesundheitswirtschaft Bremen (Priv. FH);20102;99999;002;04;04011000;
003N;6045500;Macromedia University of Applied Sciences Potsdam, Campus Potsdam (Priv. FH);20252;99999;A87;12;12054000;
003P;6133100;Macromedia University of Applied Sciences Potsdam, Campus Leipzig (Priv. FH) ;20252;99999;A61;14;14713000;
003Q;6077600;Macromedia University of Applied Sciences Potsdam, Campus Frankfurt a. M. (Priv. FH);20252;99999;A72;06;06412000;
003S;6016610;Macromedia University of Applied Sciences Potsdam, Campus Freiburg i. Br. (Priv. FH);20252;99999;A26;08;08311000;
003T;6016600;Macromedia University of Applied Sciences Potsdam, Campus Stuttgart (Priv. FH);20252;99999;A26;08;08111000;
003N;6045500;Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Potsdam (Priv. FH);20252;99999;A87;12;12054000;
003P;6133100; Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Leipzig (Priv. FH) ;20252;99999;A61;14;14713000;
003Q;6077600;Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Frankfurt a. M. (Priv. FH);20252;99999;A72;06;06412000;
003S;6016610;Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Freiburg i. Br. (Priv. FH);20252;99999;A26;08;08311000;
003T;6016600;Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Stuttgart (Priv. FH);20252;99999;A26;08;08111000;
003U;6106200;Macromedia University of Applied Sciences Potsdam, Campus Köln (Priv. FH);20252;99999;A27;05;05315000;
003V;6067800;Macromedia University of Applied Sciences Potsdam, Campus Hamburg (Priv. FH);20252;99999;A28;02;02000000;
003W;6033800;Macromedia University of Applied Sciences Potsdam, Campus Berlin (Priv. FH);20252;99999;A29;11;11000000;
003Z;6026500;Macromedia University of Applied Sciences Potsdam, Campus München (Priv. FH);20252;99999;003;09;09162000;
003V;6067800;Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Hamburg (Priv. FH);20252;99999;A28;02;02000000;
003W;6033800;Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Berlin (Priv. FH);20252;99999;A29;11;11000000;
003Z;6026500;Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus München (Priv. FH);20252;99999;003;09;09162000;
004Z;6107400;FH der Diakonie Bielefeld-Bethel (Kirchl. FH);20171;99999;004;05;05711000;
006Y;6082500;Hochschule für angewandte Wissenschaften der Bundesagentur für Arbeit in Schwerin (FH);20222;99999;A25;13;13004000;
006Z;6012900;Hochschule für angewandte Wissenschaften der Bundesagentur für Arbeit in Mannheim (FH);20222;99999;006;08;08222000;
@ -20,6 +20,7 @@ @@ -20,6 +20,7 @@
013Z;1106500;U Siegen;20042;99999;013;05;05970040;
014Z;1107000;U Wuppertal;20042;99999;014;05;05124000;
015Z;1104000;Fernuniversität Hagen;20042;99999;015;05;05914000;
017Z;6033300;Touro College Berlin (Priv. FH);20062;99999;017;11;11000000;
018Z;1031500;Charite - Universitätsmedizin Berlin;20042;99999;018;11;11000000;
019Z;1041000;Europa-U Viadrina Frankfurt (Oder);20042;99999;019;12;12053000;
020Z;1032000;Humboldt-Universität Berlin;20042;99999;020;11;11000000;
@ -62,15 +63,16 @@ @@ -62,15 +63,16 @@
068Z;1033500;Hertie School of Governance Berlin (Priv. U);20171;99999;068;11;11000000;
069Z;1061500;HafenCity Universität Hamburg;20052;99999;069;02;02000000;
070Z;6033500;bbw Hochschule Berlin (Priv. FH);20092;99999;070;11;11000000;
071Z;4101200;H für Kirchenmusik Witten (Kirchl.-Theol. H);20252;99999;071;05;05954036;
071Z;4101200;H für Kirchenmusik Herford-Witten (Kirchl.-Theol. H);20211;99999;071;05;05758012;
072Z;6026400;Internationale Hochschule SDI München-Hochschule für angewandte Wissenschaften (Priv. FH) ;20192;99999;072;09;09162000;
073Z;6164000;SRH University of Applied Sciences Heidelberg in Gera (Priv. FH);20242;99999;073;16;16052000;
074Z;7091000;Norddeutsche Hochschule für Rechtspflege Hildesheim (Verw-FH);20171;99999;074;03;03254021;
075Z;7093000;Kommunale H für Verwaltung in Niedersachsen, Hannover (Priv. Verw-FH);20171;99999;075;03;03241001;
076W;6067200;Health Innovation University of Applied Sciences Berlin in Hamburg (Priv. FH);20261;99999;A30;02;02000000;
076X;6024900;Health Innovation University of Applied Sciences Berlin in München (Priv. FH) ;20261;99999;A31;09;09162000;
076Y;6018800;Health Innovation University of Applied Sciences Berlin in Stuttgart (Priv. FH) ;20261;99999;A32;08;08111000;
076Z;6034700;Health Innovation University of Applied Sciences Berlin in Berlin (Priv. FH);20261;99999;076;11;11000000;
076V;6104000;IB Hochschule für Gesundheit und Soziales Berlin in Köln (Priv. FH);20192;99999;A49;05;05315000;
076W;6067200;IB Hochschule für Gesundheit und Soziales Berlin in Hamburg (Priv. FH);20192;99999;A30;02;02000000;
076X;6024900;IB Hochschule für Gesundheit und Soziales Berlin in München (Priv. FH) ;20192;99999;A31;09;09162000;
076Y;6018800;IB Hochschule für Gesundheit und Soziales Berlin in Stuttgart (Priv. FH) ;20192;99999;A32;08;08111000;
076Z;6034700;IB Hochschule für Gesundheit und Soziales Berlin in Berlin (Priv. FH);20192;99999;076;11;11000000;
079Z;6033600;Akkon Hochschule Berlin (Priv. FH);20171;99999;079;11;11000000;
080Z;1062000;Helmut-Schmidt-Universität Hamburg;20042;99999;080;02;02000000;
081Z;1024000;U der Bundeswehr München;20171;99999;081;09;09184146;
@ -112,8 +114,7 @@ @@ -112,8 +114,7 @@
116Z;1071000;U Frankfurt a.M.;20042;99999;116;06;06412000;
117Z;1071500;U Gießen;20042;99999;117;06;06531005;
118Z;1073000;U Marburg;20042;99999;118;06;06534014;
119Y;1107600;WHU - Otto Beisheim Hochschule Vallendar in Düsseldorf (Priv. U);20262;99999;A90;05;05111000;
119Z;1113500;WHU - Otto Beisheim Hochschule Vallendar in Vallendar (Priv. U);20262;99999;119;07;07137226;
119Z;1113500;Wissenschaftliche H für Unternehmensführung, Vallendar (Priv. U);20171;99999;119;07;07137226;
120Z;1113000;U Trier;20042;99999;120;07;07211000;
121Y;1110510;Rheinland-Pfälzische Technische Universität in Landau;20231;99999;121;07;07313000;
121Z;1110500;Rheinland-Pfälzische Technische Universität in Kaiserslautern;20231;99999;121;07;07312000;
@ -165,6 +166,7 @@ @@ -165,6 +166,7 @@
149K;1107599;Universität Witten-Herdecke (Priv. U) (Klinikum);20171;99999;149;05;05954036;
149Z;1107500;Universität Witten-Herdecke (Priv. U);20171;99999;149;05;05954036;
150Z;6104800;H für Finanzwirtschaft & Management Bonn (Priv. FH);20201;99999;150;05;05314000;
151Z;6076500;CVJM-Hochschule Kassel (Priv. FH);20091;99999;151;06;06611000;
152Z;1035000;International Psychoanalytic University Berlin (Priv. U);20171;99999;152;11;11000000;
153Z;1070500;TU Darmstadt;20042;99999;153;06;06411000;
154X;1074010;EBS U für Wirtschaft und Recht in Oestrich-Winkel (Priv. U);20171;99999;154;06;06439012;
@ -177,7 +179,6 @@ @@ -177,7 +179,6 @@
158Z;1012000;Karlsruher Institut für Technologie (KIT) - Bereich Hochschule (U);20171;99999;158;08;08212000;
159Z;1013500;U Stuttgart;20042;99999;159;08;08111000;
160Z;6036700;Quadriga Hochschule Berlin (Priv. FH);20101;99999;160;11;11000000;
163H;1023598;TU München in München Deutsches Herzzentrum (DHZ) (Klinikum);20252;99999;163;09;09162000;
163J;1014800;TU München in Heilbronn;20182;99999;A54;08;08121000;
163K;1023599;TU München in München (Klinikum);20042;99999;163;09;09162000;
163U;1023540;TU München in Straubing;20162;99999;163;09;09263000;
@ -185,7 +186,6 @@ @@ -185,7 +186,6 @@
163X;1023520;TU München in Weihenstephan;20042;99999;163;09;09178124;
163Y;1023510;TU München in München;20042;99999;163;09;09162000;
163Z;1023500;TU München;20042;99999;163;09;09162000;
168U;6106530;CBS International Business School, Campus Solingen (Priv. FH);20262;99999;168;05;05122000;
168V;6084000;CBS International Business School, Campus Rostock (Priv. FH);20252;99999;A86;13;13003000;
168W;6106520;CBS International Business School, Campus Neuss (Priv. FH);20222;99999;168;05;05162024;
168Y;6115500;CBS International Business School, Campus Mainz (Priv. FH);20201;99999;A52;07;07315000;
@ -235,7 +235,7 @@ @@ -235,7 +235,7 @@
224Z;6036100;Hochschule für Soziale Arbeit und Pädagogik (HSAP), Berlin (Priv. FH);20241;99999;224;11;11000000;
227X;4103520;Kirchliche Hochschule Wuppertal (Kirchl.-Theol. H);20241;99999;227;05;05124000;
228Z;6105900;IST-Hochschule für Management Düsseldorf (Priv. FH);20131;99999;228;05;05111000;
229Z;6036400;Whitecliffe University of Applied Sciences Berlin (priv. FH);20261;99999;229;11;11000000;
229Z;6036400;Berlin International University of Applied Sciences (Priv. FH);20181;99999;229;11;11000000;
230Z;1017500;H für jüdische Studien Heidelberg (Kirchl. U);20171;99999;230;08;08221000;
232Z;4071500;Luth.-Theologische H Oberursel (Kirchl.-Theol. H) ;20171;99999;232;06;06434008;
235Z;4140500;Theol. H Friedensau (Kirchl.-Theol. H);20171;99999;235;15;15086140;
@ -304,11 +304,12 @@ @@ -304,11 +304,12 @@
307X;6102220;H Hamm-Lippstadt in Lippstadt (FH);20202;99999;307;05;05974028;
307Y;6102210;H Hamm-Lippstadt in Hamm (FH);20202;99999;307;05;05915000;
308Z;5104500;Hochschule der bildenden Künste (HBK) Essen (Priv. Kunst-H);20132;99999;308;05;05113000;
309W;6064800;HSD Hochschule Döpfer Potsdam in Hamburg (Priv. FH);20262;99999;A89;02;02000000;
309X;6042400;HSD Hochschule Döpfer Potsdam in Potsdam (Priv. FH);20222;99999;A79;12;12054000;
309Y;6026900;HSD Hochschule Döpfer Potsdam in Regensburg (Priv. FH);20222;99999;A71;09;09362000;
309Z;6107000;HSD Hochschule Döpfer Potsdam in Köln (Priv. FH);20222;99999;309;05;05315000;
310Z;1150500;EUF Europa-Universität Flensburg;20162;99999;310;01;01001000;
312X;6017710;Hochschule für Kommunikation und Gestaltung in Stuttgart (Priv. FH);20142;99999;312;08;08111000;
312Y;6017720;Hochschule für Kommunikation und Gestaltung in Ulm (Priv. FH);20142;99999;312;08;08421000;
313Z;5033000;Barenboim-Said Akademie Berlin (Priv. Kunst-H);20171;99999;313;11;11000000;
314Z;6035700;CODE University of Applied Sciences Berlin (Priv. FH);20172;99999;314;11;11000000;
323Z;6115000;H für Gesellschaftsgestaltung Koblenz (Priv. FH);20231;99999;323;07;07111000;
@ -316,13 +317,12 @@ @@ -316,13 +317,12 @@
324Y;6164520;Duale Hochschule Gera-Eisenach in Gera (FH);20162;99999;324;16;16052000;
326Z;6154000;DHSH - Duale Hochschule Schleswig-Holstein, Kiel (Priv. FH);20182;99999;326;01;01002000;
327Z;1036500;German International University Berlin (Priv. U);20192;99999;327;11;11000000;
329V;1026700;HMU Health and Medical University Potsdam Campus München (Priv. U);20262;99999;A91;09;09162000;
329W;1107200;HMU Health and Medical University Potsdam in Düsseldorf (Priv. U);20252;99999;A85;05;05111000;
329W;1107200;HMU Health and Medical University Potsdam in Düsseldof (Priv. U);20252;99999;A85;05;05111000;
329Y;1162500;HMU Health and Medical University Erfurt in Erfurt (Priv. U);20231;20261;A81;16;16051000;
329Z;1043000;HMU Health and Medical University Potsdam in Potsdam (Priv. U);20252;99999;329;12;12054000;
336Z;6034500;Digital Business University Berlin (Priv. FH);20192;99999;336;11;11000000;
337Z;1022700;Technische Universität Nürnberg;20211;99999;337;09;09564000;
343Z;6060800;Berufliche Hochschule Hamburg (FH);20212;99999;343;02;02000000;
344Z;1162500;HMU Health and Medical University Erfurt (Priv. U);20262;99999;344;16;16051000;
349Z;6044000;XU Exponential University Potsdam (Priv. FH);20192;99999;349;12;12054000;
350Z;1041500;U Potsdam;20042;99999;350;12;12054000;
364Z;6044500;Gisma University of Applied Sciences Potsdam (Priv. FH);20242;99999;364;12;12054000;
@ -382,12 +382,6 @@ @@ -382,12 +382,6 @@
426Z;B071800;Deutsche Berufsakademie Sport und Gesundheit (dba) in Baunatal (Private BA);20172;99999;426;06;06633003;
427Z;B094510;Berufsakademie Wilhelmshaven (Private BA);20192;99999;427;03;03405000;
428Z;B123010;Berufsakademie Heimerer GmbH, Quierschied (Private BA);20202;99999;428;10;10041516;
468Z;6027600;Promotionszentrum MeVuT – Menschenorient. Forsch. für innova. Versorgung und Teilhabe, München;20262;99999;468;09;09162000;
469Z;6116200;Promotionscluster Angewandte Informatik, Trier;20261;99999;469;07;07211000;
470Z;6116400;Promotionscluster Medical and Environmental Life Sciences, Kaiserslautern;20261;99999;470;07;07312000;
471Z;6116600;Promotionscluster Nachhaltige Technik und Naturwissenschaften, Koblenz;20261;99999;471;07;07111000;
472Z;6027800;Promotionszentrum Prisma Health - Deggendorf;20262;99999;472;09;09271119;
473Z;6029900;CAF - Promotionszentrum LiWa - Technische Hochschule Würzburg-Schweinfurt;20262;99999;473;09;09663000;
474Z;6029800;Promotionszentrum Integrierte Mobilität - München;20252;99999;474;09;09162000;
475Z;6028100;Promotionszentrum Advanced Building Technologies, TH Rosenheim;20242;99999;475;09;09163000;
476Z;6028000;Promotionszentrum NITRO, TH Augsburg;20242;99999;476;09;09761000;
@ -550,7 +544,6 @@ @@ -550,7 +544,6 @@
607Y;7101510;Hochschule für Polizei und öffentliche Verwaltung NW in Bielefeld (Verw-FH);20192;99999;607;05;05711000;
618Z;7100500;H der Justiz NW in Bad Münstereifel (Verw-FH);20252;99999;618;05;05366004;
619Z;7101000;Hochschule für Finanzen Nordrhein-Westfalen in Nordkirchen (Verw-FH);20201;99999;619;05;05558028;
620N;7081000;Hochschule des Bundes für öffentliche Verwaltung, Fachbereich Finanzen in Rostock;20261;99999;A88;13;13003000;
620P;7072030;Hochschule des Bundes für öffentliche Verwaltung, Kassel;20171;99999;A08;06;06611000;
620Q;7151000;Hochschule des Bundes für öffentliche Verwaltung, Lübeck;20171;99999;A09;01;01003000;
620S;7102020;Hochschule des Bundes für öffentliche Verwaltung, Münster;20142;99999;620;05;05515000;
@ -567,7 +560,6 @@ @@ -567,7 +560,6 @@
623Y;6072010;Technische Hochschule Mittelhessen (THM) in Friedberg (FH);20111;99999;623;06;06440008;
624W;6072530;Hochschule RheinMain (FH) in Wiesbaden;20092;99999;624;06;06414000;
624X;6072520;Hochschule RheinMain (FH) in Rüsselsheim;20092;99999;624;06;06433012;
627X;6076030;Evangelische Hochschule Darmstadt (EHD) in Kassel (Kirchl. FH);20261;99999;627;06;06611000;
627Y;6076020;Evangelische Hochschule Darmstadt (EHD) in Schwalmstadt (Kirchl. FH);20171;99999;627;06;06634022;
627Z;6076010;Evangelische Hochschule Darmstadt (EHD) in Darmstadt (Kirchl. FH);20171;99999;627;06;06411000;
628Q;6075030;Hochschule Fresenius Idstein in Wiesbaden (Priv. FH);20191;99999;628;06;06414000;
@ -595,8 +587,8 @@ @@ -595,8 +587,8 @@
641U;6105130;Europäische FH (EUFH) in Köln (Priv. FH);20182;99999;641;05;05315000;
641V;6105140;Europäische FH (EUFH) in Rheine (Priv. FH);20182;99999;641;05;05566076;
641W;6083500;Europäische FH (EUFH) in Rostock (Priv. FH);20171;99999;A22;13;13003000;
641X;6105120;Europäische FH (EUFH) in Neuss (Priv. FH);20171;20262;641;05;05162024;
641Y;6105110;Europäische FH (EUFH) in Brühl (Priv. FH);20171;20262;641;05;05362012;
641X;6105120;Europäische FH (EUFH) in Neuss (Priv. FH);20171;99999;641;05;05162024;
641Y;6105110;Europäische FH (EUFH) in Brühl (Priv. FH);20171;99999;641;05;05362012;
643Z;6043000;Theologische Hochschule Elstal (Kirchl. FH);20171;99999;643;12;12063357;
651Z;6110500;Technische Hochschule Bingen (FH);20162;99999;651;07;07339005;
652W;6111030;Hochschule Kaiserslautern in Zweibrücken (FH);20142;99999;652;07;07320000;
@ -615,7 +607,7 @@ @@ -615,7 +607,7 @@
665Z;6112000;Hochschule für Wirtschaft und Gesellschaft Ludwigshafen (FH);20191;99999;665;07;07314000;
666Z;6113500;Hochschule Worms (FH);20142;99999;666;07;07319000;
667Z;6112500;Hochschule Mainz (FH);20142;99999;667;07;07315000;
668Z;6122500;Hochschule für angewandtes Management, Teltow (Priv. FH);20261;99999;668;12;12069616;
668Z;6026300;Hochschule für angewandtes Management, Ismaning (Priv. FH);20172;99999;668;09;09184130;
669Z;6074500;Provadis School of Intern. Management and Technology, Frankfurt a.M. (Priv. FH);20042;99999;669;06;06412000;
671Y;6010320;Hochschule Aalen - Technik und Wirtschaft in Schwäbisch Gmünd (FH);20161;99999;671;08;08136065;
671Z;6010310;Hochschule Aalen - Technik und Wirtschaft in Aalen (FH);20161;99999;671;08;08136088;
@ -730,6 +722,7 @@ @@ -730,6 +722,7 @@
794Z;6042500;Technische Hochschule Wildau (FH);20171;99999;794;12;12061540;
795Z;6042000;FH Potsdam;20042;99999;795;12;12054000;
796Y;6143000;Steinbeis Hochschule in Magdeburg (Priv. FH);20222;99999;A80;15;15003000;
796Z;1034000;Steinbeis Hochschule in Berlin (Priv. U);20222;99999;796;11;11000000;
797U;6133810;SRH University of Applied Sciences Heidelberg in Leipzig (Priv. FH);20252;99999;A39;14;14713000;
797V;6053000;SRH University of Applied Sciences Heidelberg in Bremen (Priv. FH);20241;99999;A84;04;04011000;
797W;6154200;SRH University of Applied Sciences Heidelberg in Heide (Priv. FH);20242;99999;A83;01;01051044;
@ -814,9 +807,6 @@ @@ -814,9 +807,6 @@
822X;6132820;Duale Hochschule Sachsen - Breitenbrunn (FH);20251;99999;822;14;14521110;
822Y;6132810;Duale Hochschule Sachsen - Bautzen (FH);20251;99999;822;14;14625020;
823Z;1043500;German University of Digital Science (GUDS), Potsdam (Priv. U);20252;99999;823;12;12054000;
824Z;5014500;Hochschule für Kirchenmusik Rottenburg (Kirchl. Kunst-H);20262;99999;824;08;08416036;
825Z;5014700;Hochschule für Kirchenmusik Tübingen (Kirchl. Kunst-H);20262;99999;825;08;08416041;
826Z;5014900;Hochschule für Kirchenmusik Heidelberg (Kirchl. Kunst-H);20262;99999;826;08;08221000;
900Z;8980500;Sonstige deutsche Hochschulen;20042;99999;900;98;00000000;
950Z;8985000;Berufsakademie in Deutschland;20171;99999;950;98;00000000;
999Z;9990500;Hochschulen im Ausland;20042;99999;999;99;00000000;

1 001X 1072520 U Kassel in Witzenhausen 20042 99999 001 06 06636016
2 001Y 1072510 U Kassel in Kassel 20042 99999 001 06 06611000
3 002Z 6051500 APOLLON H der Gesundheitswirtschaft Bremen (Priv. FH) 20102 99999 002 04 04011000
4 003N 6045500 Macromedia University of Applied Sciences Potsdam, Campus Potsdam (Priv. FH) Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Potsdam (Priv. FH) 20252 99999 A87 12 12054000
5 003P 6133100 Macromedia University of Applied Sciences Potsdam, Campus Leipzig (Priv. FH) Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Leipzig (Priv. FH) 20252 99999 A61 14 14713000
6 003Q 6077600 Macromedia University of Applied Sciences Potsdam, Campus Frankfurt a. M. (Priv. FH) Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Frankfurt a. M. (Priv. FH) 20252 99999 A72 06 06412000
7 003S 6016610 Macromedia University of Applied Sciences Potsdam, Campus Freiburg i. Br. (Priv. FH) Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Freiburg i. Br. (Priv. FH) 20252 99999 A26 08 08311000
8 003T 6016600 Macromedia University of Applied Sciences Potsdam, Campus Stuttgart (Priv. FH) Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Stuttgart (Priv. FH) 20252 99999 A26 08 08111000
9 003U 6106200 Macromedia University of Applied Sciences Potsdam, Campus Köln (Priv. FH) 20252 99999 A27 05 05315000
10 003V 6067800 Macromedia University of Applied Sciences Potsdam, Campus Hamburg (Priv. FH) Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Hamburg (Priv. FH) 20252 99999 A28 02 02000000
11 003W 6033800 Macromedia University of Applied Sciences Potsdam, Campus Berlin (Priv. FH) Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus Berlin (Priv. FH) 20252 99999 A29 11 11000000
12 003Z 6026500 Macromedia University of Applied Sciences Potsdam, Campus München (Priv. FH) Hochschule Macromedia für angewandte Wissenschaften Potsdam, Campus München (Priv. FH) 20252 99999 003 09 09162000
13 004Z 6107400 FH der Diakonie Bielefeld-Bethel (Kirchl. FH) 20171 99999 004 05 05711000
14 006Y 6082500 Hochschule für angewandte Wissenschaften der Bundesagentur für Arbeit in Schwerin (FH) 20222 99999 A25 13 13004000
15 006Z 6012900 Hochschule für angewandte Wissenschaften der Bundesagentur für Arbeit in Mannheim (FH) 20222 99999 006 08 08222000
20 013Z 1106500 U Siegen 20042 99999 013 05 05970040
21 014Z 1107000 U Wuppertal 20042 99999 014 05 05124000
22 015Z 1104000 Fernuniversität Hagen 20042 99999 015 05 05914000
23 017Z 6033300 Touro College Berlin (Priv. FH) 20062 99999 017 11 11000000
24 018Z 1031500 Charite - Universitätsmedizin Berlin 20042 99999 018 11 11000000
25 019Z 1041000 Europa-U Viadrina Frankfurt (Oder) 20042 99999 019 12 12053000
26 020Z 1032000 Humboldt-Universität Berlin 20042 99999 020 11 11000000
63 068Z 1033500 Hertie School of Governance Berlin (Priv. U) 20171 99999 068 11 11000000
64 069Z 1061500 HafenCity Universität Hamburg 20052 99999 069 02 02000000
65 070Z 6033500 bbw Hochschule Berlin (Priv. FH) 20092 99999 070 11 11000000
66 071Z 4101200 H für Kirchenmusik Witten (Kirchl.-Theol. H) H für Kirchenmusik Herford-Witten (Kirchl.-Theol. H) 20252 20211 99999 071 05 05954036 05758012
67 072Z 6026400 Internationale Hochschule SDI München-Hochschule für angewandte Wissenschaften (Priv. FH) 20192 99999 072 09 09162000
68 073Z 6164000 SRH University of Applied Sciences Heidelberg in Gera (Priv. FH) 20242 99999 073 16 16052000
69 074Z 7091000 Norddeutsche Hochschule für Rechtspflege Hildesheim (Verw-FH) 20171 99999 074 03 03254021
70 075Z 7093000 Kommunale H für Verwaltung in Niedersachsen, Hannover (Priv. Verw-FH) 20171 99999 075 03 03241001
71 076W 076V 6067200 6104000 Health Innovation University of Applied Sciences Berlin in Hamburg (Priv. FH) IB Hochschule für Gesundheit und Soziales Berlin in Köln (Priv. FH) 20261 20192 99999 A30 A49 02 05 02000000 05315000
72 076X 076W 6024900 6067200 Health Innovation University of Applied Sciences Berlin in München (Priv. FH) IB Hochschule für Gesundheit und Soziales Berlin in Hamburg (Priv. FH) 20261 20192 99999 A31 A30 09 02 09162000 02000000
73 076Y 076X 6018800 6024900 Health Innovation University of Applied Sciences Berlin in Stuttgart (Priv. FH) IB Hochschule für Gesundheit und Soziales Berlin in München (Priv. FH) 20261 20192 99999 A32 A31 08 09 08111000 09162000
74 076Z 076Y 6034700 6018800 Health Innovation University of Applied Sciences Berlin in Berlin (Priv. FH) IB Hochschule für Gesundheit und Soziales Berlin in Stuttgart (Priv. FH) 20261 20192 99999 076 A32 11 08 11000000 08111000
75 076Z 6034700 IB Hochschule für Gesundheit und Soziales Berlin in Berlin (Priv. FH) 20192 99999 076 11 11000000
76 079Z 6033600 Akkon Hochschule Berlin (Priv. FH) 20171 99999 079 11 11000000
77 080Z 1062000 Helmut-Schmidt-Universität Hamburg 20042 99999 080 02 02000000
78 081Z 1024000 U der Bundeswehr München 20171 99999 081 09 09184146
114 116Z 1071000 U Frankfurt a.M. 20042 99999 116 06 06412000
115 117Z 1071500 U Gießen 20042 99999 117 06 06531005
116 118Z 1073000 U Marburg 20042 99999 118 06 06534014
117 119Y 119Z 1107600 1113500 WHU - Otto Beisheim Hochschule Vallendar in Düsseldorf (Priv. U) Wissenschaftliche H für Unternehmensführung, Vallendar (Priv. U) 20262 20171 99999 A90 119 05 07 05111000 07137226
119Z 1113500 WHU - Otto Beisheim Hochschule Vallendar in Vallendar (Priv. U) 20262 99999 119 07 07137226
118 120Z 1113000 U Trier 20042 99999 120 07 07211000
119 121Y 1110510 Rheinland-Pfälzische Technische Universität in Landau 20231 99999 121 07 07313000
120 121Z 1110500 Rheinland-Pfälzische Technische Universität in Kaiserslautern 20231 99999 121 07 07312000
166 149K 1107599 Universität Witten-Herdecke (Priv. U) (Klinikum) 20171 99999 149 05 05954036
167 149Z 1107500 Universität Witten-Herdecke (Priv. U) 20171 99999 149 05 05954036
168 150Z 6104800 H für Finanzwirtschaft & Management Bonn (Priv. FH) 20201 99999 150 05 05314000
169 151Z 6076500 CVJM-Hochschule Kassel (Priv. FH) 20091 99999 151 06 06611000
170 152Z 1035000 International Psychoanalytic University Berlin (Priv. U) 20171 99999 152 11 11000000
171 153Z 1070500 TU Darmstadt 20042 99999 153 06 06411000
172 154X 1074010 EBS U für Wirtschaft und Recht in Oestrich-Winkel (Priv. U) 20171 99999 154 06 06439012
179 158Z 1012000 Karlsruher Institut für Technologie (KIT) - Bereich Hochschule (U) 20171 99999 158 08 08212000
180 159Z 1013500 U Stuttgart 20042 99999 159 08 08111000
181 160Z 6036700 Quadriga Hochschule Berlin (Priv. FH) 20101 99999 160 11 11000000
163H 1023598 TU München in München Deutsches Herzzentrum (DHZ) (Klinikum) 20252 99999 163 09 09162000
182 163J 1014800 TU München in Heilbronn 20182 99999 A54 08 08121000
183 163K 1023599 TU München in München (Klinikum) 20042 99999 163 09 09162000
184 163U 1023540 TU München in Straubing 20162 99999 163 09 09263000
186 163X 1023520 TU München in Weihenstephan 20042 99999 163 09 09178124
187 163Y 1023510 TU München in München 20042 99999 163 09 09162000
188 163Z 1023500 TU München 20042 99999 163 09 09162000
168U 6106530 CBS International Business School, Campus Solingen (Priv. FH) 20262 99999 168 05 05122000
189 168V 6084000 CBS International Business School, Campus Rostock (Priv. FH) 20252 99999 A86 13 13003000
190 168W 6106520 CBS International Business School, Campus Neuss (Priv. FH) 20222 99999 168 05 05162024
191 168Y 6115500 CBS International Business School, Campus Mainz (Priv. FH) 20201 99999 A52 07 07315000
235 224Z 6036100 Hochschule für Soziale Arbeit und Pädagogik (HSAP), Berlin (Priv. FH) 20241 99999 224 11 11000000
236 227X 4103520 Kirchliche Hochschule Wuppertal (Kirchl.-Theol. H) 20241 99999 227 05 05124000
237 228Z 6105900 IST-Hochschule für Management Düsseldorf (Priv. FH) 20131 99999 228 05 05111000
238 229Z 6036400 Whitecliffe University of Applied Sciences Berlin (priv. FH) Berlin International University of Applied Sciences (Priv. FH) 20261 20181 99999 229 11 11000000
239 230Z 1017500 H für jüdische Studien Heidelberg (Kirchl. U) 20171 99999 230 08 08221000
240 232Z 4071500 Luth.-Theologische H Oberursel (Kirchl.-Theol. H) 20171 99999 232 06 06434008
241 235Z 4140500 Theol. H Friedensau (Kirchl.-Theol. H) 20171 99999 235 15 15086140
304 307X 6102220 H Hamm-Lippstadt in Lippstadt (FH) 20202 99999 307 05 05974028
305 307Y 6102210 H Hamm-Lippstadt in Hamm (FH) 20202 99999 307 05 05915000
306 308Z 5104500 Hochschule der bildenden Künste (HBK) Essen (Priv. Kunst-H) 20132 99999 308 05 05113000
309W 6064800 HSD Hochschule Döpfer Potsdam in Hamburg (Priv. FH) 20262 99999 A89 02 02000000
307 309X 6042400 HSD Hochschule Döpfer Potsdam in Potsdam (Priv. FH) 20222 99999 A79 12 12054000
308 309Y 6026900 HSD Hochschule Döpfer Potsdam in Regensburg (Priv. FH) 20222 99999 A71 09 09362000
309 309Z 6107000 HSD Hochschule Döpfer Potsdam in Köln (Priv. FH) 20222 99999 309 05 05315000
310 310Z 1150500 EUF Europa-Universität Flensburg 20162 99999 310 01 01001000
311 312X 6017710 Hochschule für Kommunikation und Gestaltung in Stuttgart (Priv. FH) 20142 99999 312 08 08111000
312 312Y 6017720 Hochschule für Kommunikation und Gestaltung in Ulm (Priv. FH) 20142 99999 312 08 08421000
313 313Z 5033000 Barenboim-Said Akademie Berlin (Priv. Kunst-H) 20171 99999 313 11 11000000
314 314Z 6035700 CODE University of Applied Sciences Berlin (Priv. FH) 20172 99999 314 11 11000000
315 323Z 6115000 H für Gesellschaftsgestaltung Koblenz (Priv. FH) 20231 99999 323 07 07111000
317 324Y 6164520 Duale Hochschule Gera-Eisenach in Gera (FH) 20162 99999 324 16 16052000
318 326Z 6154000 DHSH - Duale Hochschule Schleswig-Holstein, Kiel (Priv. FH) 20182 99999 326 01 01002000
319 327Z 1036500 German International University Berlin (Priv. U) 20192 99999 327 11 11000000
320 329V 329W 1026700 1107200 HMU Health and Medical University Potsdam Campus München (Priv. U) HMU Health and Medical University Potsdam in Düsseldof (Priv. U) 20262 20252 99999 A91 A85 09 05 09162000 05111000
321 329W 329Y 1107200 1162500 HMU Health and Medical University Potsdam in Düsseldorf (Priv. U) HMU Health and Medical University Erfurt in Erfurt (Priv. U) 20252 20231 99999 20261 A85 A81 05 16 05111000 16051000
322 329Z 1043000 HMU Health and Medical University Potsdam in Potsdam (Priv. U) 20252 99999 329 12 12054000
323 336Z 6034500 Digital Business University Berlin (Priv. FH) 20192 99999 336 11 11000000
324 337Z 1022700 Technische Universität Nürnberg 20211 99999 337 09 09564000
325 343Z 6060800 Berufliche Hochschule Hamburg (FH) 20212 99999 343 02 02000000
344Z 1162500 HMU Health and Medical University Erfurt (Priv. U) 20262 99999 344 16 16051000
326 349Z 6044000 XU Exponential University Potsdam (Priv. FH) 20192 99999 349 12 12054000
327 350Z 1041500 U Potsdam 20042 99999 350 12 12054000
328 364Z 6044500 Gisma University of Applied Sciences Potsdam (Priv. FH) 20242 99999 364 12 12054000
382 426Z B071800 Deutsche Berufsakademie Sport und Gesundheit (dba) in Baunatal (Private BA) 20172 99999 426 06 06633003
383 427Z B094510 Berufsakademie Wilhelmshaven (Private BA) 20192 99999 427 03 03405000
384 428Z B123010 Berufsakademie Heimerer GmbH, Quierschied (Private BA) 20202 99999 428 10 10041516
468Z 6027600 Promotionszentrum MeVuT – Menschenorient. Forsch. für innova. Versorgung und Teilhabe, München 20262 99999 468 09 09162000
469Z 6116200 Promotionscluster Angewandte Informatik, Trier 20261 99999 469 07 07211000
470Z 6116400 Promotionscluster Medical and Environmental Life Sciences, Kaiserslautern 20261 99999 470 07 07312000
471Z 6116600 Promotionscluster Nachhaltige Technik und Naturwissenschaften, Koblenz 20261 99999 471 07 07111000
472Z 6027800 Promotionszentrum Prisma Health - Deggendorf 20262 99999 472 09 09271119
473Z 6029900 CAF - Promotionszentrum LiWa - Technische Hochschule Würzburg-Schweinfurt 20262 99999 473 09 09663000
385 474Z 6029800 Promotionszentrum Integrierte Mobilität - München 20252 99999 474 09 09162000
386 475Z 6028100 Promotionszentrum Advanced Building Technologies, TH Rosenheim 20242 99999 475 09 09163000
387 476Z 6028000 Promotionszentrum NITRO, TH Augsburg 20242 99999 476 09 09761000
544 607Y 7101510 Hochschule für Polizei und öffentliche Verwaltung NW in Bielefeld (Verw-FH) 20192 99999 607 05 05711000
545 618Z 7100500 H der Justiz NW in Bad Münstereifel (Verw-FH) 20252 99999 618 05 05366004
546 619Z 7101000 Hochschule für Finanzen Nordrhein-Westfalen in Nordkirchen (Verw-FH) 20201 99999 619 05 05558028
620N 7081000 Hochschule des Bundes für öffentliche Verwaltung, Fachbereich Finanzen in Rostock 20261 99999 A88 13 13003000
547 620P 7072030 Hochschule des Bundes für öffentliche Verwaltung, Kassel 20171 99999 A08 06 06611000
548 620Q 7151000 Hochschule des Bundes für öffentliche Verwaltung, Lübeck 20171 99999 A09 01 01003000
549 620S 7102020 Hochschule des Bundes für öffentliche Verwaltung, Münster 20142 99999 620 05 05515000
560 623Y 6072010 Technische Hochschule Mittelhessen (THM) in Friedberg (FH) 20111 99999 623 06 06440008
561 624W 6072530 Hochschule RheinMain (FH) in Wiesbaden 20092 99999 624 06 06414000
562 624X 6072520 Hochschule RheinMain (FH) in Rüsselsheim 20092 99999 624 06 06433012
627X 6076030 Evangelische Hochschule Darmstadt (EHD) in Kassel (Kirchl. FH) 20261 99999 627 06 06611000
563 627Y 6076020 Evangelische Hochschule Darmstadt (EHD) in Schwalmstadt (Kirchl. FH) 20171 99999 627 06 06634022
564 627Z 6076010 Evangelische Hochschule Darmstadt (EHD) in Darmstadt (Kirchl. FH) 20171 99999 627 06 06411000
565 628Q 6075030 Hochschule Fresenius Idstein in Wiesbaden (Priv. FH) 20191 99999 628 06 06414000
587 641U 6105130 Europäische FH (EUFH) in Köln (Priv. FH) 20182 99999 641 05 05315000
588 641V 6105140 Europäische FH (EUFH) in Rheine (Priv. FH) 20182 99999 641 05 05566076
589 641W 6083500 Europäische FH (EUFH) in Rostock (Priv. FH) 20171 99999 A22 13 13003000
590 641X 6105120 Europäische FH (EUFH) in Neuss (Priv. FH) 20171 20262 99999 641 05 05162024
591 641Y 6105110 Europäische FH (EUFH) in Brühl (Priv. FH) 20171 20262 99999 641 05 05362012
592 643Z 6043000 Theologische Hochschule Elstal (Kirchl. FH) 20171 99999 643 12 12063357
593 651Z 6110500 Technische Hochschule Bingen (FH) 20162 99999 651 07 07339005
594 652W 6111030 Hochschule Kaiserslautern in Zweibrücken (FH) 20142 99999 652 07 07320000
607 665Z 6112000 Hochschule für Wirtschaft und Gesellschaft Ludwigshafen (FH) 20191 99999 665 07 07314000
608 666Z 6113500 Hochschule Worms (FH) 20142 99999 666 07 07319000
609 667Z 6112500 Hochschule Mainz (FH) 20142 99999 667 07 07315000
610 668Z 6122500 6026300 Hochschule für angewandtes Management, Teltow (Priv. FH) Hochschule für angewandtes Management, Ismaning (Priv. FH) 20261 20172 99999 668 12 09 12069616 09184130
611 669Z 6074500 Provadis School of Intern. Management and Technology, Frankfurt a.M. (Priv. FH) 20042 99999 669 06 06412000
612 671Y 6010320 Hochschule Aalen - Technik und Wirtschaft in Schwäbisch Gmünd (FH) 20161 99999 671 08 08136065
613 671Z 6010310 Hochschule Aalen - Technik und Wirtschaft in Aalen (FH) 20161 99999 671 08 08136088
722 794Z 6042500 Technische Hochschule Wildau (FH) 20171 99999 794 12 12061540
723 795Z 6042000 FH Potsdam 20042 99999 795 12 12054000
724 796Y 6143000 Steinbeis Hochschule in Magdeburg (Priv. FH) 20222 99999 A80 15 15003000
725 796Z 1034000 Steinbeis Hochschule in Berlin (Priv. U) 20222 99999 796 11 11000000
726 797U 6133810 SRH University of Applied Sciences Heidelberg in Leipzig (Priv. FH) 20252 99999 A39 14 14713000
727 797V 6053000 SRH University of Applied Sciences Heidelberg in Bremen (Priv. FH) 20241 99999 A84 04 04011000
728 797W 6154200 SRH University of Applied Sciences Heidelberg in Heide (Priv. FH) 20242 99999 A83 01 01051044
807 822X 6132820 Duale Hochschule Sachsen - Breitenbrunn (FH) 20251 99999 822 14 14521110
808 822Y 6132810 Duale Hochschule Sachsen - Bautzen (FH) 20251 99999 822 14 14625020
809 823Z 1043500 German University of Digital Science (GUDS), Potsdam (Priv. U) 20252 99999 823 12 12054000
824Z 5014500 Hochschule für Kirchenmusik Rottenburg (Kirchl. Kunst-H) 20262 99999 824 08 08416036
825Z 5014700 Hochschule für Kirchenmusik Tübingen (Kirchl. Kunst-H) 20262 99999 825 08 08416041
826Z 5014900 Hochschule für Kirchenmusik Heidelberg (Kirchl. Kunst-H) 20262 99999 826 08 08221000
810 900Z 8980500 Sonstige deutsche Hochschulen 20042 99999 900 98 00000000
811 950Z 8985000 Berufsakademie in Deutschland 20171 99999 950 98 00000000
812 999Z 9990500 Hochschulen im Ausland 20042 99999 999 99 00000000

2
src/de/statspez/plausi/astat/csv/ReadMeGasthoererstatistik.txt

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
Informationen zur ausgegebenen Statistik
Name: Gasthoererstatistik
Version: 1
Zeitraum: WS 2026
Zeitraum: WS 2025

4
src/de/statspez/plausi/astat/csv/Staat.csv

@ -232,18 +232,20 @@ @@ -232,18 +232,20 @@
532;5750;Vanuatu;20042;99999;5;0;
533;5400;Niue;20042;99999;5;0;
534;5840;Kleinere Amerikanische Überseeinseln (US-Überseegebiet);20142;99999;5;0;
535;5850;Norwegisches Antarktis-Territorium (Norwegisches Überseegebiet);20142;20261;5;0;
536;5350;Neuseeland;20042;99999;5;0;
537;5450;Palau;20042;99999;5;0;
538;5500;Papua-Neuguinea;20042;99999;5;0;
540;5700;Tuvalu;20042;99999;5;0;
541;5650;Tonga;20042;99999;5;0;
542;5895;Französische Süd- und Antarktisgebiete (Französisches Überseegebiet);20142;20261;5;0;
543;5600;Samoa;20042;99999;5;0;
544;5200;Marshallinseln;20042;99999;5;0;
545;5250;Mikronesien;20042;99999;5;0;
546;5805;Chilenische Antarktis (Chilenisches Überseegebiet);20142;99999;5;0;
547;5860;Australisches Antarktis-Territorium (Australisches Überseegebiet);20142;99999;5;0;
548;5800;Argentinische Antarktis (Argentinisches Überseegebiet);20142;99999;5;0;
555;5790;Antarktis;20262;99999;5;0;
549;5810;Neuseeländische Antarktis: Ross-Nebengebiet (Neuseeländisches Überseegebiet);20142;20261;5;0;
997;9000;Staatenlos;20042;99999;9;0;
998;9200;Ungeklärt;20042;99999;9;0;
999;9400;Ohne Angabe;20042;99999;9;0;

1 000 1001 Deutschland 20042 99999 1 1
232 532 5750 Vanuatu 20042 99999 5 0
233 533 5400 Niue 20042 99999 5 0
234 534 5840 Kleinere Amerikanische Überseeinseln (US-Überseegebiet) 20142 99999 5 0
235 535 5850 Norwegisches Antarktis-Territorium (Norwegisches Überseegebiet) 20142 20261 5 0
236 536 5350 Neuseeland 20042 99999 5 0
237 537 5450 Palau 20042 99999 5 0
238 538 5500 Papua-Neuguinea 20042 99999 5 0
239 540 5700 Tuvalu 20042 99999 5 0
240 541 5650 Tonga 20042 99999 5 0
241 542 5895 Französische Süd- und Antarktisgebiete (Französisches Überseegebiet) 20142 20261 5 0
242 543 5600 Samoa 20042 99999 5 0
243 544 5200 Marshallinseln 20042 99999 5 0
244 545 5250 Mikronesien 20042 99999 5 0
245 546 5805 Chilenische Antarktis (Chilenisches Überseegebiet) 20142 99999 5 0
246 547 5860 Australisches Antarktis-Territorium (Australisches Überseegebiet) 20142 99999 5 0
247 548 5800 Argentinische Antarktis (Argentinisches Überseegebiet) 20142 99999 5 0
248 555 549 5790 5810 Antarktis Neuseeländische Antarktis: Ross-Nebengebiet (Neuseeländisches Überseegebiet) 20262 20142 99999 20261 5 0
249 997 9000 Staatenlos 20042 99999 9 0
250 998 9200 Ungeklärt 20042 99999 9 0
251 999 9400 Ohne Angabe 20042 99999 9 0

94
src/de/statspez/plausi/astat/csv/Studienfach_Land.csv

@ -5825,9 +5825,9 @@ M05;20252;12;0;1332108;99999;Angewandte Psychologie;311;132 @@ -5825,9 +5825,9 @@ M05;20252;12;0;1332108;99999;Angewandte Psychologie;311;132
254;20062;04;0;0116790;99999;Sachunterricht (einschl.Schulgarten);142;254
255;20072;04;0;0329200;99999;Archiv- und Bibliothekswesen;322;255
256;20072;04;1;0329650;20251;Rechtspflege;380;256
256;20252;04;1;0329650;99999;Rechtspflege;380;-1
256;20252;04;1;0329650;20251;Rechtspflege;380;-1
258;20072;04;1;0329150;20251;Arbeitsverwaltung;345;258
258;20252;04;0;0329150;99999;Arbeitsverwaltung;345;
258;20252;04;0;0329150;20251;Arbeitsverwaltung;345;
261;20062;04;0;0329190;99999;Innere Verwaltung;345;261
262;20072;04;1;0329350;20251;Bibliothekswesen;322;262
262;20252;04;0;0329350;99999;Bibliothekswesen;322;022
@ -5835,7 +5835,7 @@ M05;20252;12;0;1332108;99999;Angewandte Psychologie;311;132 @@ -5835,7 +5835,7 @@ M05;20252;12;0;1332108;99999;Angewandte Psychologie;311;132
263;20072;04;0;0329600;99999;Bundeswehr, Justiz und Polizei;861;263
264;20171;04;0;5070359;99999;Arbeits- und Sozialverwaltung, Berufsberatung;343;264
265;20112;04;1;0329300;20251;Bankwesen;343;265
265;20252;04;0;0329300;99999;Bankwesen;343;
265;20252;04;0;0329300;20251;Bankwesen;343;
266;20062;04;1;0329180;20251;Finanzverwaltung;344;266
266;20252;04;0;0329180;99999;Finanzverwaltung;344;269
268;20072;04;0;0329750;99999;Verkehrswesen;840;268
@ -6391,7 +6391,7 @@ L40;20201;04;0;0330150;99999;Logistikmanangement (duales Studium);340;021 @@ -6391,7 +6391,7 @@ L40;20201;04;0;0330150;99999;Logistikmanangement (duales Studium);340;021
167;20072;06;0;0330200;20251;Europäische Wirtschaft;340;167
167;20252;06;1;1230200;99999;Europäische Wirtschaft;340;167
168;20072;06;1;0329550;20251;Justizvollzug;861;168
168;20252;06;1;1129550;99999;Justizvollzug;861;168
168;20252;06;1;1129550;20251;Justizvollzug;861;168
169;20072;06;0;0104100;99999;Ethik;226;169
170;20072;06;1;0117900;20151;Verhaltensgestörtenpädagogik;141;170
171;20072;06;0;0869200;99999;Vermessungswesen (Geodäsie);581;171
@ -6483,27 +6483,27 @@ L40;20201;04;0;0330150;99999;Logistikmanangement (duales Studium);340;021 @@ -6483,27 +6483,27 @@ L40;20201;04;0;0330150;99999;Logistikmanangement (duales Studium);340;021
255;20072;06;0;0329200;20251;Archivwesen;322;255
255;20252;06;1;1129150;99999;Archiv- und Bibliothekswesen;322;255
256;20072;06;1;0329650;20251;Rechtspflege;380;256
256;20252;06;1;1129650;99999;Rechtspflege;380;256
256;20252;06;1;1129650;20251;Rechtspflege;380;256
257;20072;06;1;0329100;20251;Arbeits- und Berufsberatung;762;257
257;20252;06;1;1129100;99999;Arbeits- und Berufsberatung;762;257
257;20252;06;1;1129100;20251;Arbeits- und Berufsberatung;762;257
258;20072;06;1;0329150;20251;Arbeitsverwaltung;345;258
258;20252;06;1;1129150;99999;Arbeitsverwaltung;345;258
258;20252;06;1;1129150;20251;Arbeitsverwaltung;345;258
259;20072;06;0;0329250;20251;Auswärtige Angelegenheiten;345;259
259;20252;06;1;1129250;99999;Auswärtige Angelegenheiten;345;259
260;20072;06;1;0329400;20251;Bundeswehrverwaltung;345;260
260;20252;06;1;1129400;99999;Bundeswehrverwaltung;345;260
260;20252;06;1;1129400;20251;Bundeswehrverwaltung;345;260
261;20072;06;0;0329500;20251;Innere Verwaltung;345;261
261;20252;06;1;1129500;99999;Innere Verwaltung;345;261
262;20072;06;1;0329350;20251;Bibliothekswesen;322;262
262;20252;06;1;1129350;99999;Bibliothekswesen;322;262
262;20252;06;1;1129350;20251;Bibliothekswesen;322;262
263;20072;06;0;0329600;20251;Polizei/Verfassungsschutz;861;263
263;20252;06;1;1129300;99999;Bundeswehr, Justiz und Polizei;861;263
264;20072;06;0;0329700;20251;Sozialversicherung;343;264
264;20252;06;1;1129100;99999;Arbeits- und Sozialverwaltung, Berufsberatung;343;264
265;20072;06;1;0329300;20251;Bankwesen;343;265
265;20252;06;1;1129300;99999;Bankwesen;343;265
265;20252;06;1;1129300;20251;Bankwesen;343;265
266;20072;06;1;0329450;20251;Finanzverwaltung;344;266
266;20252;06;1;1129450;99999;Finanzverwaltung;344;266
266;20252;06;1;1129450;20251;Finanzverwaltung;344;266
268;20072;06;0;0329750;20251;Verkehrswesen;840;268
268;20252;06;1;1129750;99999;Verkehrswesen;840;268
269;20072;06;0;0329850;20251;Zoll- und Steuerverwaltung;344;269
@ -7148,29 +7148,29 @@ a51;20252;06;1;1333409;99999;Bildungswissenschaften: Bildung im globalen Technis @@ -7148,29 +7148,29 @@ a51;20252;06;1;1333409;99999;Bildungswissenschaften: Bildung im globalen Technis
a52;20112;06;0;0330186;20251;Quant. Economics, Quant. Finance, Quant. Management, Quant. Marketing and Law a. Quant. Economics;340;021
a52;20252;06;1;1230186;99999;Quant. Economics, Quant. Finance, Quant. Management, Quant. Marketing and Law a. Quant. Economics;340;021
a53;20112;06;1;0330187;20122;Quantitative Economics;340;021
a53;20252;06;1;1230187;99999;Quantitative Economics;340;021
a53;20252;06;1;1230187;20122;Quantitative Economics;340;021
a54;20112;06;1;0330188;20122;Quantitative Finance;340;021
a54;20252;06;1;1230188;99999;Quantitative Finance;340;021
a54;20252;06;1;1230188;20122;Quantitative Finance;340;021
a55;20112;06;1;0330189;20122;Quantitative Management;340;021
a55;20252;06;1;1230189;99999;Quantitative Management;340;021
a55;20252;06;1;1230189;20122;Quantitative Management;340;021
a56;20112;06;1;0330190;20122;Quantitative Marketing;340;021
a56;20252;06;1;1230190;99999;Quantitative Marketing;340;021
a56;20252;06;1;1230190;20122;Quantitative Marketing;340;021
a57;20112;06;1;0330191;20122;Law and Quantitative Economics;340;021
a57;20252;06;1;1230191;99999;Law and Quantitative Economics;340;021
a57;20252;06;1;1230191;20122;Law and Quantitative Economics;340;021
a58;20112;06;0;0868113;99999;Bauingenieurwesen B07M03;582;017
a59;20112;06;0;0438704;20151;Wirtschaftsinformatik B08M02;481;277
a59;20152;06;0;0871704;99999;Wirtschaftsinformatik B08M02;481;277
a60;20112;06;0;0101107;99999;Empirische Sprachwissenschaften B08M02;220;004
a61;20112;06;1;0330192;20122;Ph.D. in Economics;340;021
a61;20252;06;1;1230192;99999;Ph.D. in Economics;340;021
a61;20252;06;1;1230192;20122;Ph.D. in Economics;340;021
a62;20112;06;1;0330193;20122;Ph.D. in Finance;340;021
a62;20252;06;1;1230193;99999;Ph.D. in Finance;340;021
a62;20252;06;1;1230193;20122;Ph.D. in Finance;340;021
a63;20112;06;1;0330194;20251;Ph.D. in Management;340;021
a63;20252;06;1;1230194;99999;Ph.D. in Management;340;021
a64;20112;06;1;0330195;20122;Ph.D. in Marketing;340;021
a64;20252;06;1;1230195;99999;Ph.D. in Marketing;340;021
a64;20252;06;1;1230195;20122;Ph.D. in Marketing;340;021
a65;20112;06;1;0330196;20122;Ph.D. in Law and Economics;340;021
a65;20252;06;1;1230196;99999;Ph.D. in Law and Economics;340;021
a65;20252;06;1;1230196;20122;Ph.D. in Law and Economics;340;021
a66;20111;06;0;0107401;99999;Gebärdensprachdolmetschen;220;018
a67;20111;06;0;0116408;20151;Frühpädagogik – Leitung und Management von Kindertageseinrichtungen;142;052
a67;20152;06;0;0333408;20251;Frühpädagogik – Leitung und Management von Kindertageseinrichtungen;142;052
@ -7392,8 +7392,8 @@ c10;20252;06;1;1128104;99999;Wirtschaftsrecht – Nachhaltigkeit und Ethik;380;1 @@ -7392,8 +7392,8 @@ c10;20252;06;1;1128104;99999;Wirtschaftsrecht – Nachhaltigkeit und Ethik;380;1
c11;20142;06;0;0330293;20251;Accounting, Finance, Controlling;340;021
c11;20252;06;1;1230293;99999;Accounting, Finance, Controlling;340;021
c12;20142;06;2;0331210;20151;LifeCycle Catering;621;125
c12;20152;06;2;0758210;20251;LifeCycle Catering;621;125
c12;20252;06;1;1231210;99999;LifeCycle Catering;621;125
c12;20152;06;2;0758210;99999;LifeCycle Catering;621;125
c12;20252;06;1;1231210;20151;LifeCycle Catering;621;125
c13;20142;06;0;0327308;20251;Systementwicklung Inklusion;760;253
c13;20252;06;1;1327308;99999;Systementwicklung Inklusion;762;253
c14;20142;06;0;0758552;99999;International Wine Business;621;227
@ -8718,13 +8718,13 @@ l11;20252;06;1;0980405;99999;Langfach Musik;145;113 @@ -8718,13 +8718,13 @@ l11;20252;06;1;0980405;99999;Langfach Musik;145;113
081;20062;03;0;0113400;20251;Iranistik;222;081
081;20252;03;0;0113400;99999;Iranistik;310;081
082;20062;03;0;0863460;99999;Holz-/Fasertechnik;543;082
083;20062;03;0;0113450;20251;Islamwissenschaft;222;083
083;20062;03;0;0113450;99999;Islamwissenschaft;222;083
083;20252;03;0;0113450;99999;Islamwissenschaft;310;083
084;20062;03;0;0111200;99999;Italienisch;222;084
085;20062;03;0;0113500;99999;Japanologie;222;085
086;20062;03;0;0103300;99999;Kath. Theologie, -Religionslehre;221;086
087;20062;03;1;0117500;20151;Körperbehindertenpädagogik;141;087
088;20062;03;0;0864600;20251;Optoelektronik;524;088
088;20062;03;0;0864600;99999;Optoelektronik;524;088
088;20252;03;0;0864600;99999;Optoelektronik;523;088
089;20062;03;0;0865500;99999;Verkehrsingenieurwesen;525;089
090;20062;03;1;0101200;20201;Lernbereich Sprach- und Kulturwissenschaften;142;090
@ -8762,7 +8762,7 @@ l11;20252;06;1;0980405;99999;Langfach Musik;145;113 @@ -8762,7 +8762,7 @@ l11;20252;06;1;0980405;99999;Langfach Musik;145;113
115;20252;03;0;1333500;99999;Grundschul-/Primarstufenpädagogik;144;115
116;20062;03;0;0976500;99999;Textilgestaltung;214;116
117;20062;03;1;0116100;20151;Ausländerpädagogik;142;117
117;20152;03;0;0333100;20251;Ausländerpädagogik;142;117
117;20152;03;0;0333100;99999;Ausländerpädagogik;142;117
117;20252;03;0;1333100;99999;Ausländerpädagogik;142;117
118;20062;03;0;0437300;99999;Technomathematik;461;118
119;20062;03;0;0109600;99999;Niederländisch;223;119
@ -8787,7 +8787,7 @@ l11;20252;06;1;0980405;99999;Langfach Musik;145;113 @@ -8787,7 +8787,7 @@ l11;20252;06;1;0980405;99999;Langfach Musik;145;113
132;20252;03;0;1332100;99999;Psychologie;311;132
133;20062;03;3;0106400;20081;Medienkunde/Kommunikations-/Informationswissenschaft;321;133
134;20062;03;0;0867100;99999;Raumplanung;581;134
135;20062;03;0;0328100;20251;Rechtswissenschaft;380;135
135;20062;03;0;0328100;99999;Rechtswissenschaft;380;135
135;20252;03;0;1128100;99999;Rechtswissenschaft;380;135
136;20062;03;0;0104300;99999;Religionswissenschaft;221;136
137;20062;03;0;0111400;99999;Romanistik (Romanische Philologie, Einzelsprachen a.n.g.);222;137
@ -8842,11 +8842,11 @@ l11;20252;06;1;0980405;99999;Langfach Musik;145;113 @@ -8842,11 +8842,11 @@ l11;20252;06;1;0980405;99999;Langfach Musik;145;113
169;20062;03;0;0104100;99999;Ethik;226;169
170;20062;03;1;0117900;20151;Verhaltensgestörtenpädagogik;141;170
171;20062;03;0;0869200;99999;Vermessungswesen (Geodäsie);581;171
172;20062;03;0;0329800;20251;Verwaltungswissenschaft/-wesen;345;172
172;20062;03;0;0329800;99999;Verwaltungswissenschaft/-wesen;345;172
172;20252;03;0;1129800;99999;Verwaltungswissenschaft/-wesen;345;172
173;20062;03;0;0114200;99999;Ethnologie;312;173
174;20062;03;0;0114300;99999;Volkskunde;312;174
175;20062;03;0;0330450;20251;Volkswirtschaftslehre;314;175
175;20062;03;0;0330450;99999;Volkswirtschaftslehre;314;175
175;20252;03;0;1230450;99999;Volkswirtschaftslehre;314;175
176;20062;03;0;0976600;20251;Werkerziehung;142;176
176;20252;03;0;0976600;99999;Werkerziehung;145;176
@ -8857,12 +8857,12 @@ l11;20252;06;1;0980405;99999;Langfach Musik;145;113 @@ -8857,12 +8857,12 @@ l11;20252;06;1;0980405;99999;Langfach Musik;145;113
179;20092;03;0;0331200;20251;Wirtschaftsingenieurwesen mit wirtschaftswissenschaftlichem Schwerpunkt;340;179
179;20252;03;0;1231200;99999;Wirtschaftsingenieurwesen mit wirtschaftswissenschaftlichem Schwerpunkt;340;179
180;20062;03;0;0113550;99999;Kaukasistik;222;180
181;20062;03;0;0330500;20251;Wirtschaftspädagogik;142;181
181;20062;03;0;0330500;99999;Wirtschaftspädagogik;142;181
181;20252;03;0;1230500;99999;Wirtschaftspädagogik;145;181
182;20062;03;0;0330250;20251;Intern. Betriebswirtschaft/Management;340;182
182;20252;03;0;1230250;99999;Intern. Betriebswirtschaft/Management;340;182
183;20062;03;0;0105600;99999;Wirtschafts-/Sozialgeschichte;225;183
184;20062;03;0;0330550;20251;Wirtschaftswissenschaften;340;184
184;20062;03;0;0330550;99999;Wirtschaftswissenschaften;340;184
184;20252;03;0;1230550;99999;Wirtschaftswissenschaften;340;184
185;20062;03;0;0550100;99999;Zahnmedizin;724;185
186;20062;03;0;0436300;20251;Lernbereich Naturwissenschaft/Sachunterricht;142;186
@ -8944,7 +8944,7 @@ l11;20252;06;1;0980405;99999;Langfach Musik;145;113 @@ -8944,7 +8944,7 @@ l11;20252;06;1;0980405;99999;Langfach Musik;145;113
256;20062;03;1;0329650;20251;Rechtspflege;380;256
257;20062;03;1;0329100;20251;Arbeits- und Berufsberatung;762;257
258;20062;03;1;0329150;20251;Arbeitsverwaltung;345;258
259;20062;03;0;0329250;20251;Auswärtige Angelegenheiten;345;259
259;20062;03;0;0329250;99999;Auswärtige Angelegenheiten;345;259
259;20252;03;0;1129250;99999;Auswärtige Angelegenheiten;345;259
260;20062;03;1;0329400;20251;Bundeswehrverwaltung;345;260
261;20062;03;0;0329500;20251;Innere Verwaltung;345;261
@ -8968,7 +8968,7 @@ l11;20252;06;1;0980405;99999;Langfach Musik;145;113 @@ -8968,7 +8968,7 @@ l11;20252;06;1;0980405;99999;Langfach Musik;145;113
271;20252;03;0;0109200;99999;Deutsch als Fremdsprache oder als Zweitsprache;222;271
272;20062;03;0;0105100;99999;Alte Geschichte;225;272
273;20062;03;0;0105400;99999;Mittlere und neuere Geschichte;225;273
274;20062;03;0;0330350;20251;Tourismuswirtschaft;812;274
274;20062;03;0;0330350;99999;Tourismuswirtschaft;812;274
274;20252;03;0;1230350;99999;Tourismuswirtschaft;812;274
275;20072;03;1;0436102;20201;Geschichte der Mathematik und Naturwissenschaften;142;275
275;20202;03;2;0105700;99999;Wissenschaftsgeschichte/Technikgeschichte;225;275
@ -9018,7 +9018,7 @@ l11;20252;06;1;0980405;99999;Langfach Musik;145;113 @@ -9018,7 +9018,7 @@ l11;20252;06;1;0980405;99999;Langfach Musik;145;113
361;20152;03;0;0333700;20251;Schulpädagogik;142;361
361;20252;03;0;1333700;99999;Schulpädagogik;142;361
365;20122;03;2;0116450;20151;Pädagogik der frühen Kindheit;142;365
365;20152;03;1;0333450;20251;Pädagogik der frühen Kindheit;142;365
365;20152;03;1;0333450;99999;Pädagogik der frühen Kindheit;142;365
365;20252;03;0;1333550;99999;Kindheitspädagogik;142;365
370;20092;03;0;0870100;99999;Wirtschaftsingenieurwesen mit ingenieurwissenschaftlichem Schwerpunkt;520;370
371;20062;03;0;0758500;99999;Tierproduktion;621;371
@ -9159,19 +9159,19 @@ l11;20252;06;1;0980405;99999;Langfach Musik;145;113 @@ -9159,19 +9159,19 @@ l11;20252;06;1;0980405;99999;Langfach Musik;145;113
681;20062;03;1;0439201;20121;Regen.Energiequellen(Erg.);441;128
681;20222;03;2;0439500;99999;Quantum Engineering;441;128
682;20062;03;0;0862302;99999;Steine,Erden;521;076
683;20062;03;0;0323101;20251;Umweltrecht/-ökonomie(WB);142;030
683;20062;03;0;0323101;99999;Umweltrecht/-ökonomie(WB);142;030
683;20252;03;0;1128102;99999;Nachhaltigkeitsrecht - Energie, Ressourcen, Umwelt;380;135
684;20112;03;0;0101104;20251;Angewandte Kulturwissenschaften-Kulturinformatik(NF);142;004
684;20252;03;0;0101104;99999;Kulturwiss., Angew., ~, Kritische, Kulturanalysen: Repräsentation, Performativität u. Gender, Interk;220;004
685;20062;03;0;0326201;20251;Sozial-und Kulturgeschichte;312;148
685;20062;03;0;0326201;99999;Sozial-und Kulturgeschichte;312;148
685;20252;03;0;1326201;99999;Kulturwiss., Ang. -Sozial- u. -Kulturgeschichte-, Sozialwissenschaftliche Diversitätsforschung;312;148
686;20062;03;0;0222201;20251;Spiel-u.Bewegungskultur;813;029
686;20252;03;0;1335201;99999;Kulturwiss., Ang. -Spiel- und -Bewegungskultur;813;029
687;20062;03;0;0107301;20251;Sprache u. Kommunikation;220;284
687;20062;03;0;0107301;99999;Sprache u. Kommunikation;220;284
687;20252;03;0;0107301;99999;Kulturwiss., Ang. -Sprache und Kommunikation-, Medientext und Medienübersetzung;223;284
688;20112;03;1;0438302;20151;Umweltinformatik(NF);481;079
688;20152;03;2;0871302;20231;Umweltinformatik(NF);481;079
688;20232;03;1;0328201;20251;Tax Law - Steuerrecht;380;042
688;20232;03;1;0328201;99999;Tax Law - Steuerrecht;380;042
688;20252;03;0;1128201;99999;Tax Law - Steuerrecht, Taxation;380;042
689;20062;03;0;0326202;20251;Europäische Studien;312;148
689;20252;03;0;1326202;99999;Europäische Studien, Eur. Integration/Eur. Studies, Euroculture, Europäisches Regieren;312;148
@ -9179,7 +9179,7 @@ l11;20252;06;1;0980405;99999;Langfach Musik;145;113 @@ -9179,7 +9179,7 @@ l11;20252;06;1;0980405;99999;Langfach Musik;145;113
690;20232;03;0;0758301;99999;International horticulture;622;060
691;20062;03;0;0548202;99999;Kosmetologie(Körperpflege);345;232
692;20062;03;1;0760201;99999;Lebensmittelwiss., Agrar- und Lebensmittelwirtschaft, Food Research and Development;814;071
693;20062;03;0;0548203;20251;Gesundheit;345;232
693;20062;03;0;0548203;99999;Gesundheit;345;232
693;20252;03;0;0548251;99999;Midwifery;723;550
694;20062;03;1;0866101;99999;Bautechnik, Wirtschaftsinformatik-Bau;581;013
695;20062;03;0;0861301;20251;Farbtechnik und Raumgestaltung (Gestaltungstechnik);142;199
@ -9194,7 +9194,7 @@ l11;20252;06;1;0980405;99999;Langfach Musik;145;113 @@ -9194,7 +9194,7 @@ l11;20252;06;1;0980405;99999;Langfach Musik;145;113
701;20101;03;3;0334200;20201;Internationales Informationsmanagement;321;303
701;20202;03;2;0334200;20251;Internationales Informationsmanagement;321;303
701;20252;03;0;1334200;99999;Informationsmanagement (int.), Informations- und Wissensmanagement, ,Int Informationsmgt-Information;321;303
702;20062;03;0;0330154;20251;Krankenversicherungsmanagement;340;021
702;20062;03;0;0330154;99999;Krankenversicherungsmanagement;340;021
702;20252;03;0;1230154;99999;Krankenversicherung/-management;340;021
703;20062;03;1;0757101;99999;Landesentwicklung/Landschaftsentwicklung, European Master in Territorial Development;581;093
706;20062;03;0;0331202;20251;Industrial Business System (IBS );340;179
@ -9216,24 +9216,24 @@ l11;20252;06;1;0980405;99999;Langfach Musik;145;113 @@ -9216,24 +9216,24 @@ l11;20252;06;1;0980405;99999;Langfach Musik;145;113
719;20252;03;0;0861201;99999;Hörtechnik u. Audiologie;520;072
721;20062;03;1;0865504;99999;Logistik und Informationsmanagement im Praxisverbund;525;089
722;20072;03;1;0869201;99999;Geoinformatik/-informationswesen, Navigation und Umweltrobotik;581;171
723;20072;03;0;0330155;20251;Betr.Wirtsch.-Automobilwirtschaft;340;021
723;20072;03;0;0330155;99999;Betr.Wirtsch.-Automobilwirtschaft;340;021
723;20252;03;0;1230155;99999;Automobilwirtschaft;;
724;20062;03;0;0330552;20251;Organization Studies;340;184
724;20062;03;0;0330552;99999;Organization Studies;340;184
724;20252;03;0;1230552;99999;Organisation Studies, Performance Leadership, Führung und Organisation, WiPäd u. Personalentwicklung;340;184
725;20062;03;1;0330553;20072;Ergotherapie/Logopädie/Physiotherapie/Medizinalfachberufe;340;184
725;20081;03;1;0548301;20251;Ergotherapie/Logopädie/Physiotherapie/Medizinalfachberufe;722;233
725;20252;03;0;0548301;99999;Ergotherapie, Logopädie, Physiotherapie, Medizinalfachberufe, Berufspäd. u. Mgt. im Rettungsdienst;345;232
726;20062;03;0;0330156;20251;Reedereilogistik;340;021
726;20062;03;0;0330156;99999;Reedereilogistik;340;021
726;20252;03;0;1230156;99999;Schiffs- und Reedereimanagement, Maritime Technology and Shipping Management;340;021
727;20062;03;1;0330157;20111;Umwelt-u.Qualitätsmanagement;340;021
727;20112;03;0;0330557;20251;Umwelt-u.Qualitätsmanagement;340;184
727;20112;03;0;0330557;99999;Umwelt-u.Qualitätsmanagement;340;184
727;20252;03;0;1230557;99999;Umwelt-u.Qualitätsmanagement;340;184
728;20062;03;0;0863823;20251;Environmental Engineering (Internat.Umwelt-Verfahrenstechnik),Bio-u.Enviromental Engineering;850;457
728;20062;03;0;0863823;99999;Environmental Engineering (Internat.Umwelt-Verfahrenstechnik),Bio-u.Enviromental Engineering;850;457
728;20252;03;0;0863823;99999;Bio- und Umwelttechnik, Geoenvironmental Engineering;851;457
729;20062;03;0;0101101;20251;Kognitive Science;142;004
729;20252;03;0;0101101;99999;Cognitive Science;220;004
731;20062;03;1;0109601;99999;Niederlande-Studien;223;119
732;20062;03;0;0326203;20251;Frauen-u.Geschlechterstudien,Geschlechterforschung;312;148
732;20062;03;0;0326203;99999;Frauen-u.Geschlechterstudien,Geschlechterforschung;312;148
732;20252;03;0;1326203;99999;Frauen- u. Geschlechterstudien, Geschlechterforschung, Gender Studies;312;148
733;20062;03;0;0101102;20251;Kulturwissenschaftliche Geschlechterstudien;142;004
733;20252;03;0;0101102;99999;Kulturwiss. Geschlechterstudien, Combines Studies, Kultureller Wandel, KuWi: Kritik der Gegenwart - ;220;004
@ -9243,7 +9243,7 @@ l11;20252;06;1;0980405;99999;Langfach Musik;145;113 @@ -9243,7 +9243,7 @@ l11;20252;06;1;0980405;99999;Langfach Musik;145;113
736;20062;03;1;0115102;20151;Kinder-und Jugendlichenpsychotherapie;311;132
736;20152;03;0;0332102;20251;Kinder-und Jugendlichenpsychotherapie;311;132
736;20252;03;0;1332102;99999;Kinder- u. Jugendpsychiatrie/Jugendlichenpsychotherapie;311;132
737;20072;03;0;0331203;20251;Kreislaufwirtschaft;340;179
737;20072;03;0;0331203;99999;Kreislaufwirtschaft;340;179
737;20252;03;0;1231203;99999;Kreislaufwirtschaft;340;179
738;20072;03;0;0327304;20252;Supervision u.Organisationsberatung;760;253
738;20252;03;0;1327304;99999;Supervision u.Organisationsberatung;762;253
@ -9342,7 +9342,7 @@ l11;20252;06;1;0980405;99999;Langfach Musik;145;113 @@ -9342,7 +9342,7 @@ l11;20252;06;1;0980405;99999;Langfach Musik;145;113
798;20072;03;0;0863597;99999;Industrieinformatik im Praxisverbund;520;104
799;20062;03;0;0437105;99999;Mathematik und ihre Vermittlung/Elementarmathematik;461;105
800;20062;03;1;0442203;99999;Biologische Diversität u. Ökologie, Biodiversity: Ecology, Evolution, and Conservation;421;026
801;20062;03;0;0330158;20251;Bildungsmanagement und Schulentwicklung;340;021
801;20062;03;0;0330158;99999;Bildungsmanagement und Schulentwicklung;340;021
801;20252;03;0;1230158;99999;Bildungsmanagement u. Schulentwicklg, Business Admin. in Educational Management, Bildungs- u. Wissen;340;021
802;20062;03;0;0331212;20251;Wirtschaftsingenieur / Techn. Vertrieb;340;179
802;20252;03;0;1231212;99999;Technischer Vertrieb im Praxisverbund, Management betrieblicher Systeme im Praxisverbund;340;179

Can't render this file because it is too large.

BIN
src/de/statspez/plausi/generated/PL-Pruefungen-ERHEBUNG_GASTHOERER_2026_06_08.pdf

Binary file not shown.

68
src/de/statspez/plausi/generated/PL-Pruefungen-Gasthoerer_2026_06_08.csv

@ -1,68 +0,0 @@ @@ -1,68 +0,0 @@
"Evas";"Stat";"Bzr";"Ablaufname";"Ablaufkommentar";"Ablaufbeschreibung";"Statistikname";"Person";"Telefon";"eMail";"Datum";"Ablauf";"Themenbereich";"Nr.-Ablauf";"Prüfschlüssel";"Beschreibung";"Prüfbedingung";"Prüfungsart";"Fehlergewicht";"Korrekturhinweis";"Fehlertext-kurz";"Fehlertext-lang";"Status";"Spezifiziert-in";"Kommentar"
"";"T_Gasthoerer";"";"T_Gasthoerer.Gasthoerer_Ablauf";"Ablauf wurde automatisch generiert";"";"VIE_Hochschulstatistik_PL.Gasthoerer";"Feuerstein-T";"TELEFON";"EMAIL";"08.06.2026 - 09:28";"T_Gasthoerer.Gasthoerer_Ablauf";"";"1";"Einsetzung_1";"";"REIHE (EF2) IN MATERIAL HOCHSCHULFACHBEREICH (key)";"Fehler - maschinelle Korrektur";"1";"";"Einsetzung des Hochschulfachbereiches";"Anhand des Signierschlüssels der Hochschule (EF2) wird über die Schlüsseltabelle HOCHSCHULFACHBEREICH der Sortierschlüssel der Hochschule (EF15) übernommen.";"Freigegeben";"VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer";""
"";"T_Gasthoerer";"";"T_Gasthoerer.Gasthoerer_Ablauf";"Ablauf wurde automatisch generiert";"";"VIE_Hochschulstatistik_PL.Gasthoerer";"Feuerstein-T";"TELEFON";"EMAIL";"08.06.2026 - 09:28";"T_Gasthoerer.Gasthoerer_Ablauf";"";"2";"Einsetzung_2";"";"EF15 /= LEER";"Fehler - maschinelle Korrektur";"1";"";"Einsetzung des Berichtslandes";"Anhand der Satzstellen 2 bis 3 des eingesetzten Sortierschlüssels der Hochschule wird der Sortierschlüssel Bundesland in das EF13 eingesetzt.";"Freigegeben";"VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer";""
"";"T_Gasthoerer";"";"T_Gasthoerer.Gasthoerer_Ablauf";"Ablauf wurde automatisch generiert";"";"VIE_Hochschulstatistik_PL.Gasthoerer";"Feuerstein-T";"TELEFON";"EMAIL";"08.06.2026 - 09:28";"T_Gasthoerer.Gasthoerer_Ablauf";"";"3";"Einsetzung_4";"";"REIHE (EF7) IN MATERIAL STAAT (key)";"Fehler - maschinelle Korrektur";"1";"";"Einsetzung des Sortieschlüssels Staatsangehörigkeit";"Anhand des Signierschlüssels Staatsangehörigkeit (EF7) wird über die Schlüsseltabelle STAAT der Sortierschlüssel für die Staatsangehörigkeit (EF16) eingesetzt.";"Freigegeben";"VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer";""
"";"T_Gasthoerer";"";"T_Gasthoerer.Gasthoerer_Ablauf";"Ablauf wurde automatisch generiert";"";"VIE_Hochschulstatistik_PL.Gasthoerer";"Feuerstein-T";"TELEFON";"EMAIL";"08.06.2026 - 09:28";"T_Gasthoerer.Gasthoerer_Ablauf";"";"4";"MA_00";"";"EF2 /= LEER";"Fehler - maschinelle Korrektur";"1";"";"Leerzeichen und NULL werden in LEER umgesetzt";"Alle leeren Eingabefelder die von den liefernden Hochschulen mit Leerzeichen oder NULL gefüllt wurden, werden auf LEER gesetzt. Ist EF1 ungleich '1' wird '1' eingesetzt. Ebenso werden die Eingabefelder für die Sortierschlüssel wieder auf LEER gesetzt damit diese bei jedem neuen PL Durchlauf wieder neu gesetzt werden.";"Freigegeben";"VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer";""
"";"T_Gasthoerer";"";"T_Gasthoerer.Gasthoerer_Ablauf";"Ablauf wurde automatisch generiert";"";"VIE_Hochschulstatistik_PL.Gasthoerer";"Feuerstein-T";"TELEFON";"EMAIL";"08.06.2026 - 09:28";"T_Gasthoerer.Gasthoerer_Ablauf";"";"5";"MA_01";"";"EF9 /= LEER UND EF10 /= LEER UND EF9 = EF10";"Fehler - maschinelle Korrektur";"1";"";"Löschen der 2. Fachrichtung";"Wenn die 1. und 2. Fachrichtung gleich sind, wird die 2. gelöscht.";"Freigegeben";"VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer";"Ehemalige Einsetzung A1/"
"";"T_Gasthoerer";"";"T_Gasthoerer.Gasthoerer_Ablauf";"Ablauf wurde automatisch generiert";"";"VIE_Hochschulstatistik_PL.Gasthoerer";"Feuerstein-T";"TELEFON";"EMAIL";"08.06.2026 - 09:28";"T_Gasthoerer.Gasthoerer_Ablauf";"";"6";"MA_05";"";"EF9 /= LEER UND EF11 /= LEER UND EF9 = EF11";"Fehler - maschinelle Korrektur";"1";"";"Löschen der 3. Fachrichtung";"Wenn die 1. und 3. Fachrichtung gleich sind, wird die 3. gelöscht.";"Freigegeben";"VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer";"Ehemalige Einsetzung A2/"
"";"T_Gasthoerer";"";"T_Gasthoerer.Gasthoerer_Ablauf";"Ablauf wurde automatisch generiert";"";"VIE_Hochschulstatistik_PL.Gasthoerer";"Feuerstein-T";"TELEFON";"EMAIL";"08.06.2026 - 09:28";"T_Gasthoerer.Gasthoerer_Ablauf";"";"7";"MA_10";"";"EF10 /= LEER UND EF11 /= LEER UND EF10 = EF11";"Fehler - maschinelle Korrektur";"1";"";"Löschen der 3. Fachrichtung";"Wenn die 2. und 3. Fachrichtung gleich sind, wird die 3. gelöscht.";"Freigegeben";"VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer";"Ehemalige Einsetzung A3/"
"";"T_Gasthoerer";"";"T_Gasthoerer.Gasthoerer_Ablauf";"Ablauf wurde automatisch generiert";"";"VIE_Hochschulstatistik_PL.Gasthoerer";"Feuerstein-T";"TELEFON";"EMAIL";"08.06.2026 - 09:28";"T_Gasthoerer.Gasthoerer_Ablauf";"";"8";"MA_15";"";"EF9 = LEER UND EF10 /= LEER UND EF11 /= LEER";"Fehler - maschinelle Korrektur";"1";"";"Umsetzung der Fachrichtungen";"Wenn die 1. Fachrichtung LEER und die 2. und 3. Fachrichtung belegt ist. wird die 2. und 3. Fachrichtung als 1. und 2. Fachrichtung gesetzt.";"Freigegeben";"VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer";"Ehemalige Einsetzung A4/"
"";"T_Gasthoerer";"";"T_Gasthoerer.Gasthoerer_Ablauf";"Ablauf wurde automatisch generiert";"";"VIE_Hochschulstatistik_PL.Gasthoerer";"Feuerstein-T";"TELEFON";"EMAIL";"08.06.2026 - 09:28";"T_Gasthoerer.Gasthoerer_Ablauf";"";"9";"MA_20";"";"EF10 = LEER UND EF11 /= LEER";"Fehler - maschinelle Korrektur";"1";"";"Umsetzung der Fachrichtungen";"Wenn die 2. Fachrichtung LEER und die 3. Fachrichtung belegt ist. wird die 3. Fachrichtung als 2. Fachrichtung gesetzt.";"Freigegeben";"VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer";"Ehemalige Einsetzung A5/"
"";"T_Gasthoerer";"";"T_Gasthoerer.Gasthoerer_Ablauf";"Ablauf wurde automatisch generiert";"";"VIE_Hochschulstatistik_PL.Gasthoerer";"Feuerstein-T";"TELEFON";"EMAIL";"08.06.2026 - 09:28";"T_Gasthoerer.Gasthoerer_Ablauf";"";"10";"MA_25";"";"EF9 = LEER UND EF10 /= LEER";"Fehler - maschinelle Korrektur";"1";"";"Umsetzung der Fachrichtungen";"Wenn die 1. Fachrichtung LEER und die 2. Fachrichtung belegt ist. wird die 2. Fachrichtung als 1. Fachrichtung gesetzt.";"Freigegeben";"VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer";"Ehemalige Einsetzung A6/"
"";"T_Gasthoerer";"";"T_Gasthoerer.Gasthoerer_Ablauf";"Ablauf wurde automatisch generiert";"";"VIE_Hochschulstatistik_PL.Gasthoerer";"Feuerstein-T";"TELEFON";"EMAIL";"08.06.2026 - 09:28";"T_Gasthoerer.Gasthoerer_Ablauf";"";"11";"MA_30";"";"EF9 = LEER UND EF10 = LEER UND EF11 = LEER";"Fehler - maschinelle Korrektur";"1";"";"Einsetzung von '99' in die 1. Fachrichtung";"Wenn die 1. bis 3. Fachrichtung nicht belegt sind, wird in die 1. Fachrichtung '99' = Ungeklärt/Unbekannt eingesetzt.";"Freigegeben";"VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer";"Ehemalige Einsetzung A7/"
"";"T_Gasthoerer";"";"T_Gasthoerer.Gasthoerer_Ablauf";"Ablauf wurde automatisch generiert";"";"VIE_Hochschulstatistik_PL.Gasthoerer";"Feuerstein-T";"TELEFON";"EMAIL";"08.06.2026 - 09:28";"T_Gasthoerer.Gasthoerer_Ablauf";"";"12";"SIG_05";"";"(FUNKTION WERTLAENGE (EF2) /= 4)
ODER
(EF2 IN {'4720','4730','4740','4750','4760','4770','4780','4790','4800','4810','4820','4830','4840','4850','4860','4870','4880','4890','4900',
'4910','4920','4930','409A','409B','409C','409D','409E'})
ODER
(FUNKTION NUMERISCH (EF2) UND EF2 IN {3980, 3990, 4000, 4001, 4002..4500})
ODER
(NICHT EF2 IN MATERIAL HOCHSCHULFACHBEREICH (key))";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Falsche Signatur bei der Hochschule";"Die Signatur der Hochschule (EF2) ist gleich '9000','9500', '9990' oder ist eine Signatur einer Berufsakademie oder eines Promotionszentrums oder stimmt nicht mit dem Signierschlüssel aus der Schlüsseltabelle HOCHSCHULFACHBEREICH überein.";"Freigegeben";"VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer";"Ehemaliger Signierfehler 03*"
"";"T_Gasthoerer";"";"T_Gasthoerer.Gasthoerer_Ablauf";"Ablauf wurde automatisch generiert";"";"VIE_Hochschulstatistik_PL.Gasthoerer";"Feuerstein-T";"TELEFON";"EMAIL";"08.06.2026 - 09:28";"T_Gasthoerer.Gasthoerer_Ablauf";"";"13";"SIG_10";"";"(FUNKTION WERTLAENGE (EF5) /= 1)
ODER
(NICHT &NUMERISCH (EF5))
ODER
NICHT (EF5 IN {'1','2','3','4'})";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Falsche Signatur beim Geschlecht";"Geschlecht (EF5) ungleich 1, 2, 3 oder 4, Stand der PL Klassen vom 08.06.2026";"Freigegeben";"VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer";"Ehemaliger Signierfehler 04*"
"";"T_Gasthoerer";"";"T_Gasthoerer.Gasthoerer_Ablauf";"Ablauf wurde automatisch generiert";"";"VIE_Hochschulstatistik_PL.Gasthoerer";"Feuerstein-T";"TELEFON";"EMAIL";"08.06.2026 - 09:28";"T_Gasthoerer.Gasthoerer_Ablauf";"";"14";"SIG_15";"";"(FUNKTION WERTLAENGE (EF6U1) /= 2 UND EF6U1 /= LEER)
ODER
(NICHT &NUMERISCH (EF6U1) UND EF6U1 /= LEER)
ODER
NICHT (EF6U1 IN {LEER,01,02..12})";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Falsche Signatur beim Geburtsmonat";"Die Signatur des Geburtsmonats (EF6U1) ist NICHT gleich LEER oder 01 bis 12.";"Freigegeben";"VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer";"Ehemaliger Signierfehler 05*"
"";"T_Gasthoerer";"";"T_Gasthoerer.Gasthoerer_Ablauf";"Ablauf wurde automatisch generiert";"";"VIE_Hochschulstatistik_PL.Gasthoerer";"Feuerstein-T";"TELEFON";"EMAIL";"08.06.2026 - 09:28";"T_Gasthoerer.Gasthoerer_Ablauf";"";"15";"SIG_20";"";"EF6U1= LEER";"Prüfhinweis - manuelle Korrektur (""Kannfehler"")";"1";"";"Der Geburtsmonat ist LEER";"Der Geburtsmonat (EF6U1) ist gleich LEER.";"Freigegeben";"VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer";"Ehemaliger Signierfehler 06"
"";"T_Gasthoerer";"";"T_Gasthoerer.Gasthoerer_Ablauf";"Ablauf wurde automatisch generiert";"";"VIE_Hochschulstatistik_PL.Gasthoerer";"Feuerstein-T";"TELEFON";"EMAIL";"08.06.2026 - 09:28";"T_Gasthoerer.Gasthoerer_Ablauf";"";"16";"SIG_25";"";"(FUNKTION WERTLAENGE (EF6U2) /= 4 UND EF6U2 /= LEER)
ODER
(NICHT &NUMERISCH (EF6U2) UND EF6U2 /= LEER)
ODER
NICHT (EF6U2 IN {LEER,1912,1913..2020})";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Falsche Signatur beim Geburtsjahr";"Die Signatur des Geburtsjahres (EF6U2) ist NICHT gleich LEER oder 1913 bis 2020.";"Freigegeben";"VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer";"Ehemaliger Signierfehler 07*"
"";"T_Gasthoerer";"";"T_Gasthoerer.Gasthoerer_Ablauf";"Ablauf wurde automatisch generiert";"";"VIE_Hochschulstatistik_PL.Gasthoerer";"Feuerstein-T";"TELEFON";"EMAIL";"08.06.2026 - 09:28";"T_Gasthoerer.Gasthoerer_Ablauf";"";"17";"SIG_30";"";"EF6U2 = LEER";"Prüfhinweis - manuelle Korrektur (""Kannfehler"")";"1";"";"Das Geburtsjahr ist LEER";"Das Geburtsjahr (EF6U2) ist gleich LEER.";"Freigegeben";"VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer";"Ehemaliger Signierfehler 08"
"";"T_Gasthoerer";"";"T_Gasthoerer.Gasthoerer_Ablauf";"Ablauf wurde automatisch generiert";"";"VIE_Hochschulstatistik_PL.Gasthoerer";"Feuerstein-T";"TELEFON";"EMAIL";"08.06.2026 - 09:28";"T_Gasthoerer.Gasthoerer_Ablauf";"";"18";"SIG_35";"";"(EF7 /= LEER UND NICHT (EF7 IN MATERIAL STAAT (key)))
ODER
(EF7 IN {'112','113','114','115','116','182','211','214','216','311','315','316','317','319','321',
'325','329','331','338','341','342','343','344','352','510','511','512','513','514','515','517',
'519','520','521','522','525','528','529','534','535', '542','546','547','548','549','555'})";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Falsche Signatur bei der Staatsangehörigkeit";"Die Signatur der Staatsangehörigkeit (EF7) ist ungleich LEER und stimmt nicht mit dem Signierschlüssel aus der Schlüsseltabelle STAAT überein ODER es ist ein Signierschlüssel eines abhängigen Gebietes angegeben.";"Freigegeben";"VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer";"Ehemaliger Signierfehler 09*"
"";"T_Gasthoerer";"";"T_Gasthoerer.Gasthoerer_Ablauf";"Ablauf wurde automatisch generiert";"";"VIE_Hochschulstatistik_PL.Gasthoerer";"Feuerstein-T";"TELEFON";"EMAIL";"08.06.2026 - 09:28";"T_Gasthoerer.Gasthoerer_Ablauf";"";"19";"SIG_40";"";"EF7 = LEER";"Prüfhinweis - manuelle Korrektur (""Kannfehler"")";"1";"";"Die Signatur der Staatsangehörigkeit ist LEER";"Die Signatur der Staatsangehörigkeit (EF7) ist gleich LEER.";"Freigegeben";"VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer";"Ehemaliger Signierfehler 10"
"";"T_Gasthoerer";"";"T_Gasthoerer.Gasthoerer_Ablauf";"Ablauf wurde automatisch generiert";"";"VIE_Hochschulstatistik_PL.Gasthoerer";"Feuerstein-T";"TELEFON";"EMAIL";"08.06.2026 - 09:28";"T_Gasthoerer.Gasthoerer_Ablauf";"";"20";"SIG_45";"";"NICHT (EF9 IN MATERIAL FACHRICHTUNGENGAST (key))";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Falsche Signatur bei der 1. Fachrichtung";"Die Signatur der 1. Fachrichtung (EF9) stimmt nicht mit dem Signierschlüssel aus der Schlüsseltabelle FACHRICHTUNGENGAST überein.";"Freigegeben";"VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer";"Ehemaliger Signierfehler 11*"
"";"T_Gasthoerer";"";"T_Gasthoerer.Gasthoerer_Ablauf";"Ablauf wurde automatisch generiert";"";"VIE_Hochschulstatistik_PL.Gasthoerer";"Feuerstein-T";"TELEFON";"EMAIL";"08.06.2026 - 09:28";"T_Gasthoerer.Gasthoerer_Ablauf";"";"21";"SIG_50";"";"EF10 /= LEER UND
NICHT (EF10 IN MATERIAL FACHRICHTUNGENGAST (key))";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Falsche Signatur bei der 2. Fachrichtung";"Die Signatur der 2. Fachrichtung (EF10) ist ungleich LEER und stimmt nicht mit dem Signierschlüssel aus der Schlüsseltabelle FACHRICHTUNGENGAST überein.";"Freigegeben";"VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer";"Ehemaliger Signierfehler 12*"
"";"T_Gasthoerer";"";"T_Gasthoerer.Gasthoerer_Ablauf";"Ablauf wurde automatisch generiert";"";"VIE_Hochschulstatistik_PL.Gasthoerer";"Feuerstein-T";"TELEFON";"EMAIL";"08.06.2026 - 09:28";"T_Gasthoerer.Gasthoerer_Ablauf";"";"22";"SIG_55";"";"EF11 /= LEER UND
NICHT (EF11 IN MATERIAL FACHRICHTUNGENGAST (key))";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Falsche Signatur bei der 3. Fachrichtung";"Die Signatur der 3. Fachrichtung (EF11) ist ungleich LEER und stimmt nicht mit dem Signierschlüssel aus der Schlüsseltabelle FACHRICHTUNGENGAST überein.";"Freigegeben";"VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer";"Ehemaliger Signierfehler 13*"
"";"T_Gasthoerer";"";"T_Gasthoerer.Gasthoerer_Ablauf";"Ablauf wurde automatisch generiert";"";"VIE_Hochschulstatistik_PL.Gasthoerer";"Feuerstein-T";"TELEFON";"EMAIL";"08.06.2026 - 09:28";"T_Gasthoerer.Gasthoerer_Ablauf";"";"23";"SIG_60";"";"FUNKTION NUMERISCH (EF6U2)
UND
FUNKTION NUMERISCH (EF14)
UND
EF6U2 /= LEER
UND
FUNKTION ALS_GANZZAHL(EF14) - FUNKTION ALS_GANZZAHL(EF6U2) < 10";"Prüfhinweis - manuelle Korrektur (""Kannfehler"")";"1";"";"Der Gasthörer ist jünger als 10 Jahre";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer";"Ehemaliger Signierfehler 14"
"";"T_Gasthoerer";"";"T_Gasthoerer.Gasthoerer_Ablauf";"Ablauf wurde automatisch generiert";"";"VIE_Hochschulstatistik_PL.Gasthoerer";"Feuerstein-T";"TELEFON";"EMAIL";"08.06.2026 - 09:28";"T_Gasthoerer.Gasthoerer_Ablauf";"";"24";"SIG_65";"";"EF2 IN {'0081', '0089', '0261', '0269', '0271', '0279', '0309', '0311', '0319', '0361', '0369', '0371',
'0379', '0491', '0499', '0640', '0650', '0950', '1001', '1011', '1021', '1029', '1031', '1039', '1081', '1089',
'1091', '1099', '1101', '1109', '1111', '1119', '1121', '1129', '1161', '1169', '1241', '1249', '1251', '1258',
'1259', '1271', '1279', '1293', '1319', '1321', '1329', '1331', '1339', '1341', '1349', '1361',
'1362', '1369', '1378', '1379', '1390', '1481', '1489', '1491', '1499', '1639', '1731', '1739',
'1821', '1829', '5021', '5022', '5024', '5025', '5026', '5027', '5028', '5150', '5160', '6245', '7467', '6380',
'8100'}";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Der Signierschlüssel für die Hochschulen ist nicht zulässig";"Bei Signierschlüssel der Hochschule (EF2) steht ein Schlüssel der nur bei der Personal und Stellenstatistik zulässig ist.";"Freigegeben";"VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer";""
"";"T_Gasthoerer";"";"T_Gasthoerer.Gasthoerer_Ablauf";"Ablauf wurde automatisch generiert";"";"VIE_Hochschulstatistik_PL.Gasthoerer";"Feuerstein-T";"TELEFON";"EMAIL";"08.06.2026 - 09:28";"T_Gasthoerer.Gasthoerer_Ablauf";"";"25";"UF_05M";"";"EF6U1 /= LEER UND EF6U2 = LEER";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Geburtsmonat vorhanden und Geburtsjahr fehlt";"Der Geburtsmonat (EF6U1) ist besetzt, das Geburtsdatum (EF6U2) jedoch fehlt.";"Freigegeben";"VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer";"Ehemalige Kombinationskontrolle AA*"
"";"T_Gasthoerer";"";"T_Gasthoerer.Gasthoerer_Ablauf";"Ablauf wurde automatisch generiert";"";"VIE_Hochschulstatistik_PL.Gasthoerer";"Feuerstein-T";"TELEFON";"EMAIL";"08.06.2026 - 09:28";"T_Gasthoerer.Gasthoerer_Ablauf";"";"26";"Einsetzung_5";"";"REIHE (EF9) IN MATERIAL FACHRICHTUNGENGAST (key)";"Fehler - maschinelle Korrektur";"1";"";"Einsetzung der Fächergruppe und des Sortierschlüssels der 1. Fachrichtung";"Einsetzung der Fächergruppe (EF17) und des Sortierschlüssels der 1. Fachrichtung (EF18) anhand der Schüsseltabelle FACHRICHTUNGENGAST über den Signierschlüssel (EF9).";"Freigegeben";"VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer";""
"";"T_Gasthoerer";"";"T_Gasthoerer.Gasthoerer_Ablauf";"Ablauf wurde automatisch generiert";"";"VIE_Hochschulstatistik_PL.Gasthoerer";"Feuerstein-T";"TELEFON";"EMAIL";"08.06.2026 - 09:28";"T_Gasthoerer.Gasthoerer_Ablauf";"";"27";"Einsetzung_6";"";"EF10 /= LEER UND
REIHE (EF10) IN MATERIAL FACHRICHTUNGENGAST (key)";"Fehler - maschinelle Korrektur";"1";"";"Einsetzung der Fächergruppe und des Sortierschlüssels der 2. Fachrichtung";"Einsetzung der Fächergruppe (EF19) und des Sortierschlüssels der 2. Fachrichtung (EF20) anhand der Schüsseltabelle FACHRICHTUNGENGAST über den Signierschlüssel (EF10).";"Freigegeben";"VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer";""
"";"T_Gasthoerer";"";"T_Gasthoerer.Gasthoerer_Ablauf";"Ablauf wurde automatisch generiert";"";"VIE_Hochschulstatistik_PL.Gasthoerer";"Feuerstein-T";"TELEFON";"EMAIL";"08.06.2026 - 09:28";"T_Gasthoerer.Gasthoerer_Ablauf";"";"28";"Einsetzung_7";"";"EF11 /= LEER UND
REIHE (EF11) IN MATERIAL FACHRICHTUNGENGAST (key)";"Fehler - maschinelle Korrektur";"1";"";"Einsetzung der Fächergruppe und des Sortierschlüssels der 3. Fachrichtung";"Einsetzung der Fächergruppe (EF21) und des Sortierschlüssels der 3. Fachrichtung (EF22) anhand der Schüsseltabelle FACHRICHTUNGENGAST über den Signierschlüssel (EF11).";"Freigegeben";"VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer";""
1 Evas Stat Bzr Ablaufname Ablaufkommentar Ablaufbeschreibung Statistikname Person Telefon eMail Datum Ablauf Themenbereich Nr.-Ablauf Prüfschlüssel Beschreibung Prüfbedingung Prüfungsart Fehlergewicht Korrekturhinweis Fehlertext-kurz Fehlertext-lang Status Spezifiziert-in Kommentar
2 T_Gasthoerer T_Gasthoerer.Gasthoerer_Ablauf Ablauf wurde automatisch generiert VIE_Hochschulstatistik_PL.Gasthoerer Feuerstein-T TELEFON EMAIL 08.06.2026 - 09:28 T_Gasthoerer.Gasthoerer_Ablauf 1 Einsetzung_1 REIHE (EF2) IN MATERIAL HOCHSCHULFACHBEREICH (key) Fehler - maschinelle Korrektur 1 Einsetzung des Hochschulfachbereiches Anhand des Signierschlüssels der Hochschule (EF2) wird über die Schlüsseltabelle HOCHSCHULFACHBEREICH der Sortierschlüssel der Hochschule (EF15) übernommen. Freigegeben VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer
3 T_Gasthoerer T_Gasthoerer.Gasthoerer_Ablauf Ablauf wurde automatisch generiert VIE_Hochschulstatistik_PL.Gasthoerer Feuerstein-T TELEFON EMAIL 08.06.2026 - 09:28 T_Gasthoerer.Gasthoerer_Ablauf 2 Einsetzung_2 EF15 /= LEER Fehler - maschinelle Korrektur 1 Einsetzung des Berichtslandes Anhand der Satzstellen 2 bis 3 des eingesetzten Sortierschlüssels der Hochschule wird der Sortierschlüssel Bundesland in das EF13 eingesetzt. Freigegeben VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer
4 T_Gasthoerer T_Gasthoerer.Gasthoerer_Ablauf Ablauf wurde automatisch generiert VIE_Hochschulstatistik_PL.Gasthoerer Feuerstein-T TELEFON EMAIL 08.06.2026 - 09:28 T_Gasthoerer.Gasthoerer_Ablauf 3 Einsetzung_4 REIHE (EF7) IN MATERIAL STAAT (key) Fehler - maschinelle Korrektur 1 Einsetzung des Sortieschlüssels Staatsangehörigkeit Anhand des Signierschlüssels Staatsangehörigkeit (EF7) wird über die Schlüsseltabelle STAAT der Sortierschlüssel für die Staatsangehörigkeit (EF16) eingesetzt. Freigegeben VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer
5 T_Gasthoerer T_Gasthoerer.Gasthoerer_Ablauf Ablauf wurde automatisch generiert VIE_Hochschulstatistik_PL.Gasthoerer Feuerstein-T TELEFON EMAIL 08.06.2026 - 09:28 T_Gasthoerer.Gasthoerer_Ablauf 4 MA_00 EF2 /= LEER Fehler - maschinelle Korrektur 1 Leerzeichen und NULL werden in LEER umgesetzt Alle leeren Eingabefelder die von den liefernden Hochschulen mit Leerzeichen oder NULL gefüllt wurden, werden auf LEER gesetzt. Ist EF1 ungleich '1' wird '1' eingesetzt. Ebenso werden die Eingabefelder für die Sortierschlüssel wieder auf LEER gesetzt damit diese bei jedem neuen PL Durchlauf wieder neu gesetzt werden. Freigegeben VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer
6 T_Gasthoerer T_Gasthoerer.Gasthoerer_Ablauf Ablauf wurde automatisch generiert VIE_Hochschulstatistik_PL.Gasthoerer Feuerstein-T TELEFON EMAIL 08.06.2026 - 09:28 T_Gasthoerer.Gasthoerer_Ablauf 5 MA_01 EF9 /= LEER UND EF10 /= LEER UND EF9 = EF10 Fehler - maschinelle Korrektur 1 Löschen der 2. Fachrichtung Wenn die 1. und 2. Fachrichtung gleich sind, wird die 2. gelöscht. Freigegeben VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer Ehemalige Einsetzung A1/
7 T_Gasthoerer T_Gasthoerer.Gasthoerer_Ablauf Ablauf wurde automatisch generiert VIE_Hochschulstatistik_PL.Gasthoerer Feuerstein-T TELEFON EMAIL 08.06.2026 - 09:28 T_Gasthoerer.Gasthoerer_Ablauf 6 MA_05 EF9 /= LEER UND EF11 /= LEER UND EF9 = EF11 Fehler - maschinelle Korrektur 1 Löschen der 3. Fachrichtung Wenn die 1. und 3. Fachrichtung gleich sind, wird die 3. gelöscht. Freigegeben VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer Ehemalige Einsetzung A2/
8 T_Gasthoerer T_Gasthoerer.Gasthoerer_Ablauf Ablauf wurde automatisch generiert VIE_Hochschulstatistik_PL.Gasthoerer Feuerstein-T TELEFON EMAIL 08.06.2026 - 09:28 T_Gasthoerer.Gasthoerer_Ablauf 7 MA_10 EF10 /= LEER UND EF11 /= LEER UND EF10 = EF11 Fehler - maschinelle Korrektur 1 Löschen der 3. Fachrichtung Wenn die 2. und 3. Fachrichtung gleich sind, wird die 3. gelöscht. Freigegeben VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer Ehemalige Einsetzung A3/
9 T_Gasthoerer T_Gasthoerer.Gasthoerer_Ablauf Ablauf wurde automatisch generiert VIE_Hochschulstatistik_PL.Gasthoerer Feuerstein-T TELEFON EMAIL 08.06.2026 - 09:28 T_Gasthoerer.Gasthoerer_Ablauf 8 MA_15 EF9 = LEER UND EF10 /= LEER UND EF11 /= LEER Fehler - maschinelle Korrektur 1 Umsetzung der Fachrichtungen Wenn die 1. Fachrichtung LEER und die 2. und 3. Fachrichtung belegt ist. wird die 2. und 3. Fachrichtung als 1. und 2. Fachrichtung gesetzt. Freigegeben VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer Ehemalige Einsetzung A4/
10 T_Gasthoerer T_Gasthoerer.Gasthoerer_Ablauf Ablauf wurde automatisch generiert VIE_Hochschulstatistik_PL.Gasthoerer Feuerstein-T TELEFON EMAIL 08.06.2026 - 09:28 T_Gasthoerer.Gasthoerer_Ablauf 9 MA_20 EF10 = LEER UND EF11 /= LEER Fehler - maschinelle Korrektur 1 Umsetzung der Fachrichtungen Wenn die 2. Fachrichtung LEER und die 3. Fachrichtung belegt ist. wird die 3. Fachrichtung als 2. Fachrichtung gesetzt. Freigegeben VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer Ehemalige Einsetzung A5/
11 T_Gasthoerer T_Gasthoerer.Gasthoerer_Ablauf Ablauf wurde automatisch generiert VIE_Hochschulstatistik_PL.Gasthoerer Feuerstein-T TELEFON EMAIL 08.06.2026 - 09:28 T_Gasthoerer.Gasthoerer_Ablauf 10 MA_25 EF9 = LEER UND EF10 /= LEER Fehler - maschinelle Korrektur 1 Umsetzung der Fachrichtungen Wenn die 1. Fachrichtung LEER und die 2. Fachrichtung belegt ist. wird die 2. Fachrichtung als 1. Fachrichtung gesetzt. Freigegeben VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer Ehemalige Einsetzung A6/
12 T_Gasthoerer T_Gasthoerer.Gasthoerer_Ablauf Ablauf wurde automatisch generiert VIE_Hochschulstatistik_PL.Gasthoerer Feuerstein-T TELEFON EMAIL 08.06.2026 - 09:28 T_Gasthoerer.Gasthoerer_Ablauf 11 MA_30 EF9 = LEER UND EF10 = LEER UND EF11 = LEER Fehler - maschinelle Korrektur 1 Einsetzung von '99' in die 1. Fachrichtung Wenn die 1. bis 3. Fachrichtung nicht belegt sind, wird in die 1. Fachrichtung '99' = Ungeklärt/Unbekannt eingesetzt. Freigegeben VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer Ehemalige Einsetzung A7/
13 T_Gasthoerer T_Gasthoerer.Gasthoerer_Ablauf Ablauf wurde automatisch generiert VIE_Hochschulstatistik_PL.Gasthoerer Feuerstein-T TELEFON EMAIL 08.06.2026 - 09:28 T_Gasthoerer.Gasthoerer_Ablauf 12 SIG_05 (FUNKTION WERTLAENGE (EF2) /= 4) ODER (EF2 IN {'4720','4730','4740','4750','4760','4770','4780','4790','4800','4810','4820','4830','4840','4850','4860','4870','4880','4890','4900', '4910','4920','4930','409A','409B','409C','409D','409E'}) ODER (FUNKTION NUMERISCH (EF2) UND EF2 IN {3980, 3990, 4000, 4001, 4002..4500}) ODER (NICHT EF2 IN MATERIAL HOCHSCHULFACHBEREICH (key)) Fehler - manuelle Korrektur ("Mussfehler") 1 Falsche Signatur bei der Hochschule Die Signatur der Hochschule (EF2) ist gleich '9000','9500', '9990' oder ist eine Signatur einer Berufsakademie oder eines Promotionszentrums oder stimmt nicht mit dem Signierschlüssel aus der Schlüsseltabelle HOCHSCHULFACHBEREICH überein. Freigegeben VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer Ehemaliger Signierfehler 03*
14 T_Gasthoerer T_Gasthoerer.Gasthoerer_Ablauf Ablauf wurde automatisch generiert VIE_Hochschulstatistik_PL.Gasthoerer Feuerstein-T TELEFON EMAIL 08.06.2026 - 09:28 T_Gasthoerer.Gasthoerer_Ablauf 13 SIG_10 (FUNKTION WERTLAENGE (EF5) /= 1) ODER (NICHT &NUMERISCH (EF5)) ODER NICHT (EF5 IN {'1','2','3','4'}) Fehler - manuelle Korrektur ("Mussfehler") 1 Falsche Signatur beim Geschlecht Geschlecht (EF5) ungleich 1, 2, 3 oder 4, Stand der PL Klassen vom 08.06.2026 Freigegeben VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer Ehemaliger Signierfehler 04*
15 T_Gasthoerer T_Gasthoerer.Gasthoerer_Ablauf Ablauf wurde automatisch generiert VIE_Hochschulstatistik_PL.Gasthoerer Feuerstein-T TELEFON EMAIL 08.06.2026 - 09:28 T_Gasthoerer.Gasthoerer_Ablauf 14 SIG_15 (FUNKTION WERTLAENGE (EF6U1) /= 2 UND EF6U1 /= LEER) ODER (NICHT &NUMERISCH (EF6U1) UND EF6U1 /= LEER) ODER NICHT (EF6U1 IN {LEER,01,02..12}) Fehler - manuelle Korrektur ("Mussfehler") 1 Falsche Signatur beim Geburtsmonat Die Signatur des Geburtsmonats (EF6U1) ist NICHT gleich LEER oder 01 bis 12. Freigegeben VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer Ehemaliger Signierfehler 05*
16 T_Gasthoerer T_Gasthoerer.Gasthoerer_Ablauf Ablauf wurde automatisch generiert VIE_Hochschulstatistik_PL.Gasthoerer Feuerstein-T TELEFON EMAIL 08.06.2026 - 09:28 T_Gasthoerer.Gasthoerer_Ablauf 15 SIG_20 EF6U1= LEER Prüfhinweis - manuelle Korrektur ("Kannfehler") 1 Der Geburtsmonat ist LEER Der Geburtsmonat (EF6U1) ist gleich LEER. Freigegeben VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer Ehemaliger Signierfehler 06
17 T_Gasthoerer T_Gasthoerer.Gasthoerer_Ablauf Ablauf wurde automatisch generiert VIE_Hochschulstatistik_PL.Gasthoerer Feuerstein-T TELEFON EMAIL 08.06.2026 - 09:28 T_Gasthoerer.Gasthoerer_Ablauf 16 SIG_25 (FUNKTION WERTLAENGE (EF6U2) /= 4 UND EF6U2 /= LEER) ODER (NICHT &NUMERISCH (EF6U2) UND EF6U2 /= LEER) ODER NICHT (EF6U2 IN {LEER,1912,1913..2020}) Fehler - manuelle Korrektur ("Mussfehler") 1 Falsche Signatur beim Geburtsjahr Die Signatur des Geburtsjahres (EF6U2) ist NICHT gleich LEER oder 1913 bis 2020. Freigegeben VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer Ehemaliger Signierfehler 07*
18 T_Gasthoerer T_Gasthoerer.Gasthoerer_Ablauf Ablauf wurde automatisch generiert VIE_Hochschulstatistik_PL.Gasthoerer Feuerstein-T TELEFON EMAIL 08.06.2026 - 09:28 T_Gasthoerer.Gasthoerer_Ablauf 17 SIG_30 EF6U2 = LEER Prüfhinweis - manuelle Korrektur ("Kannfehler") 1 Das Geburtsjahr ist LEER Das Geburtsjahr (EF6U2) ist gleich LEER. Freigegeben VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer Ehemaliger Signierfehler 08
19 T_Gasthoerer T_Gasthoerer.Gasthoerer_Ablauf Ablauf wurde automatisch generiert VIE_Hochschulstatistik_PL.Gasthoerer Feuerstein-T TELEFON EMAIL 08.06.2026 - 09:28 T_Gasthoerer.Gasthoerer_Ablauf 18 SIG_35 (EF7 /= LEER UND NICHT (EF7 IN MATERIAL STAAT (key))) ODER (EF7 IN {'112','113','114','115','116','182','211','214','216','311','315','316','317','319','321', '325','329','331','338','341','342','343','344','352','510','511','512','513','514','515','517', '519','520','521','522','525','528','529','534','535', '542','546','547','548','549','555'}) Fehler - manuelle Korrektur ("Mussfehler") 1 Falsche Signatur bei der Staatsangehörigkeit Die Signatur der Staatsangehörigkeit (EF7) ist ungleich LEER und stimmt nicht mit dem Signierschlüssel aus der Schlüsseltabelle STAAT überein ODER es ist ein Signierschlüssel eines abhängigen Gebietes angegeben. Freigegeben VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer Ehemaliger Signierfehler 09*
20 T_Gasthoerer T_Gasthoerer.Gasthoerer_Ablauf Ablauf wurde automatisch generiert VIE_Hochschulstatistik_PL.Gasthoerer Feuerstein-T TELEFON EMAIL 08.06.2026 - 09:28 T_Gasthoerer.Gasthoerer_Ablauf 19 SIG_40 EF7 = LEER Prüfhinweis - manuelle Korrektur ("Kannfehler") 1 Die Signatur der Staatsangehörigkeit ist LEER Die Signatur der Staatsangehörigkeit (EF7) ist gleich LEER. Freigegeben VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer Ehemaliger Signierfehler 10
21 T_Gasthoerer T_Gasthoerer.Gasthoerer_Ablauf Ablauf wurde automatisch generiert VIE_Hochschulstatistik_PL.Gasthoerer Feuerstein-T TELEFON EMAIL 08.06.2026 - 09:28 T_Gasthoerer.Gasthoerer_Ablauf 20 SIG_45 NICHT (EF9 IN MATERIAL FACHRICHTUNGENGAST (key)) Fehler - manuelle Korrektur ("Mussfehler") 1 Falsche Signatur bei der 1. Fachrichtung Die Signatur der 1. Fachrichtung (EF9) stimmt nicht mit dem Signierschlüssel aus der Schlüsseltabelle FACHRICHTUNGENGAST überein. Freigegeben VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer Ehemaliger Signierfehler 11*
22 T_Gasthoerer T_Gasthoerer.Gasthoerer_Ablauf Ablauf wurde automatisch generiert VIE_Hochschulstatistik_PL.Gasthoerer Feuerstein-T TELEFON EMAIL 08.06.2026 - 09:28 T_Gasthoerer.Gasthoerer_Ablauf 21 SIG_50 EF10 /= LEER UND NICHT (EF10 IN MATERIAL FACHRICHTUNGENGAST (key)) Fehler - manuelle Korrektur ("Mussfehler") 1 Falsche Signatur bei der 2. Fachrichtung Die Signatur der 2. Fachrichtung (EF10) ist ungleich LEER und stimmt nicht mit dem Signierschlüssel aus der Schlüsseltabelle FACHRICHTUNGENGAST überein. Freigegeben VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer Ehemaliger Signierfehler 12*
23 T_Gasthoerer T_Gasthoerer.Gasthoerer_Ablauf Ablauf wurde automatisch generiert VIE_Hochschulstatistik_PL.Gasthoerer Feuerstein-T TELEFON EMAIL 08.06.2026 - 09:28 T_Gasthoerer.Gasthoerer_Ablauf 22 SIG_55 EF11 /= LEER UND NICHT (EF11 IN MATERIAL FACHRICHTUNGENGAST (key)) Fehler - manuelle Korrektur ("Mussfehler") 1 Falsche Signatur bei der 3. Fachrichtung Die Signatur der 3. Fachrichtung (EF11) ist ungleich LEER und stimmt nicht mit dem Signierschlüssel aus der Schlüsseltabelle FACHRICHTUNGENGAST überein. Freigegeben VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer Ehemaliger Signierfehler 13*
24 T_Gasthoerer T_Gasthoerer.Gasthoerer_Ablauf Ablauf wurde automatisch generiert VIE_Hochschulstatistik_PL.Gasthoerer Feuerstein-T TELEFON EMAIL 08.06.2026 - 09:28 T_Gasthoerer.Gasthoerer_Ablauf 23 SIG_60 FUNKTION NUMERISCH (EF6U2) UND FUNKTION NUMERISCH (EF14) UND EF6U2 /= LEER UND FUNKTION ALS_GANZZAHL(EF14) - FUNKTION ALS_GANZZAHL(EF6U2) < 10 Prüfhinweis - manuelle Korrektur ("Kannfehler") 1 Der Gasthörer ist jünger als 10 Jahre Freigegeben VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer Ehemaliger Signierfehler 14
25 T_Gasthoerer T_Gasthoerer.Gasthoerer_Ablauf Ablauf wurde automatisch generiert VIE_Hochschulstatistik_PL.Gasthoerer Feuerstein-T TELEFON EMAIL 08.06.2026 - 09:28 T_Gasthoerer.Gasthoerer_Ablauf 24 SIG_65 EF2 IN {'0081', '0089', '0261', '0269', '0271', '0279', '0309', '0311', '0319', '0361', '0369', '0371', '0379', '0491', '0499', '0640', '0650', '0950', '1001', '1011', '1021', '1029', '1031', '1039', '1081', '1089', '1091', '1099', '1101', '1109', '1111', '1119', '1121', '1129', '1161', '1169', '1241', '1249', '1251', '1258', '1259', '1271', '1279', '1293', '1319', '1321', '1329', '1331', '1339', '1341', '1349', '1361', '1362', '1369', '1378', '1379', '1390', '1481', '1489', '1491', '1499', '1639', '1731', '1739', '1821', '1829', '5021', '5022', '5024', '5025', '5026', '5027', '5028', '5150', '5160', '6245', '7467', '6380', '8100'} Fehler - manuelle Korrektur ("Mussfehler") 1 Der Signierschlüssel für die Hochschulen ist nicht zulässig Bei Signierschlüssel der Hochschule (EF2) steht ein Schlüssel der nur bei der Personal und Stellenstatistik zulässig ist. Freigegeben VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer
26 T_Gasthoerer T_Gasthoerer.Gasthoerer_Ablauf Ablauf wurde automatisch generiert VIE_Hochschulstatistik_PL.Gasthoerer Feuerstein-T TELEFON EMAIL 08.06.2026 - 09:28 T_Gasthoerer.Gasthoerer_Ablauf 25 UF_05M EF6U1 /= LEER UND EF6U2 = LEER Fehler - manuelle Korrektur ("Mussfehler") 1 Geburtsmonat vorhanden und Geburtsjahr fehlt Der Geburtsmonat (EF6U1) ist besetzt, das Geburtsdatum (EF6U2) jedoch fehlt. Freigegeben VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer Ehemalige Kombinationskontrolle AA*
27 T_Gasthoerer T_Gasthoerer.Gasthoerer_Ablauf Ablauf wurde automatisch generiert VIE_Hochschulstatistik_PL.Gasthoerer Feuerstein-T TELEFON EMAIL 08.06.2026 - 09:28 T_Gasthoerer.Gasthoerer_Ablauf 26 Einsetzung_5 REIHE (EF9) IN MATERIAL FACHRICHTUNGENGAST (key) Fehler - maschinelle Korrektur 1 Einsetzung der Fächergruppe und des Sortierschlüssels der 1. Fachrichtung Einsetzung der Fächergruppe (EF17) und des Sortierschlüssels der 1. Fachrichtung (EF18) anhand der Schüsseltabelle FACHRICHTUNGENGAST über den Signierschlüssel (EF9). Freigegeben VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer
28 T_Gasthoerer T_Gasthoerer.Gasthoerer_Ablauf Ablauf wurde automatisch generiert VIE_Hochschulstatistik_PL.Gasthoerer Feuerstein-T TELEFON EMAIL 08.06.2026 - 09:28 T_Gasthoerer.Gasthoerer_Ablauf 27 Einsetzung_6 EF10 /= LEER UND REIHE (EF10) IN MATERIAL FACHRICHTUNGENGAST (key) Fehler - maschinelle Korrektur 1 Einsetzung der Fächergruppe und des Sortierschlüssels der 2. Fachrichtung Einsetzung der Fächergruppe (EF19) und des Sortierschlüssels der 2. Fachrichtung (EF20) anhand der Schüsseltabelle FACHRICHTUNGENGAST über den Signierschlüssel (EF10). Freigegeben VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer
29 T_Gasthoerer T_Gasthoerer.Gasthoerer_Ablauf Ablauf wurde automatisch generiert VIE_Hochschulstatistik_PL.Gasthoerer Feuerstein-T TELEFON EMAIL 08.06.2026 - 09:28 T_Gasthoerer.Gasthoerer_Ablauf 28 Einsetzung_7 EF11 /= LEER UND REIHE (EF11) IN MATERIAL FACHRICHTUNGENGAST (key) Fehler - maschinelle Korrektur 1 Einsetzung der Fächergruppe und des Sortierschlüssels der 3. Fachrichtung Einsetzung der Fächergruppe (EF21) und des Sortierschlüssels der 3. Fachrichtung (EF22) anhand der Schüsseltabelle FACHRICHTUNGENGAST über den Signierschlüssel (EF11). Freigegeben VIE_Hochschulstatistik_PL.Gasthoerer.T_Gasthoerer

616
src/de/statspez/plausi/generated/PL-Pruefungen-PROMOVIERENDE_2026_05_21.csv

@ -1,616 +0,0 @@ @@ -1,616 +0,0 @@
"Evas";"Stat";"Bzr";"Ablaufname";"Ablaufkommentar";"Ablaufbeschreibung";"Statistikname";"Person";"Telefon";"eMail";"Datum";"Ablauf";"Themenbereich";"Nr.-Ablauf";"Prüfschlüssel";"Beschreibung";"Prüfbedingung";"Prüfungsart";"Fehlergewicht";"Korrekturhinweis";"Fehlertext-kurz";"Fehlertext-lang";"Status";"Spezifiziert-in";"Kommentar"
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"1";"MA_001";"";"EF3 /= LEER";"Fehler - maschinelle Korrektur";"1";"";"Alle leeren Eingabefelder die von den liefernden Hochschulen mit Leerzeichen gefüllt wurden, werden auf LEER gesetzt.";"Alle leeren Eingabefelder die von den liefernden Hochschulen mit Leerzeichen gefüllt wurden, werden auf LEER gesetzt. (Ausnahme sind die Felder frei für StLÄ)";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"2";"MA_002";"";"EF3 /= LEER";"Fehler - maschinelle Korrektur";"1";"";"Alle leeren Eingabefelder die von den liefernden Hochschulen mit 0 gefüllt wurden, werden auf LEER gesetzt. (Ausnahme sind die EF in denen 0 eine zulässige Signatur ist.)";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"3";"MA_003";"";"(EF14U1 = LEER UND EF14U2 = LEER) UND EF12 IN {'5','6'}";"Fehler - maschinelle Korrektur";"1";"";"Bei fehlender Angabe des Promotionsendes wird der Dezember des Berichtsjahres eingesetzt.";"Wenn EF12=5 (erfolgreicher Abschluss) oder 6 (Abbruch) ist und EF14 LEER ist, dann wird für EF14 das Datum Dezember (12) des Berichtsjahres EF2 eingesetzt.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"4";"MA_004";"";"(EF19 IN {'0110','0330','0350','1300','1400','1620','1670','2010','2070','2330',
'2460','2470','2661','3600','3650','3740','3730','3760','5070',
'5180','5200','5290','5335','5386','5572','5574','5580','5600',
'5870','5903','6209','6283','6250','6310','6420','6450','6500','6880',
'6920','6940','7000','7200','7640','7650','7660','7800','8042','8043',
'8121','8122','8130','8160' })
ODER
(EF19 IN {'2271'} UND &KONKATENIEREN (EF22, EF21) < '20182')";"Fehler - maschinelle Korrektur";"1";"PSEUDONYMMERKMAL: Diese Prüfung muss mit Studierenden- und Prüfungsstatistik identisch sein zwecks Pseudonymerstellung für Studienverläufe. Auszug Protokoll Referentenbesprechung: Das Statistische Bundesamt erläutert, das für alle Hochschulen, die im Sommersemester 2017 nicht mehr bestehen, für die Hochschule der Ersteinschreibung der Schlüssel „9000“ (sonstige deutsche Hochschule) zu verwenden ist. Dagegen müssen Hochschulen, die ab dem Sommersemester 2017 stillgelegt werden, bezüglich der Hochschule der Ersteinschreibung weiterhin mit dem ehemaligen, aktuell aber nicht mehr gültigen Schlüssel signiert werden. Das Statistische Bundesamt erörtert mit dem für DAHStat zuständigen HSL, wie diese Anforderung im Schlüsselverzeichnis umgesetzt bzw. in der PL verhindert werden kann, dass Schlüssel für ehemalige Hochschulen bei der Verschlüsselung der aktuelle Hochschule verwendet werden.";"Wenn die Hochschule der Ersteinschreibung aufgelöst wurde, wird der Signierschlüssel 9000 eingesetzt.";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"5";"MA_005";"";"EF19 IN {'0070','0090','0091','0092','0122','0123','0124','0210','0220','0230','0250','0280','0290','0303','0320','0340',
'0381','0382','0400','0410','0420','0430','0440','0450','0460','0470','0480','0531','0532','0550','0561','0562','0570','0600',
'0610','0810','0851','0852','0853','0990','0991','0992','0993','1070','1229','1310','1320','1387','1388','1630','1640','1650',
'1720','1860','2090','2110','2120','2140','2160','2250','2260','2310','2340','2400','2480','2562','2563','2662','2680','2751',
'2780','2820','2840','2910','2970','3012','3110','3150','3160','3170','3180','3190','3200','3210','3220','3280','3300','3310',
'3320','3330','3340','3350','3380','3390','3400','3410','3420','3450','3460','3470','3480','3510','3520','3531','3532','3540',
'3551','3552','3553','3560','3570','3580','3581','3582','3583','3590','3610','3620','3630','3690','3712','3750','3770','3800',
'3810','3820','3830','3840','3850','3860','3870','3920','3960','5021','5022','5023','5024','5025','5026','5027','5028','5031',
'5032','5033','5040','5301','5302','5303','5304','5305','5320','5331','5332','5333','5334','5340','5360','5370','5383','5384',
'5390','5421','5422','5441','5442','5450','5462','5463','5481','5482','5490','5502','5510','5520','5530','5540','5550','5560',
'5571','5573','5590','5610','5620','5630','5640','5650','5740','5750','5760','5790','5811','5812','5850','5880','5900','5910',
'5920','5930','5940','5950','5960','5970','6010','6020','6040','6050','6060','6073','6078','6079','6080','6090','6100','6110',
'6120','6130','6140','6150','6160','6170','6201','620A','6242','6260','6300','6341','6350','6440','6460','6470','6480','6490',
'6520','6550','6561','6562','6570','6580','6651','6652','6871','6872','6930','6950','6960','6980','6990','7030','7040','7080',
'7100','7130','7150','7160','7170','7191','7192','7221','7222','7230','7340','7353','7360','7371','7373','7380','7390','7400',
'7410','7441','7442','7470','7480','7490','7500','7510','7520','7530','7711','7712','7713','7714','7720','7740','7760','7770',
'7861','7862','7863','7870','8041','8044','8050','8070'}";"Fehler - maschinelle Korrektur";"1";"PSEUDONYMMERKMAL: Diese Prüfung muss mit Studierenden- und Prüfungsstatistik identisch sein zwecks Pseudonymerstellung für Studienverläufe. Diese Prüfung muss mit Studierenden- und Prüfungsstatistik identisch sein zwecks Pseudonymerstellung für Studienverläufe. Auszug Protokoll Referentenbesprechung: Das Statistische Bundesamt erläutert, das für alle Hochschulen, die im Sommersemester 2017 nicht mehr bestehen, für die Hochschule der Ersteinschreibung der Schlüssel „9000“ (sonstige deutsche Hochschule) zu verwenden ist. Dagegen müssen Hochschulen, die ab dem Sommersemester 2017 stillgelegt werden, bezüglich der Hochschule der Ersteinschreibung weiterhin mit dem ehemaligen, aktuell aber nicht mehr gültigen Schlüssel signiert werden. Das Statistische Bundesamt erörtert mit dem für DAHStat zuständigen HSL, wie diese Anforderung im Schlüsselverzeichnis umgesetzt bzw. in der PL verhindert werden kann, dass Schlüssel für ehemalige Hochschulen bei der Verschlüsselung der aktuelle Hochschule verwendet werden.";"Wenn die Hochschule der Ersteinschreibung in eine andere Hochschule eingegliedert wurde, wird der Signierschlüssel der neuen Hochschule eingesetzt.";"Wenn der Hochschulstandort der Ersteinschreibung in eine andere Hochschule eingegliedert wurde, wird der Signierschlüssel des neuen Hochschulstandortes
eingesetzt.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"6";"MA_006";"";"NICHT EF1 IN {'09'} UND
EF8 > '000' UND EF33U1 = '99' UND
NICHT (EF32 IN {'31','39','51','59','76','79','17','47','67'})
UND
EF19 IN MATERIAL HOCHSCHULFACHBEREICH (key) UND
&fkt_MA_007() IN {60000000,60000001..79999999}";"Fehler - maschinelle Korrektur";"1";"PSEUDONYMMERKMAL: Diese Prüfung muss mit Studierenden- und Prüfungsstatistik identisch sein zwecks Pseudonymerstellung für Studienverläufe.";"Ausländer mit Erwerb der HZB im Ausland und falsche oder fehlende Angaben zur Art der HZB";"Einsetzung der Signatur '79' bei Art der HZB. Nur bei Fach- und Verwaltungsfachhochschulen.Bei wissenschaftlichen
Hochschulen Kontrolle MA_007. Diese Kontrolle wird nicht für Bayern ausgeführt.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"7";"MA_007";"";"NICHT EF1 IN {'09'} UND
EF8 > '000' UND EF33U1 = '99' UND
NICHT (EF32 IN {'31','39','51','59','76','79','17','47','67'})
UND
EF19 IN MATERIAL HOCHSCHULFACHBEREICH (key) UND
NICHT (&fkt_MA_007() IN {60000000,60000001..79999999})";"Fehler - maschinelle Korrektur";"1";"PSEUDONYMMERKMAL: Diese Prüfung muss mit Studierenden- und Prüfungsstatistik identisch sein zwecks Pseudonymerstellung für Studienverläufe.";"Ausländer mit Erwerb der HZB im Ausland und falsche oder fehlende Angaben zur Art der HZB";"Einsetzung der Signatur '39' bei Art der HZB. Nur bei wissenschaftlichen Hochschulen.Bei Fach- und Verwaltungsfachhochschulen Kontrolle MA_006. Diese Kontrolle wird nicht für Bayern ausgeführt.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"8";"MA_008";"";"NICHT EF1 IN {'09'} UND
EF32 IN {'39','59','79','17','47','67'}
UND
FUNKTION NUMERISCH (EF8) UND EF8 IN {001,002..998,999}
UND
(EF33U1 = LEER ODER EF33U1 = ' ')";"Fehler - maschinelle Korrektur";"1";"PSEUDONYMMERKMAL: Diese Prüfung muss mit Studierenden- und Prüfungsstatistik identisch sein zwecks Pseudonymerstellung für Studienverläufe.";"Einsetzung Land des Erwerbs der HZB (Nur bei Ausländer)";"Ausländer und keine Angaben im Land des Erwerbs der HZB (EF33U1), wird 99 für Ausland als Land des Erwerbs der HZB übernommen.Diese Kontrolle wird nicht für Bayern ausgeführt.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"9";"MA_009";"";"EF32 IN {'39','59','79','17','47','67'}
UND
FUNKTION NUMERISCH (EF8) UND EF8 IN {001,002..998,999}
UND
(EF33U2 = LEER ODER EF33U2 = ' ')";"Fehler - maschinelle Korrektur";"1";"PSEUDONYMMERKMAL: Diese Prüfung muss mit Studierenden- und Prüfungsstatistik identisch sein zwecks Pseudonymerstellung für Studienverläufe.";"Einsetzung Staat des Erwerbs der HZB (Nur bei Ausländer)";"Ausländer und keine Angaben im Staat des Erwerbs der HZB (EF33U2), wird Staatsangehörigkeit für Staat des Erwerbs der ersten HZB übernommen.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"10";"MA_010";"";"(EF24 IN {'0110','0330','0350','1300','1400','1620','1670','2010','2070','2330',
'2460','2470','2661','2271','3600','3650','3740','3730','3760','5070',
'5180','5200','5290','5335','5386','5572','5574','5580','5600',
'5870','5903','6209','6283','6250','6310','6420','6450','6500','6880',
'6920','6940','7000','7200','7640','7650','7660','7800','8042','8043',
'8121','8122','8130','8160' })
ODER
(EF24 IN {'2271'} UND EF29 < '2018')";"Fehler - maschinelle Korrektur";"1";"PSEUDONYMMERKMAL: Diese Prüfung muss mit Studierenden- und Prüfungsstatistik identisch sein zwecks Pseudonymerstellung für Studienverläufe. Auszug Protokoll Referentenbesprechung: Das Statistische Bundesamt erläutert, das für alle Hochschulen, die im Sommersemester 2017 nicht mehr bestehen, für die Hochschule der Ersteinschreibung der Schlüssel „9000“ (sonstige deutsche Hochschule) zu verwenden ist. Dagegen müssen Hochschulen, die ab dem Sommersemester 2017 stillgelegt werden, bezüglich der Hochschule der Ersteinschreibung weiterhin mit dem ehemaligen, aktuell aber nicht mehr gültigen Schlüssel signiert werden. Das Statistische Bundesamt erörtert mit dem für DAHStat zuständigen HSL, wie diese Anforderung im Schlüsselverzeichnis umgesetzt bzw. in der PL verhindert werden kann, dass Schlüssel für ehemalige Hochschulen bei der Verschlüsselung der aktuelle Hochschule verwendet werden.";"Wenn die Hochschule der vorangegangenen Abschlussprüfung aufgelöst wurde, wird der Signierschlüssel 9000 eingesetzt.";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"11";"MA_011";"";"EF24 IN {'0070','0090','0091','0092','0122','0123','0124','0210','0220','0230','0250','0280','0290','0303','0320','0340',
'0381','0382','0400','0410','0420','0430','0440','0450','0460','0470','0480','0531','0532','0550','0561','0562','0570','0600',
'0610','0810','0851','0852','0853','0990','0991','0992','0993','1070','1229','1310','1320','1387','1388','1630','1640','1650',
'1720','1860','2090','2110','2120','2140','2160','2250','2260','2310','2340','2400','2480','2562','2563','2662','2680','2751',
'2780','2820','2840','2910','2970','3012','3110','3150','3160','3170','3180','3190','3200','3210','3220','3280','3300','3310',
'3320','3330','3340','3350','3380','3390','3400','3410','3420','3450','3460','3470','3480','3510','3520','3531','3532','3540',
'3551','3552','3553','3560','3570','3580','3581','3582','3583','3590','3610','3620','3630','3690','3712','3750','3770','3800',
'3810','3820','3830','3840','3850','3860','3870','3920','3960','5021','5022','5023','5024','5025','5026','5027','5028','5031',
'5032','5033','5040','5301','5302','5303','5304','5305','5320','5331','5332','5333','5334','5340','5360','5370','5383','5384',
'5390','5421','5422','5441','5442','5450','5462','5463','5481','5482','5490','5502','5510','5520','5530','5540','5550','5560',
'5571','5573','5590','5610','5620','5630','5640','5650','5740','5750','5760','5790','5811','5812','5850','5880','5900','5910',
'5920','5930','5940','5950','5960','5970','6010','6020','6040','6050','6060','6073','6078','6079','6080','6090','6100','6110',
'6120','6130','6140','6150','6160','6170','6201','620A','6242','6260','6300','6341','6350','6440','6460','6470','6480','6490',
'6520','6550','6561','6562','6570','6580','6651','6652','6871','6872','6930','6950','6960','6980','6990','7030','7040','7080',
'7100','7130','7150','7160','7170','7191','7192','7221','7222','7230','7340','7353','7360','7371','7373','7380','7390','7400',
'7410','7441','7442','7470','7480','7490','7500','7510','7520','7530','7711','7712','7713','7714','7720','7740','7760','7770',
'7861','7862','7863','7870','8041','8044','8050','8070'}";"Fehler - maschinelle Korrektur";"1";"PSEUDONYMMERKMAL: Diese Prüfung muss mit Studierenden- und Prüfungsstatistik identisch sein zwecks Pseudonymerstellung für Studienverläufe. Diese Prüfung muss mit Studierenden- und Prüfungsstatistik identisch sein zwecks Pseudonymerstellung für Studienverläufe. Auszug Protokoll Referentenbesprechung: Das Statistische Bundesamt erläutert, das für alle Hochschulen, die im Sommersemester 2017 nicht mehr bestehen, für die Hochschule der Ersteinschreibung der Schlüssel „9000“ (sonstige deutsche Hochschule) zu verwenden ist. Dagegen müssen Hochschulen, die ab dem Sommersemester 2017 stillgelegt werden, bezüglich der Hochschule der Ersteinschreibung weiterhin mit dem ehemaligen, aktuell aber nicht mehr gültigen Schlüssel signiert werden. Das Statistische Bundesamt erörtert mit dem für DAHStat zuständigen HSL, wie diese Anforderung im Schlüsselverzeichnis umgesetzt bzw. in der PL verhindert werden kann, dass Schlüssel für ehemalige Hochschulen bei der Verschlüsselung der aktuelle Hochschule verwendet werden.";"Wenn die Hochschule der vorangegangenen Abschlussprüfung in eine andere Hochschule eingegliedert wurde, wird der Signierschlüssel der neuen Hochschule eingesetzt.";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"12";"MA_012";"";"(EF12 IN {'3','4','5','6'} UND EF3 IN {'0080', '0082', '0121', '0130', '0301', '0310', '0360', '0370', '0380', '0530', '0800', '1040', '1080', '1090', '1110', '1120', '1130', '1240', '1250', '1252', '1270','1450', '1480', '1490', '1580', '1730', '1810', '1820', '3780'}) UND (EF6U1 = LEER)";"Fehler - maschinelle Korrektur";"1";"";"Wenn kein Geburtstag angegeben wurde, wird nach Abschluss der Aufbereitung EF6U1 = '01' und EF38 = .b. (auf die zweite Satzstelle) gesetzt.";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"13";"MA_013";"";"(EF12 IN {'3','4','5','6'} UND EF3 IN {'0080', '0082', '0121', '0130', '0301', '0310', '0360', '0370', '0380', '0530', '0800', '1040', '1080', '1090', '1110', '1120', '1130', '1240', '1250', '1252', '1270','1450', '1480', '1490', '1580', '1730', '1810', '1820', '3780'}) UND (EF6U2 = LEER)";"Fehler - maschinelle Korrektur";"1";"";"Wenn kein Geburtsmonat angegeben wurde, wird nach Abschluss der Aufbereitung EF6U2 = '07' und EF38 = ..c (auf die dritte Satzstelle) gesetzt.";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"14";"MA_014";"";"(EF12 IN {'3','4','5','6'} UND EF3 IN {'0080', '0082', '0121', '0130', '0301', '0310', '0360', '0370', '0380', '0530', '0800', '1040', '1080', '1090', '1110', '1120', '1130', '1240', '1250', '1252', '1270', '1450', '1480', '1490', '1580', '1730', '1810', '1820', '3780'}) UND (EF10 = LEER)";"Fehler - maschinelle Korrektur";"1";"";"Wenn keine Art der Promotion angegegeben wurde, wird nach Abschluss der Aufbereitung EF10 = '01' und EF35 = a.. (auf die erste Satzstelle) gesetzt.";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"15";"MA_016";"";"(EF12 IN {'3','4','5','6'} UND EF3 IN {'0080', '0082', '0121', '0130', '0301', '0310', '0360', '0370', '0380', '0530', '0800', '1040', '1080', '1090', '1110', '1120', '1130', '1240', '1250', '1252', '1270', '1450', '1480', '1490', '1580', '1730', '1810', '1820', '3780'}) UND (EF13U1 = LEER)";"Fehler - maschinelle Korrektur";"1";"";"Wenn kein Monat als Beginn der Promotion angegegeben wurde, wird nach Abschluss der Aufbereitung EF13U1 = '01' und EF35 = ..c (auf die dritte Satzstelle) gesetzt.";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"16";"MA_017";"";"(EF12 IN {'3','4','5','6'} UND EF3 IN {'0080', '0082', '0121', '0130', '0301', '0310', '0360', '0370', '0380', '0530', '0800', '1040', '1080', '1090', '1110', '1120', '1130', '1240', '1250', '1252', '1270', '1450', '1480', '1490', '1580', '1730', '1810', '1820', '3780'}) UND (EF13U2 = LEER)";"Fehler - maschinelle Korrektur";"1";"";"Wenn kein Jahr als Beginn der Promotion angegeben wurde, wird nach Abschluss der Aufbereitung EF13U2 in Abhängigkeit von EF12 gesetzt, zudem wird EF35 = ..c (auf die dritte Satzstelle) gesetzt.";"wenn EF12 = '3' = EF13U2 ='2024'
wenn EF12 = '4 oder 6' = EF13U2 ='2025'
wenn EF12 = '5' = EF13U2 ='2021''";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"17";"MA_018";"";"(EF12 IN {'3','4','5','6'} UND EF3 IN {'0080', '0082', '0121', '0130', '0301', '0310', '0360', '0370', '0380', '0530', '0800', '1040', '1080', '1090', '1110', '1120', '1130', '1240', '1250', '1252', '1270', '1450', '1480', '1490', '1580', '1730', '1810', '1820', '3780'}) UND (EF15 = LEER)";"Fehler - maschinelle Korrektur";"1";"";"Wenn Immatrikulation nicht angegegeben wurde, wird nach Abschluss der Aufbereitung EF15 = '0' gesetzt, zudem wird EF36 = a.. (auf die erste Satzstelle) gesetzt.";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"18";"MA_019";"";"(EF12 IN {'3','4','5','6'} UND EF3 IN {'0080', '0082', '0121', '0130', '0301', '0310', '0360', '0370', '0380', '0530', '0800', '1040', '1080', '1090', '1110', '1120', '1130', '1240', '1250', '1252', '1270', '1450', '1480', '1490', '1580', '1730', '1810', '1820', '3780'}) UND (EF16 = LEER)";"Fehler - maschinelle Korrektur";"1";"";"Wenn strukt. Promotionsprogramm nicht angegegeben wurde, wird nach Abschluss der Aufbereitung EF16 = '0' gesetzt, zudem wird EF36 = .b. (auf die zweite Satzstelle) gesetzt.";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"19";"MA_020";"";"(EF12 IN {'3','4','5','6'} UND EF3 IN {'0080', '0082', '0121', '0130', '0301', '0310', '0360', '0370', '0380', '0530', '0800', '1040', '1080', '1090', '1110', '1120', '1130', '1240', '1250', '1252', '1270', '1450', '1480', '1490', '1580', '1730', '1810', '1820', '3780'}) UND (EF17 = LEER)";"Fehler - maschinelle Korrektur";"1";"";"Wenn nicht angegeben wurde, ob ein Beschäftigungsverhältnis an der Hochschule besteht, wird nach Abschluss der Aufbereitung EF17 = '0' gesetzt, zudem wird EF36 = ..c (auf die dritte Satzstelle) gesetzt.";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"20";"MA_021";"";"(EF12 IN {'3','4','5','6'} UND EF3 IN {'0080', '0082', '0121', '0130', '0301', '0310', '0360', '0370', '0380', '0530', '0800', '1040', '1080', '1090', '1110', '1120', '1130', '1240', '1250', '1252', '1270', '1450', '1480', '1490', '1580', '1730', '1810', '1820', '3780'}) UND (EF18 = LEER)";"Fehler - maschinelle Korrektur";"1";"";"Wenn die Art der Dissertation nicht angegegeben wurde, wird nach Abschluss der Aufbereitung EF18 = '1' gesetzt, zudem wird EF37 = a.. (auf die erste Satzstelle) gesetzt.";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"21";"MA_022";"";"(EF12 IN {'3','4','5','6'} UND EF3 IN {'0080', '0082', '0121', '0130', '0301', '0310', '0360', '0370', '0380', '0530', '0800', '1040', '1080', '1090', '1110', '1120', '1130', '1240', '1250', '1252', '1270', '1450', '1480', '1490', '1580', '1730', '1810', '1820', '3780'}) UND (EF19 = LEER ODER EF21 = LEER ODER EF22 = LEER)";"Fehler - maschinelle Korrektur";"1";"";"Wenn eine Angabe zur Ersteinschreibung (EF19-EF22) nicht angegegeben wurde, dann wird nach Abschluss der Aufbereitung EF19 = 9000, EF21 = 1 und EF 22 = EF31 gesetzt. Falls EF31 = leer und EF29 ungleich leer, dann wird EF22 = EF29 gesetzt. Falls EF31 und EF29 leer, dann wird EF22 = EF13U2 gesetzt. Zudem wird EF37 = .b. (auf die zweite Satzstelle) gesetzt.";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"22";"MA_023";"";"(EF12 IN {'3','4','5','6'} UND EF3 IN {'0080', '0082', '0121', '0130', '0301', '0310', '0360', '0370', '0380', '0530', '0800', '1040', '1080', '1090', '1110', '1120', '1130', '1240', '1250', '1252', '1270', '1450', '1480', '1490', '1580', '1730', '1810', '1820', '3780'}) UND
(EF23 IN {LEER,'1'} UND (EF24 = LEER ODER EF26 = LEER ODER EF27 = LEER ODER EF28 = LEER ODER EF29 = LEER ODER EF30 = LEER))";"Fehler - maschinelle Korrektur";"1";"";"Wenn eine Angabe zur prom. Abschlussprüfung (EF23-EF30) nicht angegegeben wurde, dann wird nach Abschluss der Aufbereitung EF23 = 1, EF24 = 9000, EF26 = 102, EF27 = 004, EF28 = 01, EF 29 = EF22, EF 30= 8 gesetzt, zudem wird EF37 = ..c (auf die dritte Satzstelle) gesetzt.";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"23";"MA_024";"";"(EF12 IN {'3','4','5','6'} UND EF3 IN {'0080', '0082', '0121', '0130', '0301', '0310', '0360', '0370', '0380', '0530', '0800', '1040', '1080', '1090', '1110', '1120', '1130', '1240', '1250', '1252', '1270', '1450', '1480', '1490', '1580', '1730', '1810', '1820', '3780'}) UND (EF31 = LEER ODER EF32 = LEER ODER EF33U1 = LEER ODER EF33U2 = LEER)";"Fehler - maschinelle Korrektur";"1";"";"Wenn eine Angabe zur HZB (EF31-EF33) nicht angegegeben wurde, dann wird nach Abschluss der Aufbereitung EF31 = EF22, EF32 = 03 und EF 33 = 98999 gesetzt, zudem wird EF38 = a.. (auf die erste Satzstelle) gesetzt.";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"24";"SIG_001";"";"(EF3 IN {'0081', '0089', '0261', '0269', '0271', '0279', '0309', '0311', '0319', '0361', '0369', '0371',
'0379', '0491', '0499', '0640', '0650', '0950', '1001', '1011', '1021', '1029', '1031', '1039', '1081', '1089',
'1091', '1099', '1101', '1109', '1111', '1119', '1121', '1129', '1161', '1169', '1241', '1249', '1251', '1258',
'1259', '1271', '1279', '1293', '1319', '1321', '1329', '1331', '1339', '1341', '1349', '1361',
'1362', '1369', '1378', '1379', '1390', '1481', '1489', '1491', '1499', '1639', '1731', '1739',
'1821', '1829', '5021', '5022', '5024', '5025', '5026', '5027', '5028', '5150', '5160', '6245', '7467', '8100'})
ODER
(EF19 IN {'0081', '0089', '0261', '0269', '0271', '0279', '0309', '0311', '0319', '0361', '0369', '0371',
'0379', '0491', '0499', '0640', '0650', '0950', '1001', '1011', '1021', '1029', '1031', '1039', '1081', '1089',
'1091', '1099', '1101', '1109', '1111', '1119', '1121', '1129', '1161', '1169', '1241', '1249', '1251', '1258',
'1259', '1271', '1279', '1293', '1319', '1321', '1329', '1331', '1339', '1341', '1349', '1361',
'1362', '1369', '1378', '1379', '1390', '1481', '1489', '1491', '1499', '1639', '1731', '1739',
'1821', '1829', '5021', '5022', '5024', '5025', '5026', '5027', '5028', '5150', '5160', '6245', '7467', '8100'})
ODER
(EF24 IN {'0081', '0089', '0261', '0269', '0271', '0279', '0309', '0311', '0319', '0361', '0369', '0371',
'0379', '0491', '0499', '0640', '0650', '0950', '1001', '1011', '1021', '1029', '1031', '1039', '1081', '1089',
'1091', '1099', '1101', '1109', '1111', '1119', '1121', '1129', '1161', '1169', '1241', '1249', '1251', '1258',
'1259', '1271', '1279', '1293', '1319', '1321', '1329', '1331', '1339', '1341', '1349', '1361',
'1362', '1369', '1378', '1379', '1390', '1481', '1489', '1491', '1499', '1639', '1731', '1739',
'1821', '1829', '5021', '5022', '5024', '5025', '5026', '5027', '5028', '5150', '5160', '6245', '7467', '8100'})";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Signierschlüssel der Hochschule ist nur bei der Personal- und Stellenstatistik zulässig.";"Bei der aktuellen Hochschule (EF3) ,der Hochschule der Ersteinschreibung (EF19) oder der Hochschule der zur Promotion berechtigende, vorangegangenen Abschlussprüfung (EF24) steht ein Signierschlüssel der nur bei der Hochschulpersonalstatistik zulässig ist.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"25";"SIG_002";"";"NICHT EF3 IN {'0011', '0012', '0013', '0014',
'0080', '0082', '0121', '0130', '0140', '0150',
'0180', '0190', '0200',
'0260', '0270', '0301', '0302', '0310', '0360',
'0370', '0372', '0373', '0380', '0390', '0490',
'0500', '0510', '0511',
'0520', '0530', '0540', '0551', '0552', '0560',
'0580', '0590', '0620', '0630', '0660', '0670',
'0680', '0690',
'0800', '0811', '0812', '0910', '0960', '0980',
'0990', '1000', '1010', '1020', '1030', '1040',
'1050', '1060', '1080',
'1090', '1100', '1110', '1120', '1130', '1140',
'1150', '1160', '1170', '1180', '1190', '1200',
'1210', '1211', '1221',
'1222', '1230', '1240', '1250', '1252', '1260',
'1270', '1291', '1292', '1311', '1312', '1322',
'1323', '1330',
'1340', '1350', '1360', '1380', '1430', '1440',
'1450', '1460', '1480', '1490', '1530', '1541',
'1542', '1580',
'1590', '1631', '1632', '1633', '1634', '1690',
'1700', '1730', '1740', '1800', '1810', '1820',
'1960', '2000',
'2020', '2030', '2040', '2050', '2060', '2170',
'2200', '2271', '2272', '2300', '2420', '2430',
'2500', '2530', '2550', '2561',
'2571', '2572', '2573', '2574', '2581', '2582',
'2583', '2590', '2600', '2610', '2620', '2630', '2640',
'2650', '2660',
'2670', '2690', '2700', '2710', '2720', '2730',
'2740', '2760', '2770', '2790', '2800', '2810',
'2830', '2850',
'2860', '2870', '2880', '2890', '2920', '2940',
'2950', '2960', '2980', '3011', '3030', '3100',
'3370', '3500',
'3660', '3670', '3680', '3700', '3711', '3780', '3930', '3940',
'3950', '3971', '3972', '3980', '3990', '4730', '4740', '4750', '4760', '4770',
'4780', '4790', '4800',
'4810', '4820', '4830', '4840', '4850', '4860', '4870',
'4880', '4890', '4900',
'4910', '4920', '4930', '5080',
'6211', '6212',
'6220', '6231', '6232', '6233', '6243', '6244',
'6290', '6370', '7960', '8000', '8011', '8012',
'8021', '8022',
'8031', '8032', '8033'}";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Die meldende Hochschule (EF3) hat kein Promotionsrecht";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"26";"SIG_003";"";"FUNKTION WERTLAENGE(EF4) < 6 ODER
FUNKTION WERTLAENGE(EF4) > 12";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Paginiernummer (EF4) ist 000001 bis 999999 (mindestens 6 Stellen, maximal 12 Stellen)";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"27";"SIG_004";"";"FUNKTION WERTLAENGE (EF5) /= 1
ODER
NICHT &NUMERISCH (EF5)
ODER
NICHT EF5 IN {'1','2', '3', '4'}";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Geschlecht (EF5) ist ungleich 1, 2 ,3 oder 4.";"Geschlecht (EF5) ungleich 1, 2 ,3 oder 4. Stand der PL Klassen vom 21.05.2026";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"28";"SIG_005";"";"(FUNKTION WERTLAENGE (EF6U1) /= 2)
ODER
((NICHT &NUMERISCH (EF6U1) ODER (EF6U2 IN
{01,03,05,07,08,10,12} UND NICHT EF6U1 IN
{01,02..31}))
ODER
(NICHT &NUMERISCH (EF6U1) ODER (EF6U2 IN
{04,06,09,11} UND NICHT EF6U1 IN {01,02..30}))
ODER
(NICHT &NUMERISCH (EF6U1) ODER (EF6U2 IN {02} UND
NICHT EF6U1 IN {01,02..29}))
ODER
(NICHT &NUMERISCH (EF6U1) ODER (EF6U2 IN {02} UND
EF6U1 IN {29} UND NICHT EF6U3 IN
{1912,1916,1920,1924,1928,1932,1936,1940,1944,1948,1952,1956,1960,
1964,1968,1972,1976,1980,1984,1988,1992,1996,2000
,2004,2008,2012,2016,2020,2024})))";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Angabe zum Geburtstag (EF6U1) ist in Abhängigkeit mit dem Geburts-Monat ungleich 01 bis 31.";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"29";"SIG_006";"";"(FUNKTION WERTLAENGE (EF6U2) /= 2)
ODER
(NICHT &NUMERISCH (EF6U2) ODER NICHT EF6U2 IN
{01,02..12})";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Angabe Geburtsmonat (EF6U2) ungleich 01 bis 12.";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"30";"SIG_007";"";"(FUNKTION WERTLAENGE (EF6U3) /= 4)
ODER
(NICHT &NUMERISCH (EF6U3) ODER NICHT EF6U3 IN
{1912,1913..2020})";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Angabe Geburtsjahr (EF6U3) kleiner Wert ""1912"".";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"31";"SIG_008";"";"FUNKTION WERTLAENGE (EF7) /= 4
ODER
(FUNKTION WERTLAENGE (EF7) = 4 UND
NICHT (&TEIL (EF7,1,1) IN
{'A','a','B','b','C','c','D','d','E','e','F','f',
'G','g',
'H','h','I','i','J','j','K','k','L','l','M','m','N','n',
'O','o','P','p','Q','q','R','r','S','s','T','t','U','u',
'V','v','W','w','X','x','Y','y','Z','z'}))
ODER
(FUNKTION WERTLAENGE (EF7) = 4 UND
NICHT (&TEIL (EF7,2,1) IN
{'A','a','B','b','C','c','D','d','E','e','F','f',
'G','g',
'H','h','I','i','J','j','K','k','L','l','M','m','N','n',
'O','o','P','p','Q','q','R','r','S','s','T','t','U','u',
'V','v','W','w','X','x','Y','y','Z','z',' '}))
ODER
(FUNKTION WERTLAENGE (EF7) = 4 UND
NICHT (&TEIL (EF7,3,1) IN
{'A','a','B','b','C','c','D','d','E','e','F','f',
'G','g',
'H','h','I','i','J','j','K','k','L','l','M','m','N','n',
'O','o','P','p','Q','q','R','r','S','s','T','t','U','u',
'V','v','W','w','X','x','Y','y','Z','z',' '}))
ODER
(FUNKTION WERTLAENGE (EF7) = 4 UND
NICHT (&TEIL (EF7,4,1) IN
{'A','a','B','b','C','c','D','d','E','e','F','f',
'G','g',
'H','h','I','i','J','j','K','k','L','l','M','m','N','n',
'O','o','P','p','Q','q','R','r','S','s','T','t','U','u',
'V','v','W','w','X','x','Y','y','Z','z',' '}))";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Angabe Name (EF7) ist ungleich A bis Z (Groß- und Kleinschreibung). Von Satzstelle 2 bis 4 sind Leerzeichen zulässig.";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"32";"SIG_009";"";"(NICHT EF8 IN MATERIAL STAAT (key))
ODER
(EF8 IN {'112','113','114','115','116','182','211','214','216','311','315','316','317','319','321','325','329',
'331','338','341','342','343','344','352','510','511','512','513','514','515','517','519','520','521','522','525','528','529','534','535',
'542','546','547','548','549'})";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Signatur Staatsangehörigkeit (EF8) stimmt nicht mit den Einträgen in Schlüsseltabelle STAAT überein.";"Signatur Staatsangehörigkeit (EF8) stimmt nicht mit den Einträgen in Schlüsseltabelle STAAT überein oder es ist ein Signierschlüssel eines abhängigen Gebietes angegeben.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"33";"SIG_010";"";"(EF9 /= LEER UND EF9 = '000')
ODER
""Teil 2""
(EF9 /= LEER UND EF9 = EF8)
ODER
""Teil 3""
(EF9 /= LEER UND NICHT EF9 IN MATERIAL STAAT (key))
ODER
""Teil 4""
(EF9 IN {'112','113','114','115','116','182','211','214','216','311','315','316','317','319','321','325','329',
'331','338','341','342','343','344','352','510','511','512','513','514','515','517','519','520','521','522','525','528','529','534','535',
'542','546','547','548','549'})";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Signatur weitere Staatsangehörigkeit (EF9) stimmt nicht mit den Einträgen in Schlüsseltabelle STAAT überein";"Die Signatur der weiteren Staatsangehörigkeit (EF9) ist Deutschland (000) oder die weitere Staaatsangehörigkeit ist gleich der ersten Staatsangehörigkeit oder stimmt nicht mit den Einträgen in Schlüsseltabelle STAAT überein oder es ist ein Signierschlüssel eines abhängigen Gebietes angegeben.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"34";"SIG_011";"";"(EF3 IN {LEER,'9000','9500','9990'} ODER
&fkt_SIG_011() = '0' ODER NICHT (EF1 IN MATERIAL HOCHSCHULSTANDORT (key = &fkt_SIG_011(); bundesland)))";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Falsche Signatur bei Hochschulstandort (EF3)";"Die Kombination Berichtsland und Hochschulnummer laut Schlüsseltabelle HOCHSCHULFACHBEREICH in Kombination mit Schlüsseltabelle HOCHSCHULSTANDORT nicht zulässig.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"35";"SIG_012";"";"FUNKTION WERTLAENGE (EF10) /= 2
ODER
NICHT &NUMERISCH (EF10)
ODER
NICHT EF10 IN {'01','02','03','04','05'}";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Art der Promotion (EF10) ungleich 01 bis 05";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"36";"SIG_013";"";"(EF1 IN {'03','04','05','06','07','09','11','12','13','16'}
UND NICHT (EF11 IN MATERIAL STUDIENFACH_LAND (land = EF1; key)))
ODER
(EF1 IN {'01','02','08','10','14','15'}
UND NICHT (EF11 IN MATERIAL STUDIENFACH (key)))";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Falsche Signatur beim Promotionsfach (EF11)";"Signatur beim Promotionsfach (EF11) stimmt nicht mit den zulässigen Schlüsseln aus Schlüsseltabelle STUDIENFACH_LAND (Landesinterne Studienfächer) bzw. Schlüsseltabelle STUDIENFACH (Bundesschlüssel) überein.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"37";"SIG_014";"";"FUNKTION WERTLAENGE (EF12) /= 1
ODER
NICHT &NUMERISCH (EF12)
ODER
NICHT EF12 IN {'1','2','3','4','5','6'}";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Art der Registrierung als Promovierender (EF12) ungleich 1 bis 6";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"38";"SIG_015";"";"(FUNKTION WERTLAENGE (EF13U1) /= 2)
ODER
(NICHT &NUMERISCH (EF13U1) ODER NICHT EF13U1 IN
{01,02..12})";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Angabe Promotionsbeginn - Monat (EF13U1) ungleich 01 bis 12";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"39";"SIG_016";"";"(FUNKTION WERTLAENGE (EF13U2) /= 4 ODER NICHT
&NUMERISCH (EF13U2)) UND (NICHT EF13U2 IN {1990,1991++EF2})";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Angabe Promotionsbeginn - Jahr (EF13U2) ungleich 1990 bis Berichtsjahr (EF2)";"Angabe Promotionsbeginn - Jahr (EF13U2) ungleich 1990 bis Berichtsjahr (EF2).";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"40";"SIG_017";"";"(EF14U1 /= LEER UND FUNKTION WERTLAENGE (EF14U1) /= 2)
ODER
(EF14U1 /= LEER UND NICHT &NUMERISCH (EF14U1))
ODER
(EF12 IN {'5','6'} UND NICHT EF14U1 IN {01,02..12})";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Art der Registrierung als Promovierender = 5 (Abschluss der Promotion) oder 6 (Abbruch der Promotion) und Angabe Promotionsende - Monat (EF14U1) ungleich 01 bis 12";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"41";"SIG_018";"";"(EF14U2 /= LEER UND FUNKTION WERTLAENGE (EF14U2) /= 4)
ODER
(EF14U2 /= LEER UND NICHT &NUMERISCH (EF14U2))
ODER
(EF12 IN {'5','6'} UND FUNKTION NUMERISCH (EF2) UND FUNKTION NUMERISCH (EF14U2)
UND
(EF14U2 /= EF2 UND EF14U2 /= EF2 - 1))";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Art der Registrierung als Promovierender = 5 (Abschluss der Promotion) oder 6 (Abbruch der Promotion) und falsche Angabe bei Promotionsende - Jahr (EF14U2)";"Art der Registrierung als Promovierender = 5 (Abschluss der Promotion) oder 6 (Abbruch der Promotion) und Angabe Promotionsende - Jahr (EF14U2) ungleich Berichtsjahr oder Berichtsjahr minus 1. Hierbei müssen vorab alle benötigten Felder mit denen gerechnet wird auf numerischen Inhalt geprüft werden.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"42";"SIG_019";"";"FUNKTION WERTLAENGE (EF15) /= 1
ODER
NICHT &NUMERISCH (EF15)
ODER
NICHT EF15 IN {'0','1'}";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Immatrikulation (EF15) ungleich 0 oder 1";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"43";"SIG_020";"";"FUNKTION WERTLAENGE (EF16) /= 1
ODER
NICHT &NUMERISCH (EF16)
ODER
NICHT EF16 IN {'0','1'}";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Teilnahme an einem strukturierten Promotionsprogramm (EF16) ungleich 0 oder 1";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"44";"SIG_021";"";"FUNKTION WERTLAENGE (EF17) /= 1
ODER
NICHT &NUMERISCH (EF17)
ODER
NICHT EF17 IN {'0','1'}";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Beschäftigungsverhältnis an der Hochschule der Promotion (EF17) ungleich 0 oder 1";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"45";"SIG_022";"";"FUNKTION WERTLAENGE (EF18) /= 1
ODER
NICHT &NUMERISCH (EF18)
ODER
NICHT EF18 IN {'1','2'}";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Art der Dissertation (EF18) ungleich 1 oder 2.";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"46";"SIG_023";"";"EF19 IN {LEER,'9500'} ODER NICHT (EF19 IN
MATERIAL HOCHSCHULEERSTEINSCHREIBUNG (key))";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Fehlende oder falsche Signatur bei Hochschulstandort der Ersteinschreibung (EF19)";"Signatur bei Hochschulstandort der Ersteinschreibung (EF19) ist leer bzw. '9500' (Berufsakademie in Deutschland) oder stimmt nicht mit den Einträgen in Schlüsseltabelle HOCHSCHUEERSTEINSCHREIBUNG überein";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"47";"SIG_024";"";"EF20 /= LEER UND
(EF20 = '000' ODER NICHT (EF20 IN MATERIAL STAAT (key)))";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Falsche Signatur beim Staat bei Ersteinschreibung an einer Hochschule im Ausland (EF20)";"Signatur vom Staat bei Ersteinschreibung an einer Hochschule im Ausland (EF20) stimmt nicht mit den Einträgen in Schlüsseltabelle STAAT überein (000 = Deutschland ist nicht zulässig)";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"48";"SIG_025";"";"FUNKTION WERTLAENGE (EF21) /= 1
ODER
NICHT &NUMERISCH (EF21)
ODER
NICHT EF21 IN {'1','2'}";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Semester der Ersteinschreibung (EF21) ist ungleich 1 oder 2";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"49";"SIG_026";"";"(FUNKTION WERTLAENGE (EF22) /= 4 ) ODER
(NICHT &NUMERISCH (EF22)) ODER
(NICHT EF22 IN {1923,1924++EF2})";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Jahr der Ersteinschreibung (EF22) ist leer oder ungleich 1923 bis Inhalt aus EF2 (Berichtsjahr)";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"50";"SIG_027";"";"FUNKTION WERTLAENGE (EF23) /= 1
ODER
NICHT &NUMERISCH (EF23)
ODER
NICHT EF23 IN {'0','1'}";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Zur Promotion berechtigende Abschlussprüfung (EF23) ist ungleich 0 oder 1";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"51";"SIG_028";"";"(EF24 /= LEER UND (EF24 IN {'9500'} ODER NICHT (EF24 IN MATERIAL HOCHSCHULFACHBEREICH (key))))
ODER
(FUNKTION NUMERISCH (EF24) UND EF24 IN {4000, 4001,4002..4500})
ODER
(EF24 IN {'409A','409B','409C','409D','409E'})";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Falsche Signatur bei der Hochschule der zur Promotion berechtigende, vorangegangenen Abschlussprüfung (EF24)";"Die Signatur der Hochschule der zur Promotion berechtigende, vorangegangenen Abschlussprüfung (EF24) stimmt nicht mit den zulässigen Schlüsseln aus der Schlüsseltabelle HOCHSCHULFACHBEREICH überein oder es wurde eine Signatur einer Berufsakademie angegeben.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"52";"SIG_029";"";"EF25 /= LEER UND
(EF25 = '000' ODER NICHT (EF25 IN MATERIAL STAAT (key)))";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"Korrigieren Sie bitte Ihre Angabe.";"Falsche Signatur vom Staat der Hochschule (zur Promotion) außerhalb Deutschlands";"Signatur vom Staat der Hochschule der zur Promotion berechtigende, vorgangenen Abschlussprüfung (EF25)
stimmt nicht mit den Einträgen in Schlüsseltabelle STAAT überein (000= Deutschland ist nicht zulässig)";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"53";"SIG_030";"";"EF26 IN {'186','187'}
ODER
(EF1 IN {'03','05','06','07','09','11'}
UND
(EF26 /= LEER UND NICHT (EF26 IN MATERIAL
ABSCHLUSS3STELLER_LAND (land = EF1; key))))
ODER
(EF1 IN
{'01','02','04','08','10','12','13','14','15','16'} UND
(EF26 /= LEER UND NICHT (EF26 IN MATERIAL
ABSCHLUSS3STELLER (key))))";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"Korrigieren Sie bitte Ihre Angabe.";"Falsche Signatur bei der Art der Prüfung (EF26)";"Die Signatur der Art der Prüfung (EF26), bei einer zur Promotion berechtigende bestandenen
Abschlussprüfung, stimmt nicht mit den zulässigen Schlüsseln aus Schlüsseltabelle
ABSCHLUSS3STELLER_LAND (Landesinterne_Abschlussprüfung) bzw.
Schlüsseltabelle ABSCHLUSS3STELLER (Bundesschlüssel) überein.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"54";"SIG_031";"";"(EF1 IN
{'03','04','05','06','07','09','11','12','13','16'} UND
EF27 /= LEER UND NICHT (EF27 IN MATERIAL
STUDIENFACH_LAND (land = EF1; key)))
ODER
(EF1 IN {'01','02','08','10','14','15'} UND
EF27 /= LEER UND NICHT (EF27 IN MATERIAL
STUDIENFACH (key)))";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"Korrigieren Sie bitte Ihre Angabe.";"Falsche Signatur beim 1. Studienfach";"Die Signatur beim 1. Studienfach (EF27), bei einer zur Promotion berechtigende bestandene
Abschlussprüfung, stimmt nicht mit den zulässigen Schlüsseln
aus Schlüsseltabelle STUDIENFACH_LAND (Landesinterne
Studienfächer) bzw. Schlüsseltabelle STUDIENFACH
(Bundesschlüssel) überein";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"55";"SIG_032";"";"(EF28 /= LEER UND FUNKTION WERTLAENGE (EF28) /= 2)
ODER
(EF28 /= LEER UND (NICHT &NUMERISCH (EF28)
ODER NICHT EF28 IN {01,02..12}))";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"Korrigieren Sie bitte Ihre Angabe.";"Monat der Abschlussprüfung (EF28)";"Angabe des Monats der Abschlussprüfung (EF28), bei einer zur Promotion berechtigende bestandenen
Abschlussprüfung, ist ungleich 01 bis 12";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"56";"SIG_033";"";"(EF29 /= LEER UND FUNKTION WERTLAENGE (EF29) /= 4)
ODER
(EF29 /= LEER UND NICHT &NUMERISCH (EF29))
ODER
(EF29 /= LEER UND NICHT EF29 IN {1923,1924++EF2})";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"Korrigieren Sie bitte Ihre Angabe.";"Fehlende oder falsche Signatur bei Jahr der Abschlussprüfung (EF29)";"Angabe Jahr der Abschlussprüfung (EF29), bei einer zur Promotion berechtigende bestandenen
Abschlussprüfung, ist nicht 1923 bis Berichtsjahr";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"57";"SIG_034";"";"(EF30 /= LEER UND FUNKTION WERTLAENGE (EF30) /= 1)
ODER
(EF30 /= LEER UND (NICHT &NUMERISCH (EF30)
ODER
NICHT EF30 IN
{'0','1','2','3','4','7','8'}))";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"Korrigieren Sie bitte Ihre Angabe.";"Falsche Signatur Gesamtnote (EF30)";"Die Signatur der Prüfungsnote (EF30), bei einer zur Promotion berechtigende bestandenen Abschlussprüfung,
ist ungleich 0, 1, 2, 3, 4, 7, 8";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"58";"SIG_035";"";"((FUNKTION WERTLAENGE (EF31) /= 4)
ODER
(NICHT &NUMERISCH (EF31) ODER NICHT EF31 IN
{1923,1924++EF2}))";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"Korrigieren Sie bitte Ihre Angabe.";"Fehlende oder falsche Signatur bei Jahr des Ewerbs der HZB (EF31)";"Die Signatur des Jahres des Erwerbs der HBZ (EF31), ist ungleich 1923 bis Berichtsjahr";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"59";"SIG_036";"";"NICHT (EF32 IN MATERIAL HZBART (key))";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"Korrigieren Sie bitte Ihre Angabe.";"Fehlende oder falsche Signatur bei Art der HZB (EF32)";"Die Signatur der Art der HZB (EF32) fehlt oder stimmt nicht
mit den Schlüsseln aus der Schlüsseltabelle HZBART
überein.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"60";"SIG_037";"";"NICHT (EF33U1 IN MATERIAL BUNDESLAND (key))";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"Korrigieren Sie bitte Ihre Angabe.";"Fehlende oder falsche Signatur bei Land des Erwerbs der HZB (EF33U1)";"Die Signatur Land des Erwerbs der HZB (EF33U1) fehlt
oder stimmt nicht mit den Schlüsseln aus der
Schlüsseltabelle BUNDESLAND überein.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"61";"SIG_038";"";"((FUNKTION WERTLAENGE (EF33U2) /= 3)
ODER
(NICHT &NUMERISCH (EF33U2) ODER NICHT EF33U2 IN
{000,001..999}))";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"Korrigieren Sie bitte Ihre Angabe.";"Fehlende oder falsche Signaturbei Kreis bzw. Staat des Erwerbs der HZB (EF33U2)";"Die Signatur Kreis bzw. Staat des Erwerbs der HZB
(EF33U2) fehlt oder stimmt nicht mit den Schlüsseln
000,001..999 überein.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"62";"UF_001M";"";"(EF6U2 <'12' UND FUNKTION NUMERISCH (EF2) UND
FUNKTION NUMERISCH (EF6U3)
UND (FUNKTION ALS_GANZZAHL (EF2) - FUNKTION
ALS_GANZZAHL (EF6U3)) <20)
ODER
(EF6U2 = '12' UND FUNKTION NUMERISCH (EF2) UND
FUNKTION NUMERISCH (EF6U3)
UND (FUNKTION ALS_GANZZAHL (EF2) - FUNKTION
ALS_GANZZAHL (EF6U3)-1) <20)";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Promovierender jünger als 20";"Promovierende sind jünger als 20 Jahre.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"63";"UF_003M";"";"(EF2 > '2017' UND EF12 = '1' UND EF13U1 < '12' UND EF13U2 /= LEER UND EF13U2 < EF2)
ODER
(EF2 > '2017' UND EF12 = '1' UND EF13U1 = '12' UND EF13U2 /= LEER UND EF13U2 < (EF2 - 1))";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Bei Erstregistrierung ist das Jahr des Promotionsbeginns kleiner als das Berichtsjahr.";"Ein Erstregistrierter mit Promotionsbeginn in den Monaten Januar-November, darf kein Berichtsjahr kleiner als das Jahr des Promotionsbeginns aufweisen.Ausnahme sind Erstregistrierte im Dezember, bei denen darf die Abweichung bei maximal minus 1 Jahr liegen.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"64";"UF_004K";"";"EF12 = '2' UND EF13U2 = EF2";"Prüfhinweis - manuelle Korrektur (""Kannfehler"")";"1";"";"Bei Neuregistrierung ist das Jahr des Promotionsbeginns gleich dem Berichtsjahr";"Bei Neuregistrierung ist das Jahr des Promotionsbeginns gleich dem Berichtsjahr. Promotionsbeginn gleich Berichtsjahr EF13U2=BJ kann auch bei Neuregistrierten vorkommen, z.B. wenn hier eine zweite Promotion begonnen wird, nach einer ersten erfolgreich beendeten Promotion. Da dies aber nicht den Regelfall darstellt (häufiger sind vsl. Hochschulwechsler mit Promotionsbeginnen vor dem Berichtsjahr, ist hier zumindest ein Kann-Fehler vorgesehen.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"65";"UF_005M";"";"EF12 = '3' UND EF13U2 = EF2";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Bei Registrierung als aktive Fortsetzung ist das Jahr des Promotionsbeginn gleich dem Berichtsjahr";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"66";"UF_006M";"";"EF13U2 > EF2 UND EF13U2 /= LEER";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Jahr des Promotionsbeginns liegt nach dem Berichtsjahr";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"67";"UF_007M";"";"(EF2 >= '2018' UND EF13U2 > EF14U2)";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"Korrigieren Sie bitte Ihre Angabe.";"Jahr des Promotionsbeginns ist größer als das Jahr des Promotionsendes";"Ab 2018 : Jahr des Promotionsbeginns ist größer als das Jahr des Promotionsendes.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"68";"UF_008M";"";"(EF1 /= {'09'} UND EF3 /= {'1240','0180'} UND EF29 /= LEER UND (EF13U2 <(EF29 - 2)) UND NICHT EF11 IN {'107', '185'})
ODER
(EF3 = {'1240'} UND EF29 /= LEER UND (EF13U2 <(EF29 - 2)) UND NICHT EF11 IN {'107','185','135'})
ODER
(EF3 = {'0180'} UND EF29 /= LEER UND (EF13U2 <(EF29 - 2)) UND NICHT EF11 IN {'107','185','E10','E11'})
ODER
(EF1 = {'09'} UND EF3 /= {'1322'} UND EF29 /=LEER UND (EF13U2 < (EF29 - 2)) UND NICHT EF11 IN
{'107', '185', 'a47', 'a58', 'a80', 'a81', 'a82',
'a83', 'a84', 'b59', 'b68', 'g05', 'g21', 'g73',
'h32', 'h36', 'i74'})
ODER
(EF3 = {'1322'} UND EF29 /= LEER UND (EF13U2 <(EF29 - 2)) UND NICHT EF11 IN {'156', '021',
'107', '185', 'a47', 'a58', 'a80', 'a81', 'a82',
'a83', 'a84', 'b59', 'b68', 'g05', 'g21', 'g73',
'h32', 'h36', 'i74'})";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Der Promotionsbeginn darf bei Promotionen mit Ausnahme der Medizinpromotionen zeitlich maximal 2 Jahre vor dem Erwerb des promotionsberechtigenden Abschlusses liegen.";"Ausnahmen HS Bayern (Landesinterne Schlüssel für
Medizinpromotionen ergänzt), HS 1322 (Tiermedizin und BWL), HS 0180 (Landesinterne Schlüssel für
Medizinpromotionen ergänzt).";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"69";"UF_009M";"";"EF14U1 /= 12 UND EF14U2 /= LEER UND EF14U2 <= (EF2 - 1)";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Das Promotionsende liegt mehr als 1 Kalenderjahr vor dem Berichtsjahr.";"Das aktuelle Berichtsjahr erfasst abgeschlossene Promotionen von Dezember des Vorjahres bis Dezember des Berichtsjahres. Der Fehler dient der Vermeidung von Doppelmeldungen von abgeschlossenen Promotionen.
Es ist zu klären, ob die abgeschlossenen Promotionen bereits im vergangenen Berichtsjahr gemeldet wurden.
Wurden die abgeschlossenen Promotionen im vergangenen Berichtsjahr gemeldet, sind diese nicht erneut für das aktuelle Berichtsjahr zu melden, d.h. zu löschen.
Wurden die Meldungen jedoch im vergangenen Berichtsjahr versehentlich nicht gemeldet, ist EF14U1 = 12 (Monat des Abschlusses) zu setzen.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"70";"UF_010M";"";"EF14U2 > EF2";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Das Promotionsende liegt zeitlich nach dem Berichtsjahr.";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"71";"UF_011M";"";"NICHT EF12 IN {'6'} UND EF14U2 /= LEER UND EF29 = LEER";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Bei Abschluss der Promotion fehlt das Jahr des Prüfungsabschlusses der zur Promotion berechtigende Abschlussprüfung, obwohl das Jahr des Promotionsende angegeben ist.";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"72";"UF_012M";"";"NICHT EF12 IN {'6'} UND EF14U2 < EF29 UND EF14U2 /= LEER";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Bei Abschluss der Promotion liegt das Jahr des Promotionsende vor dem Jahr des Prüfungsabschlusses der zur Promotion berechtigende Abschlussprüfung.";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"73";"UF_013M";"";"(EF14U1 /= LEER ODER EF14U2 /= LEER) UND NICHT EF12 IN {'5','6'}";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Angaben zum Promotionsende sind vorhanden, es fehlt bei Art der Registrierung die Angabe ob Abschluss oder Abbruch der Promotion vorliegt";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"74";"UF_014M";"";"((EF6U2 < '12' UND EF22 /= LEER UND FUNKTION
NUMERISCH (EF6U3) UND FUNKTION NUMERISCH (EF22)
UND
(FUNKTION ALS_GANZZAHL (EF22) - FUNKTION
ALS_GANZZAHL (EF6U3)) <11)
ODER
(EF6U2 = '12' UND EF22 /= LEER UND FUNKTION
NUMERISCH (EF6U3) UND FUNKTION NUMERISCH (EF22)
UND
(FUNKTION ALS_GANZZAHL (EF22) - FUNKTION
ALS_GANZZAHL (EF6U3) -1) <11))";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Bei der Ersteinschreibung war der Promovierende jünger als 11 Jahre.";"Bei der Ersteinschreibung war der Promovierende jünger als 11 Jahre.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"75";"UF_015K";"";"(EF6U2 < '12' UND EF22 /= LEER UND FUNKTION NUMERISCH (EF6U3) UND FUNKTION NUMERISCH (EF22) UND
((FUNKTION ALS_GANZZAHL(EF22) - FUNKTION ALS_GANZZAHL(EF6U3)) >= 11) UND
((FUNKTION ALS_GANZZAHL(EF22) - FUNKTION ALS_GANZZAHL(EF6U3)) <= 16))
ODER
(EF6U2 = '12' UND EF22 /= LEER UND FUNKTION NUMERISCH (EF6U3) UND FUNKTION NUMERISCH (EF22) UND
((FUNKTION ALS_GANZZAHL(EF22) - FUNKTION ALS_GANZZAHL(EF6U3) -1) >= 11) UND
((FUNKTION ALS_GANZZAHL(EF22) - FUNKTION ALS_GANZZAHL(EF6U3) -1) <= 16))";"Prüfhinweis - manuelle Korrektur (""Kannfehler"")";"1";"";"Bei der Ersteinschreibung war der bzw. die Promovierende zwischen 11 und 16 Jahre alt.";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"76";"UF_016M";"";"((EF23 /= 0) UND (EF29 <= EF22) UND (EF19 /= '9990') UND (EF29 /= LEER) ODER (EF23 /= 0) UND (EF29 <= EF22) UND (EF19 = '9990') UND (EF12 =1) UND (EF29 /= LEER))
UND (EF37 /= {' b ', 'ab ', ' c','abc','a c',' bc'} )";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Das Jahr des Prüfungsabschlusses liegt vor oder im Jahr der Ersteinschreibung";"Jahr der promotionsberechtigenden Abschlussprüfung (EF29) liegt vor dem Jahr oder im Jahr der Ersteinschreibung als Studierender (EF22).
Bei Ersteinschreibung in Deutschland: Jahr der promotionsberechtigenden Abschlussprüfung liegt vor bzw. ist gleich dem Jahr der Ersteinschreibung.
Bei Ersteinschreibung im Ausland: Hier wird nur bei Erstregistrierungen (EF12 =1) geprüft, ob das Jahr der promotionsberechtigenden Abschlussprüfung vor oder im dem Jahr der Ersteinschreibung liegt.
Der Mussfehler wird nicht ausgelöst, wenn eines der beiden Felder durch eine maschinelle Einsetzung befüllt wurde.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"77";"UF_017M";"";"((EF19 /= LEER UND EF19 /= '9990') UND EF20 /= LEER)
ODER
(EF19 = '9990' UND EF20 = LEER)
ODER
(EF20 /= LEER UND EF19 /= '9990')";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Angaben zur Hochschule der Ersteinschreibung und Staat der Ersteinschreibung (Ausland) passen nicht zusammen.";"Hochschulstandort der Ersteinschreibung ist in Deutschland und EF20 (Bei Ersteinschreibung an einer Hochschule außerhalb Deutschlands, der Staat der Hochschule) ist ein Staat angegeben ODER Hochschulstandort der Ersteinschreibung ist 9990 (Ausland) und EF20 (Bei Ersteinschreibung an einer Hochschule außerhalb Deutschlands, der Staat der Hochschule) ist LEER.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"78";"UF_018M";"";"EF12 = '5' UND EF23 = '0'";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Abschluss der Promotion ist angegeben (EF12 = 5), aber es liegt kein zur Promotion berechtigender, vorangegangener Abschluss vor.";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"79";"UF_019M";"";"EF23 = '1'
UND
(EF24 = LEER ODER EF26 = LEER ODER EF27 = LEER ODER EF28 = LEER ODER EF29 = LEER ODER EF30 = LEER)";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Promotionsberechtigender Abschluss liegt vor, aber es fehlen Angaben dazu.";"Eine zur Promotion berechtigende, vorangegangene bestandene Abschlussprüfung liegt vor, aber die Angaben zur Hochschule der Abschlussprüfung für Promotion, Staat der Hochschule der Abschlussprüfung für Promotion, Art der Abschlussprüfung für Promotion, zum 1. Studienfach, zum Monat des Prüfungsabschlusses, Jahr des Prüfungsabschlusses für Promotion und Gesamtnote sind nicht vollständig vorhanden.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"80";"UF_020M";"";"EF23 = '1' UND EF30 = '9'";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Die Signatur der Prüfungsnote (EF30), bei einer zur Promotion berechtigende Abschlussprüfung ist gleich ""9"" (nicht bestanden).";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"81";"UF_021M";"";"NICHT EF1 IN {'02','09','14'} UND NICHT EF24 IN {'1110','1330','0530','5501','5503','5312','5313', '5314', '5315'}
UND ((EF30 = '7' UND FUNKTION WERTLAENGE (EF26) = 3
UND NICHT (&TEIL (EF26,2,2) IN {02,08,09,15,16,19,20..50,52,55,57,58,60,61..67,98,99})))
ODER
EF1 IN {'09','14'} UND ((EF30 = '7' UND FUNKTION WERTLAENGE (EF26) = 3
UND NICHT (&TEIL (EF26,2,2) IN {02,08,09,15,16,19,20..50,52,55,57,58,60,61..67,88,98,99})))
ODER
EF1 IN {'02'} UND EF27 /= '135' UND ((EF30 = '7' UND FUNKTION WERTLAENGE (EF26) = 3
UND NICHT (&TEIL (EF26,2,2) IN {02,08,09,15,16,19,20..50,52,55,57,58,60,61..67,98,99})))
ODER
EF1 IN {'02'} UND EF27 = '135' UND ((EF30 = '7' UND FUNKTION WERTLAENGE (EF26) = 3
UND NICHT (&TEIL (EF26,2,2) IN {01,02,08,09,15,16,19,20..50,52,55,57,58,60,61..67,68,69,78,82,88,93,98,99})))
ODER
EF24 IN {'1330'} UND ((EF30 = '7' UND FUNKTION WERTLAENGE (EF26) = 3
UND NICHT (&TEIL (EF26,2,2) IN {02,08,09,15,16,19,20..50,52,55,57,58,60,61..67,88,94,98,99})))
ODER
EF24 IN {'0530'} UND NICHT EF27 IN {'042','135','764'} UND ((EF30 = '7' UND FUNKTION WERTLAENGE (EF26) = 3
UND NICHT (&TEIL (EF26,2,2) IN {02,08,09,15,16,19,20..50,52,55,57,58,60,61..67,98,99})))
ODER
EF24 IN {'0530'} UND EF27 IN {'042','135','764'} UND ((EF30 = '7' UND FUNKTION WERTLAENGE (EF26) = 3
UND NICHT (&TEIL (EF26,2,2) IN {02,08,09,15,16,19,20..50,52,55,57,58,60,61..67,82,88,98,99})))
ODER
EF24 IN {'5501','5503'} UND NICHT EF27 IN {'042'} UND ((EF30 = '7' UND FUNKTION WERTLAENGE (EF26) = 3
UND NICHT (&TEIL (EF26,2,2) IN {02,08,09,15,16,19,20..50,52,55,57,58,60,61..67,98,99})))
ODER
EF24 IN {'5501','5503'} UND EF27 IN {'042'} UND ((EF30 = '7' UND FUNKTION WERTLAENGE (EF26) = 3
UND NICHT (&TEIL (EF26,2,2) IN {02,08,09,15,16,19,20..50,52,55,57,58,60,61..67,84,90,98,99})))
ODER
EF24 IN {'5312','5313', '5314', '5315'} UND NICHT EF27 IN {'042','673','768'} UND ((EF30 = '7' UND FUNKTION WERTLAENGE (EF26) = 3
UND NICHT (&TEIL (EF26,2,2) IN {02,08,09,15,16,19,20..50,52,55,57,58,60,61..67,98,99})))
ODER
EF24 IN {'5312','5313', '5314', '5315'} UND EF27 IN {'042','673','768'} UND ((EF30 = '7' UND FUNKTION WERTLAENGE (EF26) = 3
UND NICHT (&TEIL (EF26,2,2) IN {02,08,09,15,16,19,20..50,52,55,57,58,60,61..67,84,90,98,99})))
ODER
EF24 IN {'1110'} UND NICHT EF27 IN {'135', '593'} UND ((EF30 = '7' UND FUNKTION WERTLAENGE (EF26) = 3
UND NICHT (&TEIL (EF26,2,2) IN {02,08,09,15,16,19,20..50,52,55,57,58,60,61..67,98,99})))
ODER
EF24 IN {'1110'} UND EF27 IN {'135', '593'} UND ((EF30 = '7' UND FUNKTION WERTLAENGE (EF26) = 3
UND NICHT (&TEIL (EF26,2,2) IN {02,08,09,15,16,19,20..50,52,55,57,58,60,61..67,88,98,99})))";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Die nur bei Staats- und Magisterprüfungen zulässige Gesamtnote 7 kommt auch bei anderen Abschlüssen vor.";"Die nur bei Staats- und Magisterprüfungen zulässige Gesamtnote 7 kommt auch bei anderen Abschlüssen vor (Teil 1 der Kontrolle gilt nicht für Bayern, Sachsen, und Hamburg und nicht für die Hochschulen U Osnabrück, Hochschule Osnabrück mit allen Standorten und die Hochschule Braunschweig Wolfenbüttel mit allen Standorten und die Universität Köln). In Bayern und Sachsen ist die Gesamtnote 7 auch bei Abschluss ""88"" Master an Universitäten (Abschluss vorausgesetzt) zulässig (Teil 2 der Kontrolle). In Hamburg ist im Studienfach Rechtswissenschaft die Gesamtnote 7 auch bei Universitätsbachelor (68,01,93,82) und Universitätsmaster (69,78,88) zulässig (Teil 3 und 4 der Kontrolle). An der Uni Würzburg ist die Gesamtnote 7 zusätzlich auch bei Abschluss ""94"" Abschlusszeugnis/Zertifikat zulässig (Teil 5 der Kontrolle). Teil 6 und 7 ist für die U Osnabrück. Hier ist bei den Fächern 042, 135 und 764 auch bei den Abschlüssen 82 und 88 die Gesamtnote 7 zulässig. Teil 8 und 9 ist für die Hochschule Osnabrück mit allen Standorten. Hier ist bei dem Fach 042 auch bei den Abschlüssen 84 und 90 die Gesamtnote 7 zulässig. Teil 10 und 11 ist für die Hochschule Braunschweig Wolfenbüttel mit allen Standorten. Hier ist bei den Fächern 042, 673 und 768 auch bei den Abschlüssen 84 und 90 die Gesamtnote 7 zulässig. Teil 12 und 13 ist für die Universität Köln. Hier ist bei den Fächern 135 und 593 auch bei dem Abschluss 88 die Gesamtnote 7 zulässig.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"82";"UF_022K";"";"EF32 IN {'33','52','77'} UND
((EF6U2 < '12' UND EF31 /= LEER UND FUNKTION NUMERISCH (EF6U3) UND FUNKTION NUMERISCH (EF31) UND
((FUNKTION ALS_GANZZAHL(EF31) - FUNKTION ALS_GANZZAHL(EF6U3)) >= 11) UND
((FUNKTION ALS_GANZZAHL(EF31) - FUNKTION ALS_GANZZAHL(EF6U3)) <= 14))
ODER
(EF6U2 = '12' UND EF31 /= LEER UND FUNKTION NUMERISCH (EF6U3) UND FUNKTION NUMERISCH (EF31) UND
((FUNKTION ALS_GANZZAHL(EF31) - FUNKTION ALS_GANZZAHL(EF6U3) -1) >= 11) UND
((FUNKTION ALS_GANZZAHL(EF31) - FUNKTION ALS_GANZZAHL(EF6U3) -1) <= 14)))";"Prüfhinweis - manuelle Korrektur (""Kannfehler"")";"1";"";"Wenn Art der HZB Begabtenprüfung: Promovierender war bei Erwerb der Hochschulzugangsberechtigung zwischen 11 - 14 Jahre alt.";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"83";"UF_023K";"";"(EF6U2 < '12' UND EF31 /= LEER UND FUNKTION NUMERISCH (EF6U3) UND FUNKTION NUMERISCH (EF31) UND
((FUNKTION ALS_GANZZAHL(EF31) - FUNKTION ALS_GANZZAHL(EF6U3)) >= 11) UND
((FUNKTION ALS_GANZZAHL(EF31) - FUNKTION ALS_GANZZAHL(EF6U3)) <= 16))
ODER
(EF6U2 = '12' UND EF31 /= LEER UND FUNKTION NUMERISCH (EF6U3) UND FUNKTION NUMERISCH (EF31) UND
((FUNKTION ALS_GANZZAHL(EF31) - FUNKTION ALS_GANZZAHL(EF6U3) -1) >= 11) UND
((FUNKTION ALS_GANZZAHL(EF31) - FUNKTION ALS_GANZZAHL(EF6U3) -1) <= 16))";"Prüfhinweis - manuelle Korrektur (""Kannfehler"")";"1";"";"Promovierender war bei Erwerb der Hochschulzugangsberechtigung zwischen 11 - 16 Jahre alt.";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"84";"UF_024M";"";"((EF6U2 < '12' UND EF31 /= LEER UND FUNKTION
NUMERISCH (EF6U3) UND FUNKTION NUMERISCH (EF31)
UND
(FUNKTION ALS_GANZZAHL (EF31) - FUNKTION
ALS_GANZZAHL (EF6U3)) <11)
ODER
(EF6U2 = '12' UND EF31 /= LEER UND FUNKTION
NUMERISCH (EF6U3) UND FUNKTION NUMERISCH (EF31)
UND
(FUNKTION ALS_GANZZAHL (EF31) - FUNKTION
ALS_GANZZAHL (EF6U3) -1) <11))";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Promovierender war bei Erwerb der Hochschulzugangsberechtigung jünger als 11 Jahre.";"Promovierender war bei Erwerb derHochschulzugangsberechtigung jünger als 11 Jahre.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"85";"UF_025M";"";"EF20 = LEER UND EF22 /= LEER UND EF31 /= LEER UND EF22 < EF31";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Bei Ersteinschreibung in Deutschland liegt das Jahr der Ersteinschreibung vor dem Jahr des Erwerbs der Hochschulzugangsberechtigung.";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"86";"UF_026M";"";"(EF32 IN {'31','51','76'} UND EF33U1 = '99')
ODER
(EF32 IN {'39','59','79','17','47','67'} UND EF33U1 IN
{'01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16'})
ODER
(NICHT EF32 IN {'39','59','79','17','47','67'} UND EF33U1 = '99')";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Unplausible Angaben zwischen Art und Land des Erwerbs der HZB.";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"87";"UF_027M";"";"(EF33U1 IN
{'01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16'} UND
NICHT (&KONKATENIEREN (EF33U1, EF33U2) IN MATERIAL KREISE (key)))
ODER
(EF33U1 = '98' UND EF33U2 /= '999')";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Falsche Kreiskennziffer bei Kreis des Erwerbs der HZB in Deutschland.";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"88";"UF_028M";"";"(EF33U1 = '99' UND NICHT (EF33U2 IN MATERIAL
STAAT (key)))
ODER
(EF33U1 = '99' UND EF33U2 = '000')";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Falscher Länderschlüssel bei Erwerb der HZB außerhalb Deutschlands";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"89";"UF_029M";"";"(EF24 /= LEER UND EF24 /= '9990' UND EF25 /= LEER)
ODER
(EF24 = '9990' UND EF25 = LEER)
ODER
(EF25 /= LEER UND EF24 /= '9990')";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"";"Angaben zum Hochschulstandort und Staat der Ersteinschreibung (Ausland) der vorangegangenen Abschlussprüfung passen nicht zusammen.";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"90";"UF_030K";"";"(EF1 /= {'09'} UND (EF13U2 < (EF29 - 5)) UND (EF11 IN { '107', '185' } UND EF13U2 /= LEER)) ODER
(EF1 = {'09'} UND (EF13U2 < (EF29 - 5)) UND (EF11 IN { '107', '185', 'a47', 'a58', 'a80', 'a81', 'a82', 'a83', 'a84', 'b59', 'b68', 'g05', 'g21', 'g73', 'h32', 'h36', 'i74' } UND EF13U2 /= LEER))";"Prüfhinweis - manuelle Korrektur (""Kannfehler"")";"1";"Korrigieren Sie bitte Ihre Angabe.";"Der Promotionsbeginn darf bei Medizinpromotionen zeitlich maximal 5 Jahre vor dem Erwerb des promotionsberechtigenden Abschlusses liegen.";"Ausnahmen HS Bayern: Landesinterne Schlüssel für Medizinpromotionen ergänzt.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"91";"UF_031K";"";"(EF2 >= '2018' UND (NICHT EF12 IN {'6'} UND EF13U2 = EF14U2))";"Prüfhinweis - manuelle Korrektur (""Kannfehler"")";"1";"";"Jahr des Promotionsbeginns ist gleich dem Jahr des Promotionsende";"Ab 2018 : Jahr des Promotionsbeginns ist gleich dem Jahr des Promotionsende. Nur bei Abbruch der Promotion (EF12 = 6) ist das gleiche Jahr zulässig.
Kannfehler dient als Hinweis zur Prüfung";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"92";"UF_032M";"";"((EF13U2 * 100 + EF13U1) - (EF6U3 *100 + EF6U2) < 2000) UND (EF6U3 /= LEER) UND
(EF13U2 /= LEER) UND (EF35 /= {' c','abc','a c',' bc'})";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"Korrigieren Sie bitte Ihre Angabe.";"Promovierende sind zu Beginn der Promotion jünger als 20 Jahre.";"Promovierende sind zu Beginn der Promotion jünger als 20 Jahre, es erfolgt ein Vergleich von Geburtsdatum und Beginn der Promotion.
Von diesem Mussfehler ausgenommen sind Promovierende bei denen der Beginn der Promotion zum Abschluss der Datenaufbereitung maschinell eingesetzt wurde, da dieser Wert der Hochschule nicht bekannt ist.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"93";"UF_033K";"";"(EF13U2 - EF6U3) > 90 UND EF13U2 /= LEER UND EF6U3 /= LEER";"Prüfhinweis - manuelle Korrektur (""Kannfehler"")";"1";"Korrigieren Sie bitte Ihre Angabe.";"Promovierende sind zu Beginn der Promotion älter als 90 Jahre.";"Promovierende sind zu Beginn der Promotion älter als 90 Jahre, es erfolgt ein Vergleich von Geburtsdatum und Beginn der Promotion. Dies ist in Einzelfällen möglich.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"94";"UF_034M";"";"(EF14U2 /= LEER UND EF14U2 = EF13U2 UND EF13U1 >= EF14U1) UND (EF35 /= {' c','abc','a c',' bc'})";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"Korrigieren Sie bitte Ihre Angabe.";"Monat Promotionsbeginns ist größer oder gleich dem Monat des Promotionsendes, wenn Promotionsbeginn und -ende im selben Jahr liegen.";"Der Monat des Promotionsbeginns ist größer oder gleich dem Monat des Promotionsendes, wenn Promotionsbeginn und -ende im selben Jahr liegen. Von diesem Mussfehler ausgenommen sind Promovierende bei denen der Beginn der Promotion zum Abschluss der Datenaufbereitung maschinell eingesetzt wurde.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"95";"UF_035M";"";"((EF13U2 <= EF22 UND EF19 /= '9990' UND EF13U2 /= LEER) ODER (EF13U2 < EF22 UND EF19 = '9990' UND EF13U2 /= LEER)) UND (EF35 /= {' c','abc','a c',' bc'} UND EF37 /= {' b ','abc','ab ',' bc'})";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"Korrigieren Sie bitte Ihre Angabe.";"Promotionsbeginn liegt vor Ersteinschreibung als Studierender.";"Der Promotionsbeginn liegt vor der Ersteinschreibung als Studierender. Bei Ersteinschreibung in Deutschland: Jahr des Promotionsbeginns liegt vor bzw. ist gleich dem Jahr der Ersteinschreibung. Bei Ersteinschreibung im Ausland: Jahr des Promotionsbeginns liegt vor dem Jahr der Ersteinschreibung. Von diesem Mussfehler ausgenommen sind Promovierende bei denen der Beginn der Promotion bzw. das Jahr der Ersteinschreibung zum Abschluss der Datenaufbereitung maschinell eingesetzt wurde.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"96";"UF_036M";"";"((EF13U2 <= EF31 UND EF33U1 /= '99' UND EF13U2 /= LEER) ODER (EF13U2 < EF31 UND EF33U1 = '99' UND EF13U2 /= LEER)) UND (EF35 /= {' c','abc','a c',' bc'} UND EF38 /= {'a ','abc','ab ','a c'})";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"Korrigieren Sie bitte Ihre Angabe.";"Promotionsbeginn liegt vor Erwerb der HZB.";"Der Promotionsbeginn liegt vor dem Erwerb der HZB. Bei HZB Erwerb in Deutschland: Jahr des Promotionsbeginns liegt vor bzw. ist gleich dem Jahr des HZB Erwerbs. Bei HZB Erwerb im Ausland: Jahr des Promotionsbeginns liegt vor dem Jahr des HZB Erwerbs. Von diesem Mussfehler ausgenommen sind Promovierende bei denen der Beginn der Promotion bzw. das Jahr des Erwerbs der HZB zum Abschluss der Datenaufbereitung maschinell eingesetzt wurde.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"97";"UF_037M";"";"((EF23 /= 0) UND (EF29 /= LEER) UND (EF29 - 2 <= EF22) UND (EF12 = 1) UND (EF37 /= {' b ', 'ab ',' c','abc','a c',' bc'} ))";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"Korrigieren Sie bitte Ihre Angabe.";"Bei Erstregistrierungen: Zwischen Jahr promotionsberechtigender Abschlussprüfung und Ersteinschreibung als Studierender liegen nur ein oder zwei Jahre.";"Bei Erstregistrierungen: Zwischen dem Jahr der promotionsberechtigenden Abschlussprüfung (EF29) und dem Jahr der Ersteinschreibung als Studierende/r (EF22) liegen ein oder zwei Jahre. Durchschnittliche Studiendauer liegt bei acht Semestern, daher unplausibel. Der Mussfehler wird nicht ausgelöst, wenn eines der beiden Felder durch eine maschinelle Einsetzung befüllt wurde.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"98";"UF_038K";"";"((EF23 /= 0) UND (EF29 - 2 <= EF22) UND (EF29 /= LEER) UND (EF12 /= 1) UND (EF37 /= {' b ', 'ab ', ' c','abc','a c',' bc'}))";"Prüfhinweis - manuelle Korrektur (""Kannfehler"")";"1";"Korrigieren Sie bitte Ihre Angabe.";"Für Fälle außer Erstregistrierung: Zwischen Jahr promotionsberechtigender Abschlussprüfung und Ersteinschreibung als Studierender liegen nur ein oder zwei Jahre.";"Bei allen Fälle außer Erstregistrierung (Neuregistrierung/aktive Fortsetzung/Unterbrechung/Abschluss/Abbruch): Zwischen dem Jahr der promotionsberechtigenden Abschlussprüfung (EF29) und dem Jahr der Ersteinschreibung als Studierender (EF22) liegen ein oder zwei Jahre. Durchschnittliche Studiendauer liegt bei acht Semestern, daher unplausibel. Der Kannfehler wird nicht ausgelöst, wenn eines der beiden Felder durch eine maschinelle Einsetzung befüllt wurde.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"99";"UF_039M";"";"((EF23 /= 0) UND (EF29/= LEER) UND (EF29 <= EF31) UND NICHT (EF32 IN {'31','39','51','59','76','79','17','47','67'}) ODER (EF23 /= 0) UND (EF29/= LEER) UND (EF29 < EF31) UND (EF32 IN {'31','39','51','59','76','79','17','47','67'}))
UND (EF37 /= {' c','abc','a c',' bc'} UND EF38 /= {'a ','abc','a c','ab '})";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"Korrigieren Sie bitte Ihre Angabe.";"Jahr des promotionsberechtigenden Abschlusses liegt zeitlich vor dem Jahr der HZB.";"Jahr des promotionsberechtigenden Abschlusses liegt zeitlich vor dem Jahr der HZB.
Bei HZB Erwerb in Deutschland: Jahr des promotionsberechtigenden Abschlusses (EF29) liegt vor oder im Jahr der HZB (EF31).
Bei HZB Erwerb im Ausland: Jahr des promotionsberechtigenden Abschlusses (EF29) liegt vor dem Jahr der HZB (EF31).
Der Mussfehler wird nicht ausgelöst, wenn eines der beiden Felder durch eine maschinelle Einsetzung befüllt wurde.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"100";"UF_040M";"";"((EF23 /= 0) UND (EF29 /= LEER) UND (EF29 - 2 <=
EF31) UND (EF12 = 1) UND NICHT (EF32 IN
{'31','39','51','59','76','79','17','47','67'}))
UND (EF37 /= {' c','abc','a c',' bc'} UND EF38
/= {'a ','abc','a c','ab '})";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"Korrigieren Sie bitte Ihre Angabe.";"Bei HZB Erwerb in Deutschland und Erstregistrierung: Zwischen dem Jahr des promotionsberechtigenden Abschlusses und dem Jahr der HZB liegen nur ein bis zwei Jahre.";"Bei HZB Erwerb in Deutschland: Hier wird nur bei Erstregistrierungen (EF12 =1) geprüft, ob zwischen dem Jahr des promotionsberechtigenden Abschlusses (EF29) und dem Jahr der HZB (EF31) ein oder zwei Jahre liegen.
Durchschnittliche Studiendauer liegt bei acht Semestern, daher unplausibel.
Der Mussfehler wird nicht ausgelöst, wenn eines der beiden Felder durch eine maschinelle Einsetzung befüllt wurde.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"101";"UF_041K";"";"((EF23 /= 0) UND (EF29 /= LEER) UND (EF29 - 2 <= EF31) UND (EF12 /= 1)) UND (EF37 /= {' c','abc','a c',' bc'} UND EF38 /= {'a ','abc','a c','ab '})";"Prüfhinweis - manuelle Korrektur (""Kannfehler"")";"1";"Korrigieren Sie bitte Ihre Angabe.";"Für Fälle außer Erstregistrierung: Zwischen dem Jahr des promotionsberechtigenden Abschlusses und dem Jahr der HZB liegen nur ein bis zwei Jahre.";"Für Fälle außer Erstregistrierung: Jahr des promotionsberechtigenden Abschlusses EF29 liegt ein oder zwei Jahre nach dem Jahr der HZB EF31. Durchschnittliche Studiendauer liegt bei acht Semestern, daher unplausibel. Der Kannfehler wird nicht ausgelöst, wenn eines der beiden Felder durch eine maschinelle Einsetzung befüllt wurde.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"102";"UF_042K";"";"((EF23 /= 0) UND (EF29 /= LEER) UND (EF29 = EF31) UND (EF32 IN {'31','39','51','59','76','79','17','47','67'})) UND (EF37 /= {' c','abc','a c',' bc'} UND EF38 /= {'a ','abc','a c','ab '})";"Prüfhinweis - manuelle Korrektur (""Kannfehler"")";"1";"Korrigieren Sie bitte Ihre Angabe.";"Jahr des promotionsberechtigenden Abschlusses liegt im Jahr der HZB (bei Erwerb der HZB im Ausland).";"Jahr des promotionsberechtigenden Abschlusses (EF29) und Jahr des HZB Erwerb im Ausland (EF31) liegen im selben Jahr. Der Kannfehler wird nicht ausgelöst, wenn eines der beiden Felder durch eine maschinelle Einsetzung befüllt wurde.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"103";"UF_043M";"";"((EF40 = { '117', '317', '817','506', '591', '592','107', '507', '807', '186', '997'}) UND (EF37 /= {' c','abc','a c',' bc'}))";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"Korrigieren Sie bitte Ihre Angabe.";"Promotionsberechtigende Abschlüsse berechtigen nicht zur Promotion.";"Es wurden Abschlüsse als promotionsberechtigender Abschluss (EF26) gemeldet, die nicht zur Promotion berechtigen. Der Mussfehler wird nicht ausgelöst, wenn der promotionsberechtigende Abschluss durch eine maschinelle Einsetzung befüllt wurde.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"104";"UF_044M";"";"EF8 = '999'";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"Korrigieren Sie bitte Ihre Angabe.";"Staatsangehörigkeit mit ""999"" (ohne Angabe) signiert, statt Feld leer zu lassen, wenn Angaben nicht bekannt.";"Für das Merkmal EF8 (Staatsangehörigkeit) wurde die Angabe ""999 = ohne Angabe"" von den Hochschulen verwendet. Falls die Staatsangehörigkeit nicht bekannt ist, sollte das Feld leer gelassen werden. Es gibt für EF8 eine Setzung, demnach werden Datensätze ohne Angabe der Staatsangehörigkeit nach der Verteilung von Deutschen und Ausländern nach Fächergruppen der jeweiligen Hochschule zugewiesen.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"105";"UF_045K";"";"EF1 = '08' UND EF17 = 0 UND EF15 = 0 UND EF36 /= {' c',' bc','a ','abc','ab ','a c'} UND EF13U2 >= '2018'";"Prüfhinweis - manuelle Korrektur (""Kannfehler"")";"1";"Korrigieren Sie bitte Ihre Angabe.";"Ihre Eingabe ist unzulässig.";"Kannfehler Baden-Württemberg
ab Promotionsbeginn 2018 entweder Beschäftigung an der Hochschule der Promotion oder Immatrikulation";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"106";"UF_046M";"";"EF23 = '0'
UND
(EF24 /= LEER ODER EF26 /= LEER ODER EF27 /= LEER
ODER EF28 /= LEER ODER EF29 /= LEER ODER EF30 /= LEER)";"Fehler - manuelle Korrektur (""Mussfehler"")";"1";"Korrigieren Sie bitte Ihre Angabe.";"Laut Merkmal promotionsberechtigender Abschluss (EF23) liegt ein solcher Abschluss nicht vor, aber in den EF24 bis EF30 sind Angaben erfasst.";"Bitte prüfen Sie ob ein promotionsberechtigender Abschluss vorliegt (Merkmal EF23)
Falls kein promotionsberechtigender Abschluss vorliegt, sind etwaige Angaben in den Merkmalen die sich auf den promotionsberechtigenden Abschluss (EF24 bis EF30) beziehen, zu löschen. Falls ein promotionsberechtigender Abschluss vorliegt, ist EF23 anzupassen.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"107";"E_000";"";"EF1 /= LEER";"Fehler - maschinelle Korrektur";"1";"Korrigieren Sie bitte Ihre Angabe.";"In einem vorherigen PL Lauf eingesetzte Schlüssel werden gelöscht.";"In einem vorherigen PL Lauf eingesetzte Schlüssel in EF39 bis EF50 werden gelöscht und durch die nachfolgenden Einsetzungen neu befüllt. Damit wird sichergestellt das bei Schlüssellöschungen im Liefermaterial auch die vorher eingesetzten Schlüssel gelöscht werden.";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"108";"E_001";"";"EF11 /= LEER";"Fehler - maschinelle Korrektur";"1";"";"Einsetzung des Bundessignierschlüssels Promotionsfach in das EF39.";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"109";"E_002";"";"EF26 /= LEER";"Fehler - maschinelle Korrektur";"1";"";"Signierschlüssel Bund vorangegangener Abschluss in EF40";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"110";"E_003";"";"EF27 /= LEER";"Fehler - maschinelle Korrektur";"1";"";"Einsetzung Signierschlüssel Bund vorangegangenes 1. Studienfach in EF41";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"111";"E_004";"";"EF1 /= LEER";"Fehler - maschinelle Korrektur";"1";"";"Einsetzung Sortierschlüssel Bundesland in EF42";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"112";"E_005";"";"REIHE (EF3) IN MATERIAL HOCHSCHULFACHBEREICH(key)";"Fehler - maschinelle Korrektur";"1";"";"Einsetzung Sortierschlüssel bei Hochschule in EF44";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"113";"E_006";"";"EF44 /= LEER";"Fehler - maschinelle Korrektur";"1";"";"Einsetzung Sortierschlüssel Hochschulart in EF43";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"114";"E_007";"";"REIHE (EF3) IN MATERIAL HOCHSCHULFACHBEREICH(key)";"Fehler - maschinelle Korrektur";"1";"";"Einsetzung des Schlüssels der Trägerschaft der Hochschule in EF45";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"115";"E_008";"";"EF3 IN MATERIAL HOCHSCHULFACHBEREICH (key)";"Fehler - maschinelle Korrektur";"1";"";"Einsetzung Gemeindeschlüssel in EF46";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"116";"E_009";"";"EF8 /= LEER";"Fehler - maschinelle Korrektur";"1";"";"Einsetzung Sortierschlüssel Staatsangehörigkeit in EF47";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"117";"E_010";"";"EF6U2 /= LEER UND EF6U3 /= LEER";"Fehler - maschinelle Korrektur";"1";"";"Altersberechnung aus Berichtszeitraum und Geburtmonat und -jahr in EF48";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"118";"E_011";"";"EF39 /= LEER";"Fehler - maschinelle Korrektur";"1";"";"Einsetzung Sortierschlüssel Promotionsfach in EF49";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
"";"PROMOVIERENDE";"";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017";"Syme-L";"TELEFON";"EMAIL";"21.05.2026 - 06:39";"PROMOVIERENDE.Ablauf_Promovierende_ab_2017";"";"119";"E_012";"";"EF33U1 /= LEER";"Fehler - maschinelle Korrektur";"1";"Korrigieren Sie bitte Ihre Angabe.";"Umsetzung der alten Kreischlüssel bei Land und Kreis des Erwerbs der HZB auf den Stand SS 2017 in EF50";"";"Freigegeben";"VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE";""
1 Evas Stat Bzr Ablaufname Ablaufkommentar Ablaufbeschreibung Statistikname Person Telefon eMail Datum Ablauf Themenbereich Nr.-Ablauf Prüfschlüssel Beschreibung Prüfbedingung Prüfungsart Fehlergewicht Korrekturhinweis Fehlertext-kurz Fehlertext-lang Status Spezifiziert-in Kommentar
2 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 1 MA_001 EF3 /= LEER Fehler - maschinelle Korrektur 1 Alle leeren Eingabefelder die von den liefernden Hochschulen mit Leerzeichen gefüllt wurden, werden auf LEER gesetzt. Alle leeren Eingabefelder die von den liefernden Hochschulen mit Leerzeichen gefüllt wurden, werden auf LEER gesetzt. (Ausnahme sind die Felder frei für StLÄ) Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
3 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 2 MA_002 EF3 /= LEER Fehler - maschinelle Korrektur 1 Alle leeren Eingabefelder die von den liefernden Hochschulen mit 0 gefüllt wurden, werden auf LEER gesetzt. (Ausnahme sind die EF in denen 0 eine zulässige Signatur ist.) Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
4 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 3 MA_003 (EF14U1 = LEER UND EF14U2 = LEER) UND EF12 IN {'5','6'} Fehler - maschinelle Korrektur 1 Bei fehlender Angabe des Promotionsendes wird der Dezember des Berichtsjahres eingesetzt. Wenn EF12=5 (erfolgreicher Abschluss) oder 6 (Abbruch) ist und EF14 LEER ist, dann wird für EF14 das Datum Dezember (12) des Berichtsjahres EF2 eingesetzt. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
5 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 4 MA_004 (EF19 IN {'0110','0330','0350','1300','1400','1620','1670','2010','2070','2330', '2460','2470','2661','3600','3650','3740','3730','3760','5070', '5180','5200','5290','5335','5386','5572','5574','5580','5600', '5870','5903','6209','6283','6250','6310','6420','6450','6500','6880', '6920','6940','7000','7200','7640','7650','7660','7800','8042','8043', '8121','8122','8130','8160' }) ODER (EF19 IN {'2271'} UND &KONKATENIEREN (EF22, EF21) < '20182') Fehler - maschinelle Korrektur 1 PSEUDONYMMERKMAL: Diese Prüfung muss mit Studierenden- und Prüfungsstatistik identisch sein zwecks Pseudonymerstellung für Studienverläufe. Auszug Protokoll Referentenbesprechung: Das Statistische Bundesamt erläutert, das für alle Hochschulen, die im Sommersemester 2017 nicht mehr bestehen, für die Hochschule der Ersteinschreibung der Schlüssel „9000“ (sonstige deutsche Hochschule) zu verwenden ist. Dagegen müssen Hochschulen, die ab dem Sommersemester 2017 stillgelegt werden, bezüglich der Hochschule der Ersteinschreibung weiterhin mit dem ehemaligen, aktuell aber nicht mehr gültigen Schlüssel signiert werden. Das Statistische Bundesamt erörtert mit dem für DAHStat zuständigen HSL, wie diese Anforderung im Schlüsselverzeichnis umgesetzt bzw. in der PL verhindert werden kann, dass Schlüssel für ehemalige Hochschulen bei der Verschlüsselung der aktuelle Hochschule verwendet werden. Wenn die Hochschule der Ersteinschreibung aufgelöst wurde, wird der Signierschlüssel 9000 eingesetzt. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
6 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 5 MA_005 EF19 IN {'0070','0090','0091','0092','0122','0123','0124','0210','0220','0230','0250','0280','0290','0303','0320','0340', '0381','0382','0400','0410','0420','0430','0440','0450','0460','0470','0480','0531','0532','0550','0561','0562','0570','0600', '0610','0810','0851','0852','0853','0990','0991','0992','0993','1070','1229','1310','1320','1387','1388','1630','1640','1650', '1720','1860','2090','2110','2120','2140','2160','2250','2260','2310','2340','2400','2480','2562','2563','2662','2680','2751', '2780','2820','2840','2910','2970','3012','3110','3150','3160','3170','3180','3190','3200','3210','3220','3280','3300','3310', '3320','3330','3340','3350','3380','3390','3400','3410','3420','3450','3460','3470','3480','3510','3520','3531','3532','3540', '3551','3552','3553','3560','3570','3580','3581','3582','3583','3590','3610','3620','3630','3690','3712','3750','3770','3800', '3810','3820','3830','3840','3850','3860','3870','3920','3960','5021','5022','5023','5024','5025','5026','5027','5028','5031', '5032','5033','5040','5301','5302','5303','5304','5305','5320','5331','5332','5333','5334','5340','5360','5370','5383','5384', '5390','5421','5422','5441','5442','5450','5462','5463','5481','5482','5490','5502','5510','5520','5530','5540','5550','5560', '5571','5573','5590','5610','5620','5630','5640','5650','5740','5750','5760','5790','5811','5812','5850','5880','5900','5910', '5920','5930','5940','5950','5960','5970','6010','6020','6040','6050','6060','6073','6078','6079','6080','6090','6100','6110', '6120','6130','6140','6150','6160','6170','6201','620A','6242','6260','6300','6341','6350','6440','6460','6470','6480','6490', '6520','6550','6561','6562','6570','6580','6651','6652','6871','6872','6930','6950','6960','6980','6990','7030','7040','7080', '7100','7130','7150','7160','7170','7191','7192','7221','7222','7230','7340','7353','7360','7371','7373','7380','7390','7400', '7410','7441','7442','7470','7480','7490','7500','7510','7520','7530','7711','7712','7713','7714','7720','7740','7760','7770', '7861','7862','7863','7870','8041','8044','8050','8070'} Fehler - maschinelle Korrektur 1 PSEUDONYMMERKMAL: Diese Prüfung muss mit Studierenden- und Prüfungsstatistik identisch sein zwecks Pseudonymerstellung für Studienverläufe. Diese Prüfung muss mit Studierenden- und Prüfungsstatistik identisch sein zwecks Pseudonymerstellung für Studienverläufe. Auszug Protokoll Referentenbesprechung: Das Statistische Bundesamt erläutert, das für alle Hochschulen, die im Sommersemester 2017 nicht mehr bestehen, für die Hochschule der Ersteinschreibung der Schlüssel „9000“ (sonstige deutsche Hochschule) zu verwenden ist. Dagegen müssen Hochschulen, die ab dem Sommersemester 2017 stillgelegt werden, bezüglich der Hochschule der Ersteinschreibung weiterhin mit dem ehemaligen, aktuell aber nicht mehr gültigen Schlüssel signiert werden. Das Statistische Bundesamt erörtert mit dem für DAHStat zuständigen HSL, wie diese Anforderung im Schlüsselverzeichnis umgesetzt bzw. in der PL verhindert werden kann, dass Schlüssel für ehemalige Hochschulen bei der Verschlüsselung der aktuelle Hochschule verwendet werden. Wenn die Hochschule der Ersteinschreibung in eine andere Hochschule eingegliedert wurde, wird der Signierschlüssel der neuen Hochschule eingesetzt. Wenn der Hochschulstandort der Ersteinschreibung in eine andere Hochschule eingegliedert wurde, wird der Signierschlüssel des neuen Hochschulstandortes eingesetzt. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
7 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 6 MA_006 NICHT EF1 IN {'09'} UND EF8 > '000' UND EF33U1 = '99' UND NICHT (EF32 IN {'31','39','51','59','76','79','17','47','67'}) UND EF19 IN MATERIAL HOCHSCHULFACHBEREICH (key) UND &fkt_MA_007() IN {60000000,60000001..79999999} Fehler - maschinelle Korrektur 1 PSEUDONYMMERKMAL: Diese Prüfung muss mit Studierenden- und Prüfungsstatistik identisch sein zwecks Pseudonymerstellung für Studienverläufe. Ausländer mit Erwerb der HZB im Ausland und falsche oder fehlende Angaben zur Art der HZB Einsetzung der Signatur '79' bei Art der HZB. Nur bei Fach- und Verwaltungsfachhochschulen.Bei wissenschaftlichen Hochschulen Kontrolle MA_007. Diese Kontrolle wird nicht für Bayern ausgeführt. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
8 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 7 MA_007 NICHT EF1 IN {'09'} UND EF8 > '000' UND EF33U1 = '99' UND NICHT (EF32 IN {'31','39','51','59','76','79','17','47','67'}) UND EF19 IN MATERIAL HOCHSCHULFACHBEREICH (key) UND NICHT (&fkt_MA_007() IN {60000000,60000001..79999999}) Fehler - maschinelle Korrektur 1 PSEUDONYMMERKMAL: Diese Prüfung muss mit Studierenden- und Prüfungsstatistik identisch sein zwecks Pseudonymerstellung für Studienverläufe. Ausländer mit Erwerb der HZB im Ausland und falsche oder fehlende Angaben zur Art der HZB Einsetzung der Signatur '39' bei Art der HZB. Nur bei wissenschaftlichen Hochschulen.Bei Fach- und Verwaltungsfachhochschulen Kontrolle MA_006. Diese Kontrolle wird nicht für Bayern ausgeführt. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
9 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 8 MA_008 NICHT EF1 IN {'09'} UND EF32 IN {'39','59','79','17','47','67'} UND FUNKTION NUMERISCH (EF8) UND EF8 IN {001,002..998,999} UND (EF33U1 = LEER ODER EF33U1 = ' ') Fehler - maschinelle Korrektur 1 PSEUDONYMMERKMAL: Diese Prüfung muss mit Studierenden- und Prüfungsstatistik identisch sein zwecks Pseudonymerstellung für Studienverläufe. Einsetzung Land des Erwerbs der HZB (Nur bei Ausländer) Ausländer und keine Angaben im Land des Erwerbs der HZB (EF33U1), wird 99 für Ausland als Land des Erwerbs der HZB übernommen.Diese Kontrolle wird nicht für Bayern ausgeführt. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
10 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 9 MA_009 EF32 IN {'39','59','79','17','47','67'} UND FUNKTION NUMERISCH (EF8) UND EF8 IN {001,002..998,999} UND (EF33U2 = LEER ODER EF33U2 = ' ') Fehler - maschinelle Korrektur 1 PSEUDONYMMERKMAL: Diese Prüfung muss mit Studierenden- und Prüfungsstatistik identisch sein zwecks Pseudonymerstellung für Studienverläufe. Einsetzung Staat des Erwerbs der HZB (Nur bei Ausländer) Ausländer und keine Angaben im Staat des Erwerbs der HZB (EF33U2), wird Staatsangehörigkeit für Staat des Erwerbs der ersten HZB übernommen. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
11 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 10 MA_010 (EF24 IN {'0110','0330','0350','1300','1400','1620','1670','2010','2070','2330', '2460','2470','2661','2271','3600','3650','3740','3730','3760','5070', '5180','5200','5290','5335','5386','5572','5574','5580','5600', '5870','5903','6209','6283','6250','6310','6420','6450','6500','6880', '6920','6940','7000','7200','7640','7650','7660','7800','8042','8043', '8121','8122','8130','8160' }) ODER (EF24 IN {'2271'} UND EF29 < '2018') Fehler - maschinelle Korrektur 1 PSEUDONYMMERKMAL: Diese Prüfung muss mit Studierenden- und Prüfungsstatistik identisch sein zwecks Pseudonymerstellung für Studienverläufe. Auszug Protokoll Referentenbesprechung: Das Statistische Bundesamt erläutert, das für alle Hochschulen, die im Sommersemester 2017 nicht mehr bestehen, für die Hochschule der Ersteinschreibung der Schlüssel „9000“ (sonstige deutsche Hochschule) zu verwenden ist. Dagegen müssen Hochschulen, die ab dem Sommersemester 2017 stillgelegt werden, bezüglich der Hochschule der Ersteinschreibung weiterhin mit dem ehemaligen, aktuell aber nicht mehr gültigen Schlüssel signiert werden. Das Statistische Bundesamt erörtert mit dem für DAHStat zuständigen HSL, wie diese Anforderung im Schlüsselverzeichnis umgesetzt bzw. in der PL verhindert werden kann, dass Schlüssel für ehemalige Hochschulen bei der Verschlüsselung der aktuelle Hochschule verwendet werden. Wenn die Hochschule der vorangegangenen Abschlussprüfung aufgelöst wurde, wird der Signierschlüssel 9000 eingesetzt. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
12 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 11 MA_011 EF24 IN {'0070','0090','0091','0092','0122','0123','0124','0210','0220','0230','0250','0280','0290','0303','0320','0340', '0381','0382','0400','0410','0420','0430','0440','0450','0460','0470','0480','0531','0532','0550','0561','0562','0570','0600', '0610','0810','0851','0852','0853','0990','0991','0992','0993','1070','1229','1310','1320','1387','1388','1630','1640','1650', '1720','1860','2090','2110','2120','2140','2160','2250','2260','2310','2340','2400','2480','2562','2563','2662','2680','2751', '2780','2820','2840','2910','2970','3012','3110','3150','3160','3170','3180','3190','3200','3210','3220','3280','3300','3310', '3320','3330','3340','3350','3380','3390','3400','3410','3420','3450','3460','3470','3480','3510','3520','3531','3532','3540', '3551','3552','3553','3560','3570','3580','3581','3582','3583','3590','3610','3620','3630','3690','3712','3750','3770','3800', '3810','3820','3830','3840','3850','3860','3870','3920','3960','5021','5022','5023','5024','5025','5026','5027','5028','5031', '5032','5033','5040','5301','5302','5303','5304','5305','5320','5331','5332','5333','5334','5340','5360','5370','5383','5384', '5390','5421','5422','5441','5442','5450','5462','5463','5481','5482','5490','5502','5510','5520','5530','5540','5550','5560', '5571','5573','5590','5610','5620','5630','5640','5650','5740','5750','5760','5790','5811','5812','5850','5880','5900','5910', '5920','5930','5940','5950','5960','5970','6010','6020','6040','6050','6060','6073','6078','6079','6080','6090','6100','6110', '6120','6130','6140','6150','6160','6170','6201','620A','6242','6260','6300','6341','6350','6440','6460','6470','6480','6490', '6520','6550','6561','6562','6570','6580','6651','6652','6871','6872','6930','6950','6960','6980','6990','7030','7040','7080', '7100','7130','7150','7160','7170','7191','7192','7221','7222','7230','7340','7353','7360','7371','7373','7380','7390','7400', '7410','7441','7442','7470','7480','7490','7500','7510','7520','7530','7711','7712','7713','7714','7720','7740','7760','7770', '7861','7862','7863','7870','8041','8044','8050','8070'} Fehler - maschinelle Korrektur 1 PSEUDONYMMERKMAL: Diese Prüfung muss mit Studierenden- und Prüfungsstatistik identisch sein zwecks Pseudonymerstellung für Studienverläufe. Diese Prüfung muss mit Studierenden- und Prüfungsstatistik identisch sein zwecks Pseudonymerstellung für Studienverläufe. Auszug Protokoll Referentenbesprechung: Das Statistische Bundesamt erläutert, das für alle Hochschulen, die im Sommersemester 2017 nicht mehr bestehen, für die Hochschule der Ersteinschreibung der Schlüssel „9000“ (sonstige deutsche Hochschule) zu verwenden ist. Dagegen müssen Hochschulen, die ab dem Sommersemester 2017 stillgelegt werden, bezüglich der Hochschule der Ersteinschreibung weiterhin mit dem ehemaligen, aktuell aber nicht mehr gültigen Schlüssel signiert werden. Das Statistische Bundesamt erörtert mit dem für DAHStat zuständigen HSL, wie diese Anforderung im Schlüsselverzeichnis umgesetzt bzw. in der PL verhindert werden kann, dass Schlüssel für ehemalige Hochschulen bei der Verschlüsselung der aktuelle Hochschule verwendet werden. Wenn die Hochschule der vorangegangenen Abschlussprüfung in eine andere Hochschule eingegliedert wurde, wird der Signierschlüssel der neuen Hochschule eingesetzt. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
13 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 12 MA_012 (EF12 IN {'3','4','5','6'} UND EF3 IN {'0080', '0082', '0121', '0130', '0301', '0310', '0360', '0370', '0380', '0530', '0800', '1040', '1080', '1090', '1110', '1120', '1130', '1240', '1250', '1252', '1270','1450', '1480', '1490', '1580', '1730', '1810', '1820', '3780'}) UND (EF6U1 = LEER) Fehler - maschinelle Korrektur 1 Wenn kein Geburtstag angegeben wurde, wird nach Abschluss der Aufbereitung EF6U1 = '01' und EF38 = .b. (auf die zweite Satzstelle) gesetzt. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
14 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 13 MA_013 (EF12 IN {'3','4','5','6'} UND EF3 IN {'0080', '0082', '0121', '0130', '0301', '0310', '0360', '0370', '0380', '0530', '0800', '1040', '1080', '1090', '1110', '1120', '1130', '1240', '1250', '1252', '1270','1450', '1480', '1490', '1580', '1730', '1810', '1820', '3780'}) UND (EF6U2 = LEER) Fehler - maschinelle Korrektur 1 Wenn kein Geburtsmonat angegeben wurde, wird nach Abschluss der Aufbereitung EF6U2 = '07' und EF38 = ..c (auf die dritte Satzstelle) gesetzt. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
15 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 14 MA_014 (EF12 IN {'3','4','5','6'} UND EF3 IN {'0080', '0082', '0121', '0130', '0301', '0310', '0360', '0370', '0380', '0530', '0800', '1040', '1080', '1090', '1110', '1120', '1130', '1240', '1250', '1252', '1270', '1450', '1480', '1490', '1580', '1730', '1810', '1820', '3780'}) UND (EF10 = LEER) Fehler - maschinelle Korrektur 1 Wenn keine Art der Promotion angegegeben wurde, wird nach Abschluss der Aufbereitung EF10 = '01' und EF35 = a.. (auf die erste Satzstelle) gesetzt. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
16 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 15 MA_016 (EF12 IN {'3','4','5','6'} UND EF3 IN {'0080', '0082', '0121', '0130', '0301', '0310', '0360', '0370', '0380', '0530', '0800', '1040', '1080', '1090', '1110', '1120', '1130', '1240', '1250', '1252', '1270', '1450', '1480', '1490', '1580', '1730', '1810', '1820', '3780'}) UND (EF13U1 = LEER) Fehler - maschinelle Korrektur 1 Wenn kein Monat als Beginn der Promotion angegegeben wurde, wird nach Abschluss der Aufbereitung EF13U1 = '01' und EF35 = ..c (auf die dritte Satzstelle) gesetzt. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
17 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 16 MA_017 (EF12 IN {'3','4','5','6'} UND EF3 IN {'0080', '0082', '0121', '0130', '0301', '0310', '0360', '0370', '0380', '0530', '0800', '1040', '1080', '1090', '1110', '1120', '1130', '1240', '1250', '1252', '1270', '1450', '1480', '1490', '1580', '1730', '1810', '1820', '3780'}) UND (EF13U2 = LEER) Fehler - maschinelle Korrektur 1 Wenn kein Jahr als Beginn der Promotion angegeben wurde, wird nach Abschluss der Aufbereitung EF13U2 in Abhängigkeit von EF12 gesetzt, zudem wird EF35 = ..c (auf die dritte Satzstelle) gesetzt. wenn EF12 = '3' = EF13U2 ='2024' wenn EF12 = '4 oder 6' = EF13U2 ='2025' wenn EF12 = '5' = EF13U2 ='2021'' Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
18 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 17 MA_018 (EF12 IN {'3','4','5','6'} UND EF3 IN {'0080', '0082', '0121', '0130', '0301', '0310', '0360', '0370', '0380', '0530', '0800', '1040', '1080', '1090', '1110', '1120', '1130', '1240', '1250', '1252', '1270', '1450', '1480', '1490', '1580', '1730', '1810', '1820', '3780'}) UND (EF15 = LEER) Fehler - maschinelle Korrektur 1 Wenn Immatrikulation nicht angegegeben wurde, wird nach Abschluss der Aufbereitung EF15 = '0' gesetzt, zudem wird EF36 = a.. (auf die erste Satzstelle) gesetzt. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
19 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 18 MA_019 (EF12 IN {'3','4','5','6'} UND EF3 IN {'0080', '0082', '0121', '0130', '0301', '0310', '0360', '0370', '0380', '0530', '0800', '1040', '1080', '1090', '1110', '1120', '1130', '1240', '1250', '1252', '1270', '1450', '1480', '1490', '1580', '1730', '1810', '1820', '3780'}) UND (EF16 = LEER) Fehler - maschinelle Korrektur 1 Wenn strukt. Promotionsprogramm nicht angegegeben wurde, wird nach Abschluss der Aufbereitung EF16 = '0' gesetzt, zudem wird EF36 = .b. (auf die zweite Satzstelle) gesetzt. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
20 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 19 MA_020 (EF12 IN {'3','4','5','6'} UND EF3 IN {'0080', '0082', '0121', '0130', '0301', '0310', '0360', '0370', '0380', '0530', '0800', '1040', '1080', '1090', '1110', '1120', '1130', '1240', '1250', '1252', '1270', '1450', '1480', '1490', '1580', '1730', '1810', '1820', '3780'}) UND (EF17 = LEER) Fehler - maschinelle Korrektur 1 Wenn nicht angegeben wurde, ob ein Beschäftigungsverhältnis an der Hochschule besteht, wird nach Abschluss der Aufbereitung EF17 = '0' gesetzt, zudem wird EF36 = ..c (auf die dritte Satzstelle) gesetzt. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
21 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 20 MA_021 (EF12 IN {'3','4','5','6'} UND EF3 IN {'0080', '0082', '0121', '0130', '0301', '0310', '0360', '0370', '0380', '0530', '0800', '1040', '1080', '1090', '1110', '1120', '1130', '1240', '1250', '1252', '1270', '1450', '1480', '1490', '1580', '1730', '1810', '1820', '3780'}) UND (EF18 = LEER) Fehler - maschinelle Korrektur 1 Wenn die Art der Dissertation nicht angegegeben wurde, wird nach Abschluss der Aufbereitung EF18 = '1' gesetzt, zudem wird EF37 = a.. (auf die erste Satzstelle) gesetzt. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
22 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 21 MA_022 (EF12 IN {'3','4','5','6'} UND EF3 IN {'0080', '0082', '0121', '0130', '0301', '0310', '0360', '0370', '0380', '0530', '0800', '1040', '1080', '1090', '1110', '1120', '1130', '1240', '1250', '1252', '1270', '1450', '1480', '1490', '1580', '1730', '1810', '1820', '3780'}) UND (EF19 = LEER ODER EF21 = LEER ODER EF22 = LEER) Fehler - maschinelle Korrektur 1 Wenn eine Angabe zur Ersteinschreibung (EF19-EF22) nicht angegegeben wurde, dann wird nach Abschluss der Aufbereitung EF19 = 9000, EF21 = 1 und EF 22 = EF31 gesetzt. Falls EF31 = leer und EF29 ungleich leer, dann wird EF22 = EF29 gesetzt. Falls EF31 und EF29 leer, dann wird EF22 = EF13U2 gesetzt. Zudem wird EF37 = .b. (auf die zweite Satzstelle) gesetzt. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
23 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 22 MA_023 (EF12 IN {'3','4','5','6'} UND EF3 IN {'0080', '0082', '0121', '0130', '0301', '0310', '0360', '0370', '0380', '0530', '0800', '1040', '1080', '1090', '1110', '1120', '1130', '1240', '1250', '1252', '1270', '1450', '1480', '1490', '1580', '1730', '1810', '1820', '3780'}) UND (EF23 IN {LEER,'1'} UND (EF24 = LEER ODER EF26 = LEER ODER EF27 = LEER ODER EF28 = LEER ODER EF29 = LEER ODER EF30 = LEER)) Fehler - maschinelle Korrektur 1 Wenn eine Angabe zur prom. Abschlussprüfung (EF23-EF30) nicht angegegeben wurde, dann wird nach Abschluss der Aufbereitung EF23 = 1, EF24 = 9000, EF26 = 102, EF27 = 004, EF28 = 01, EF 29 = EF22, EF 30= 8 gesetzt, zudem wird EF37 = ..c (auf die dritte Satzstelle) gesetzt. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
24 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 23 MA_024 (EF12 IN {'3','4','5','6'} UND EF3 IN {'0080', '0082', '0121', '0130', '0301', '0310', '0360', '0370', '0380', '0530', '0800', '1040', '1080', '1090', '1110', '1120', '1130', '1240', '1250', '1252', '1270', '1450', '1480', '1490', '1580', '1730', '1810', '1820', '3780'}) UND (EF31 = LEER ODER EF32 = LEER ODER EF33U1 = LEER ODER EF33U2 = LEER) Fehler - maschinelle Korrektur 1 Wenn eine Angabe zur HZB (EF31-EF33) nicht angegegeben wurde, dann wird nach Abschluss der Aufbereitung EF31 = EF22, EF32 = 03 und EF 33 = 98999 gesetzt, zudem wird EF38 = a.. (auf die erste Satzstelle) gesetzt. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
25 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 24 SIG_001 (EF3 IN {'0081', '0089', '0261', '0269', '0271', '0279', '0309', '0311', '0319', '0361', '0369', '0371', '0379', '0491', '0499', '0640', '0650', '0950', '1001', '1011', '1021', '1029', '1031', '1039', '1081', '1089', '1091', '1099', '1101', '1109', '1111', '1119', '1121', '1129', '1161', '1169', '1241', '1249', '1251', '1258', '1259', '1271', '1279', '1293', '1319', '1321', '1329', '1331', '1339', '1341', '1349', '1361', '1362', '1369', '1378', '1379', '1390', '1481', '1489', '1491', '1499', '1639', '1731', '1739', '1821', '1829', '5021', '5022', '5024', '5025', '5026', '5027', '5028', '5150', '5160', '6245', '7467', '8100'}) ODER (EF19 IN {'0081', '0089', '0261', '0269', '0271', '0279', '0309', '0311', '0319', '0361', '0369', '0371', '0379', '0491', '0499', '0640', '0650', '0950', '1001', '1011', '1021', '1029', '1031', '1039', '1081', '1089', '1091', '1099', '1101', '1109', '1111', '1119', '1121', '1129', '1161', '1169', '1241', '1249', '1251', '1258', '1259', '1271', '1279', '1293', '1319', '1321', '1329', '1331', '1339', '1341', '1349', '1361', '1362', '1369', '1378', '1379', '1390', '1481', '1489', '1491', '1499', '1639', '1731', '1739', '1821', '1829', '5021', '5022', '5024', '5025', '5026', '5027', '5028', '5150', '5160', '6245', '7467', '8100'}) ODER (EF24 IN {'0081', '0089', '0261', '0269', '0271', '0279', '0309', '0311', '0319', '0361', '0369', '0371', '0379', '0491', '0499', '0640', '0650', '0950', '1001', '1011', '1021', '1029', '1031', '1039', '1081', '1089', '1091', '1099', '1101', '1109', '1111', '1119', '1121', '1129', '1161', '1169', '1241', '1249', '1251', '1258', '1259', '1271', '1279', '1293', '1319', '1321', '1329', '1331', '1339', '1341', '1349', '1361', '1362', '1369', '1378', '1379', '1390', '1481', '1489', '1491', '1499', '1639', '1731', '1739', '1821', '1829', '5021', '5022', '5024', '5025', '5026', '5027', '5028', '5150', '5160', '6245', '7467', '8100'}) Fehler - manuelle Korrektur ("Mussfehler") 1 Signierschlüssel der Hochschule ist nur bei der Personal- und Stellenstatistik zulässig. Bei der aktuellen Hochschule (EF3) ,der Hochschule der Ersteinschreibung (EF19) oder der Hochschule der zur Promotion berechtigende, vorangegangenen Abschlussprüfung (EF24) steht ein Signierschlüssel der nur bei der Hochschulpersonalstatistik zulässig ist. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
26 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 25 SIG_002 NICHT EF3 IN {'0011', '0012', '0013', '0014', '0080', '0082', '0121', '0130', '0140', '0150', '0180', '0190', '0200', '0260', '0270', '0301', '0302', '0310', '0360', '0370', '0372', '0373', '0380', '0390', '0490', '0500', '0510', '0511', '0520', '0530', '0540', '0551', '0552', '0560', '0580', '0590', '0620', '0630', '0660', '0670', '0680', '0690', '0800', '0811', '0812', '0910', '0960', '0980', '0990', '1000', '1010', '1020', '1030', '1040', '1050', '1060', '1080', '1090', '1100', '1110', '1120', '1130', '1140', '1150', '1160', '1170', '1180', '1190', '1200', '1210', '1211', '1221', '1222', '1230', '1240', '1250', '1252', '1260', '1270', '1291', '1292', '1311', '1312', '1322', '1323', '1330', '1340', '1350', '1360', '1380', '1430', '1440', '1450', '1460', '1480', '1490', '1530', '1541', '1542', '1580', '1590', '1631', '1632', '1633', '1634', '1690', '1700', '1730', '1740', '1800', '1810', '1820', '1960', '2000', '2020', '2030', '2040', '2050', '2060', '2170', '2200', '2271', '2272', '2300', '2420', '2430', '2500', '2530', '2550', '2561', '2571', '2572', '2573', '2574', '2581', '2582', '2583', '2590', '2600', '2610', '2620', '2630', '2640', '2650', '2660', '2670', '2690', '2700', '2710', '2720', '2730', '2740', '2760', '2770', '2790', '2800', '2810', '2830', '2850', '2860', '2870', '2880', '2890', '2920', '2940', '2950', '2960', '2980', '3011', '3030', '3100', '3370', '3500', '3660', '3670', '3680', '3700', '3711', '3780', '3930', '3940', '3950', '3971', '3972', '3980', '3990', '4730', '4740', '4750', '4760', '4770', '4780', '4790', '4800', '4810', '4820', '4830', '4840', '4850', '4860', '4870', '4880', '4890', '4900', '4910', '4920', '4930', '5080', '6211', '6212', '6220', '6231', '6232', '6233', '6243', '6244', '6290', '6370', '7960', '8000', '8011', '8012', '8021', '8022', '8031', '8032', '8033'} Fehler - manuelle Korrektur ("Mussfehler") 1 Die meldende Hochschule (EF3) hat kein Promotionsrecht Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
27 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 26 SIG_003 FUNKTION WERTLAENGE(EF4) < 6 ODER FUNKTION WERTLAENGE(EF4) > 12 Fehler - manuelle Korrektur ("Mussfehler") 1 Paginiernummer (EF4) ist 000001 bis 999999 (mindestens 6 Stellen, maximal 12 Stellen) Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
28 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 27 SIG_004 FUNKTION WERTLAENGE (EF5) /= 1 ODER NICHT &NUMERISCH (EF5) ODER NICHT EF5 IN {'1','2', '3', '4'} Fehler - manuelle Korrektur ("Mussfehler") 1 Geschlecht (EF5) ist ungleich 1, 2 ,3 oder 4. Geschlecht (EF5) ungleich 1, 2 ,3 oder 4. Stand der PL Klassen vom 21.05.2026 Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
29 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 28 SIG_005 (FUNKTION WERTLAENGE (EF6U1) /= 2) ODER ((NICHT &NUMERISCH (EF6U1) ODER (EF6U2 IN {01,03,05,07,08,10,12} UND NICHT EF6U1 IN {01,02..31})) ODER (NICHT &NUMERISCH (EF6U1) ODER (EF6U2 IN {04,06,09,11} UND NICHT EF6U1 IN {01,02..30})) ODER (NICHT &NUMERISCH (EF6U1) ODER (EF6U2 IN {02} UND NICHT EF6U1 IN {01,02..29})) ODER (NICHT &NUMERISCH (EF6U1) ODER (EF6U2 IN {02} UND EF6U1 IN {29} UND NICHT EF6U3 IN {1912,1916,1920,1924,1928,1932,1936,1940,1944,1948,1952,1956,1960, 1964,1968,1972,1976,1980,1984,1988,1992,1996,2000 ,2004,2008,2012,2016,2020,2024}))) Fehler - manuelle Korrektur ("Mussfehler") 1 Angabe zum Geburtstag (EF6U1) ist in Abhängigkeit mit dem Geburts-Monat ungleich 01 bis 31. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
30 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 29 SIG_006 (FUNKTION WERTLAENGE (EF6U2) /= 2) ODER (NICHT &NUMERISCH (EF6U2) ODER NICHT EF6U2 IN {01,02..12}) Fehler - manuelle Korrektur ("Mussfehler") 1 Angabe Geburtsmonat (EF6U2) ungleich 01 bis 12. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
31 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 30 SIG_007 (FUNKTION WERTLAENGE (EF6U3) /= 4) ODER (NICHT &NUMERISCH (EF6U3) ODER NICHT EF6U3 IN {1912,1913..2020}) Fehler - manuelle Korrektur ("Mussfehler") 1 Angabe Geburtsjahr (EF6U3) kleiner Wert "1912". Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
32 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 31 SIG_008 FUNKTION WERTLAENGE (EF7) /= 4 ODER (FUNKTION WERTLAENGE (EF7) = 4 UND NICHT (&TEIL (EF7,1,1) IN {'A','a','B','b','C','c','D','d','E','e','F','f', 'G','g', 'H','h','I','i','J','j','K','k','L','l','M','m','N','n', 'O','o','P','p','Q','q','R','r','S','s','T','t','U','u', 'V','v','W','w','X','x','Y','y','Z','z'})) ODER (FUNKTION WERTLAENGE (EF7) = 4 UND NICHT (&TEIL (EF7,2,1) IN {'A','a','B','b','C','c','D','d','E','e','F','f', 'G','g', 'H','h','I','i','J','j','K','k','L','l','M','m','N','n', 'O','o','P','p','Q','q','R','r','S','s','T','t','U','u', 'V','v','W','w','X','x','Y','y','Z','z',' '})) ODER (FUNKTION WERTLAENGE (EF7) = 4 UND NICHT (&TEIL (EF7,3,1) IN {'A','a','B','b','C','c','D','d','E','e','F','f', 'G','g', 'H','h','I','i','J','j','K','k','L','l','M','m','N','n', 'O','o','P','p','Q','q','R','r','S','s','T','t','U','u', 'V','v','W','w','X','x','Y','y','Z','z',' '})) ODER (FUNKTION WERTLAENGE (EF7) = 4 UND NICHT (&TEIL (EF7,4,1) IN {'A','a','B','b','C','c','D','d','E','e','F','f', 'G','g', 'H','h','I','i','J','j','K','k','L','l','M','m','N','n', 'O','o','P','p','Q','q','R','r','S','s','T','t','U','u', 'V','v','W','w','X','x','Y','y','Z','z',' '})) Fehler - manuelle Korrektur ("Mussfehler") 1 Angabe Name (EF7) ist ungleich A bis Z (Groß- und Kleinschreibung). Von Satzstelle 2 bis 4 sind Leerzeichen zulässig. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
33 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 32 SIG_009 (NICHT EF8 IN MATERIAL STAAT (key)) ODER (EF8 IN {'112','113','114','115','116','182','211','214','216','311','315','316','317','319','321','325','329', '331','338','341','342','343','344','352','510','511','512','513','514','515','517','519','520','521','522','525','528','529','534','535', '542','546','547','548','549'}) Fehler - manuelle Korrektur ("Mussfehler") 1 Signatur Staatsangehörigkeit (EF8) stimmt nicht mit den Einträgen in Schlüsseltabelle STAAT überein. Signatur Staatsangehörigkeit (EF8) stimmt nicht mit den Einträgen in Schlüsseltabelle STAAT überein oder es ist ein Signierschlüssel eines abhängigen Gebietes angegeben. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
34 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 33 SIG_010 (EF9 /= LEER UND EF9 = '000') ODER "Teil 2" (EF9 /= LEER UND EF9 = EF8) ODER "Teil 3" (EF9 /= LEER UND NICHT EF9 IN MATERIAL STAAT (key)) ODER "Teil 4" (EF9 IN {'112','113','114','115','116','182','211','214','216','311','315','316','317','319','321','325','329', '331','338','341','342','343','344','352','510','511','512','513','514','515','517','519','520','521','522','525','528','529','534','535', '542','546','547','548','549'}) Fehler - manuelle Korrektur ("Mussfehler") 1 Signatur weitere Staatsangehörigkeit (EF9) stimmt nicht mit den Einträgen in Schlüsseltabelle STAAT überein Die Signatur der weiteren Staatsangehörigkeit (EF9) ist Deutschland (000) oder die weitere Staaatsangehörigkeit ist gleich der ersten Staatsangehörigkeit oder stimmt nicht mit den Einträgen in Schlüsseltabelle STAAT überein oder es ist ein Signierschlüssel eines abhängigen Gebietes angegeben. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
35 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 34 SIG_011 (EF3 IN {LEER,'9000','9500','9990'} ODER &fkt_SIG_011() = '0' ODER NICHT (EF1 IN MATERIAL HOCHSCHULSTANDORT (key = &fkt_SIG_011(); bundesland))) Fehler - manuelle Korrektur ("Mussfehler") 1 Falsche Signatur bei Hochschulstandort (EF3) Die Kombination Berichtsland und Hochschulnummer laut Schlüsseltabelle HOCHSCHULFACHBEREICH in Kombination mit Schlüsseltabelle HOCHSCHULSTANDORT nicht zulässig. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
36 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 35 SIG_012 FUNKTION WERTLAENGE (EF10) /= 2 ODER NICHT &NUMERISCH (EF10) ODER NICHT EF10 IN {'01','02','03','04','05'} Fehler - manuelle Korrektur ("Mussfehler") 1 Art der Promotion (EF10) ungleich 01 bis 05 Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
37 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 36 SIG_013 (EF1 IN {'03','04','05','06','07','09','11','12','13','16'} UND NICHT (EF11 IN MATERIAL STUDIENFACH_LAND (land = EF1; key))) ODER (EF1 IN {'01','02','08','10','14','15'} UND NICHT (EF11 IN MATERIAL STUDIENFACH (key))) Fehler - manuelle Korrektur ("Mussfehler") 1 Falsche Signatur beim Promotionsfach (EF11) Signatur beim Promotionsfach (EF11) stimmt nicht mit den zulässigen Schlüsseln aus Schlüsseltabelle STUDIENFACH_LAND (Landesinterne Studienfächer) bzw. Schlüsseltabelle STUDIENFACH (Bundesschlüssel) überein. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
38 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 37 SIG_014 FUNKTION WERTLAENGE (EF12) /= 1 ODER NICHT &NUMERISCH (EF12) ODER NICHT EF12 IN {'1','2','3','4','5','6'} Fehler - manuelle Korrektur ("Mussfehler") 1 Art der Registrierung als Promovierender (EF12) ungleich 1 bis 6 Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
39 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 38 SIG_015 (FUNKTION WERTLAENGE (EF13U1) /= 2) ODER (NICHT &NUMERISCH (EF13U1) ODER NICHT EF13U1 IN {01,02..12}) Fehler - manuelle Korrektur ("Mussfehler") 1 Angabe Promotionsbeginn - Monat (EF13U1) ungleich 01 bis 12 Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
40 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 39 SIG_016 (FUNKTION WERTLAENGE (EF13U2) /= 4 ODER NICHT &NUMERISCH (EF13U2)) UND (NICHT EF13U2 IN {1990,1991++EF2}) Fehler - manuelle Korrektur ("Mussfehler") 1 Angabe Promotionsbeginn - Jahr (EF13U2) ungleich 1990 bis Berichtsjahr (EF2) Angabe Promotionsbeginn - Jahr (EF13U2) ungleich 1990 bis Berichtsjahr (EF2). Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
41 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 40 SIG_017 (EF14U1 /= LEER UND FUNKTION WERTLAENGE (EF14U1) /= 2) ODER (EF14U1 /= LEER UND NICHT &NUMERISCH (EF14U1)) ODER (EF12 IN {'5','6'} UND NICHT EF14U1 IN {01,02..12}) Fehler - manuelle Korrektur ("Mussfehler") 1 Art der Registrierung als Promovierender = 5 (Abschluss der Promotion) oder 6 (Abbruch der Promotion) und Angabe Promotionsende - Monat (EF14U1) ungleich 01 bis 12 Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
42 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 41 SIG_018 (EF14U2 /= LEER UND FUNKTION WERTLAENGE (EF14U2) /= 4) ODER (EF14U2 /= LEER UND NICHT &NUMERISCH (EF14U2)) ODER (EF12 IN {'5','6'} UND FUNKTION NUMERISCH (EF2) UND FUNKTION NUMERISCH (EF14U2) UND (EF14U2 /= EF2 UND EF14U2 /= EF2 - 1)) Fehler - manuelle Korrektur ("Mussfehler") 1 Art der Registrierung als Promovierender = 5 (Abschluss der Promotion) oder 6 (Abbruch der Promotion) und falsche Angabe bei Promotionsende - Jahr (EF14U2) Art der Registrierung als Promovierender = 5 (Abschluss der Promotion) oder 6 (Abbruch der Promotion) und Angabe Promotionsende - Jahr (EF14U2) ungleich Berichtsjahr oder Berichtsjahr minus 1. Hierbei müssen vorab alle benötigten Felder mit denen gerechnet wird auf numerischen Inhalt geprüft werden. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
43 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 42 SIG_019 FUNKTION WERTLAENGE (EF15) /= 1 ODER NICHT &NUMERISCH (EF15) ODER NICHT EF15 IN {'0','1'} Fehler - manuelle Korrektur ("Mussfehler") 1 Immatrikulation (EF15) ungleich 0 oder 1 Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
44 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 43 SIG_020 FUNKTION WERTLAENGE (EF16) /= 1 ODER NICHT &NUMERISCH (EF16) ODER NICHT EF16 IN {'0','1'} Fehler - manuelle Korrektur ("Mussfehler") 1 Teilnahme an einem strukturierten Promotionsprogramm (EF16) ungleich 0 oder 1 Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
45 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 44 SIG_021 FUNKTION WERTLAENGE (EF17) /= 1 ODER NICHT &NUMERISCH (EF17) ODER NICHT EF17 IN {'0','1'} Fehler - manuelle Korrektur ("Mussfehler") 1 Beschäftigungsverhältnis an der Hochschule der Promotion (EF17) ungleich 0 oder 1 Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
46 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 45 SIG_022 FUNKTION WERTLAENGE (EF18) /= 1 ODER NICHT &NUMERISCH (EF18) ODER NICHT EF18 IN {'1','2'} Fehler - manuelle Korrektur ("Mussfehler") 1 Art der Dissertation (EF18) ungleich 1 oder 2. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
47 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 46 SIG_023 EF19 IN {LEER,'9500'} ODER NICHT (EF19 IN MATERIAL HOCHSCHULEERSTEINSCHREIBUNG (key)) Fehler - manuelle Korrektur ("Mussfehler") 1 Fehlende oder falsche Signatur bei Hochschulstandort der Ersteinschreibung (EF19) Signatur bei Hochschulstandort der Ersteinschreibung (EF19) ist leer bzw. '9500' (Berufsakademie in Deutschland) oder stimmt nicht mit den Einträgen in Schlüsseltabelle HOCHSCHUEERSTEINSCHREIBUNG überein Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
48 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 47 SIG_024 EF20 /= LEER UND (EF20 = '000' ODER NICHT (EF20 IN MATERIAL STAAT (key))) Fehler - manuelle Korrektur ("Mussfehler") 1 Falsche Signatur beim Staat bei Ersteinschreibung an einer Hochschule im Ausland (EF20) Signatur vom Staat bei Ersteinschreibung an einer Hochschule im Ausland (EF20) stimmt nicht mit den Einträgen in Schlüsseltabelle STAAT überein (000 = Deutschland ist nicht zulässig) Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
49 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 48 SIG_025 FUNKTION WERTLAENGE (EF21) /= 1 ODER NICHT &NUMERISCH (EF21) ODER NICHT EF21 IN {'1','2'} Fehler - manuelle Korrektur ("Mussfehler") 1 Semester der Ersteinschreibung (EF21) ist ungleich 1 oder 2 Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
50 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 49 SIG_026 (FUNKTION WERTLAENGE (EF22) /= 4 ) ODER (NICHT &NUMERISCH (EF22)) ODER (NICHT EF22 IN {1923,1924++EF2}) Fehler - manuelle Korrektur ("Mussfehler") 1 Jahr der Ersteinschreibung (EF22) ist leer oder ungleich 1923 bis Inhalt aus EF2 (Berichtsjahr) Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
51 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 50 SIG_027 FUNKTION WERTLAENGE (EF23) /= 1 ODER NICHT &NUMERISCH (EF23) ODER NICHT EF23 IN {'0','1'} Fehler - manuelle Korrektur ("Mussfehler") 1 Zur Promotion berechtigende Abschlussprüfung (EF23) ist ungleich 0 oder 1 Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
52 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 51 SIG_028 (EF24 /= LEER UND (EF24 IN {'9500'} ODER NICHT (EF24 IN MATERIAL HOCHSCHULFACHBEREICH (key)))) ODER (FUNKTION NUMERISCH (EF24) UND EF24 IN {4000, 4001,4002..4500}) ODER (EF24 IN {'409A','409B','409C','409D','409E'}) Fehler - manuelle Korrektur ("Mussfehler") 1 Falsche Signatur bei der Hochschule der zur Promotion berechtigende, vorangegangenen Abschlussprüfung (EF24) Die Signatur der Hochschule der zur Promotion berechtigende, vorangegangenen Abschlussprüfung (EF24) stimmt nicht mit den zulässigen Schlüsseln aus der Schlüsseltabelle HOCHSCHULFACHBEREICH überein oder es wurde eine Signatur einer Berufsakademie angegeben. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
53 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 52 SIG_029 EF25 /= LEER UND (EF25 = '000' ODER NICHT (EF25 IN MATERIAL STAAT (key))) Fehler - manuelle Korrektur ("Mussfehler") 1 Korrigieren Sie bitte Ihre Angabe. Falsche Signatur vom Staat der Hochschule (zur Promotion) außerhalb Deutschlands Signatur vom Staat der Hochschule der zur Promotion berechtigende, vorgangenen Abschlussprüfung (EF25) stimmt nicht mit den Einträgen in Schlüsseltabelle STAAT überein (000= Deutschland ist nicht zulässig) Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
54 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 53 SIG_030 EF26 IN {'186','187'} ODER (EF1 IN {'03','05','06','07','09','11'} UND (EF26 /= LEER UND NICHT (EF26 IN MATERIAL ABSCHLUSS3STELLER_LAND (land = EF1; key)))) ODER (EF1 IN {'01','02','04','08','10','12','13','14','15','16'} UND (EF26 /= LEER UND NICHT (EF26 IN MATERIAL ABSCHLUSS3STELLER (key)))) Fehler - manuelle Korrektur ("Mussfehler") 1 Korrigieren Sie bitte Ihre Angabe. Falsche Signatur bei der Art der Prüfung (EF26) Die Signatur der Art der Prüfung (EF26), bei einer zur Promotion berechtigende bestandenen Abschlussprüfung, stimmt nicht mit den zulässigen Schlüsseln aus Schlüsseltabelle ABSCHLUSS3STELLER_LAND (Landesinterne_Abschlussprüfung) bzw. Schlüsseltabelle ABSCHLUSS3STELLER (Bundesschlüssel) überein. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
55 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 54 SIG_031 (EF1 IN {'03','04','05','06','07','09','11','12','13','16'} UND EF27 /= LEER UND NICHT (EF27 IN MATERIAL STUDIENFACH_LAND (land = EF1; key))) ODER (EF1 IN {'01','02','08','10','14','15'} UND EF27 /= LEER UND NICHT (EF27 IN MATERIAL STUDIENFACH (key))) Fehler - manuelle Korrektur ("Mussfehler") 1 Korrigieren Sie bitte Ihre Angabe. Falsche Signatur beim 1. Studienfach Die Signatur beim 1. Studienfach (EF27), bei einer zur Promotion berechtigende bestandene Abschlussprüfung, stimmt nicht mit den zulässigen Schlüsseln aus Schlüsseltabelle STUDIENFACH_LAND (Landesinterne Studienfächer) bzw. Schlüsseltabelle STUDIENFACH (Bundesschlüssel) überein Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
56 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 55 SIG_032 (EF28 /= LEER UND FUNKTION WERTLAENGE (EF28) /= 2) ODER (EF28 /= LEER UND (NICHT &NUMERISCH (EF28) ODER NICHT EF28 IN {01,02..12})) Fehler - manuelle Korrektur ("Mussfehler") 1 Korrigieren Sie bitte Ihre Angabe. Monat der Abschlussprüfung (EF28) Angabe des Monats der Abschlussprüfung (EF28), bei einer zur Promotion berechtigende bestandenen Abschlussprüfung, ist ungleich 01 bis 12 Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
57 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 56 SIG_033 (EF29 /= LEER UND FUNKTION WERTLAENGE (EF29) /= 4) ODER (EF29 /= LEER UND NICHT &NUMERISCH (EF29)) ODER (EF29 /= LEER UND NICHT EF29 IN {1923,1924++EF2}) Fehler - manuelle Korrektur ("Mussfehler") 1 Korrigieren Sie bitte Ihre Angabe. Fehlende oder falsche Signatur bei Jahr der Abschlussprüfung (EF29) Angabe Jahr der Abschlussprüfung (EF29), bei einer zur Promotion berechtigende bestandenen Abschlussprüfung, ist nicht 1923 bis Berichtsjahr Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
58 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 57 SIG_034 (EF30 /= LEER UND FUNKTION WERTLAENGE (EF30) /= 1) ODER (EF30 /= LEER UND (NICHT &NUMERISCH (EF30) ODER NICHT EF30 IN {'0','1','2','3','4','7','8'})) Fehler - manuelle Korrektur ("Mussfehler") 1 Korrigieren Sie bitte Ihre Angabe. Falsche Signatur Gesamtnote (EF30) Die Signatur der Prüfungsnote (EF30), bei einer zur Promotion berechtigende bestandenen Abschlussprüfung, ist ungleich 0, 1, 2, 3, 4, 7, 8 Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
59 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 58 SIG_035 ((FUNKTION WERTLAENGE (EF31) /= 4) ODER (NICHT &NUMERISCH (EF31) ODER NICHT EF31 IN {1923,1924++EF2})) Fehler - manuelle Korrektur ("Mussfehler") 1 Korrigieren Sie bitte Ihre Angabe. Fehlende oder falsche Signatur bei Jahr des Ewerbs der HZB (EF31) Die Signatur des Jahres des Erwerbs der HBZ (EF31), ist ungleich 1923 bis Berichtsjahr Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
60 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 59 SIG_036 NICHT (EF32 IN MATERIAL HZBART (key)) Fehler - manuelle Korrektur ("Mussfehler") 1 Korrigieren Sie bitte Ihre Angabe. Fehlende oder falsche Signatur bei Art der HZB (EF32) Die Signatur der Art der HZB (EF32) fehlt oder stimmt nicht mit den Schlüsseln aus der Schlüsseltabelle HZBART überein. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
61 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 60 SIG_037 NICHT (EF33U1 IN MATERIAL BUNDESLAND (key)) Fehler - manuelle Korrektur ("Mussfehler") 1 Korrigieren Sie bitte Ihre Angabe. Fehlende oder falsche Signatur bei Land des Erwerbs der HZB (EF33U1) Die Signatur Land des Erwerbs der HZB (EF33U1) fehlt oder stimmt nicht mit den Schlüsseln aus der Schlüsseltabelle BUNDESLAND überein. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
62 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 61 SIG_038 ((FUNKTION WERTLAENGE (EF33U2) /= 3) ODER (NICHT &NUMERISCH (EF33U2) ODER NICHT EF33U2 IN {000,001..999})) Fehler - manuelle Korrektur ("Mussfehler") 1 Korrigieren Sie bitte Ihre Angabe. Fehlende oder falsche Signaturbei Kreis bzw. Staat des Erwerbs der HZB (EF33U2) Die Signatur Kreis bzw. Staat des Erwerbs der HZB (EF33U2) fehlt oder stimmt nicht mit den Schlüsseln 000,001..999 überein. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
63 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 62 UF_001M (EF6U2 <'12' UND FUNKTION NUMERISCH (EF2) UND FUNKTION NUMERISCH (EF6U3) UND (FUNKTION ALS_GANZZAHL (EF2) - FUNKTION ALS_GANZZAHL (EF6U3)) <20) ODER (EF6U2 = '12' UND FUNKTION NUMERISCH (EF2) UND FUNKTION NUMERISCH (EF6U3) UND (FUNKTION ALS_GANZZAHL (EF2) - FUNKTION ALS_GANZZAHL (EF6U3)-1) <20) Fehler - manuelle Korrektur ("Mussfehler") 1 Promovierender jünger als 20 Promovierende sind jünger als 20 Jahre. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
64 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 63 UF_003M (EF2 > '2017' UND EF12 = '1' UND EF13U1 < '12' UND EF13U2 /= LEER UND EF13U2 < EF2) ODER (EF2 > '2017' UND EF12 = '1' UND EF13U1 = '12' UND EF13U2 /= LEER UND EF13U2 < (EF2 - 1)) Fehler - manuelle Korrektur ("Mussfehler") 1 Bei Erstregistrierung ist das Jahr des Promotionsbeginns kleiner als das Berichtsjahr. Ein Erstregistrierter mit Promotionsbeginn in den Monaten Januar-November, darf kein Berichtsjahr kleiner als das Jahr des Promotionsbeginns aufweisen.Ausnahme sind Erstregistrierte im Dezember, bei denen darf die Abweichung bei maximal minus 1 Jahr liegen. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
65 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 64 UF_004K EF12 = '2' UND EF13U2 = EF2 Prüfhinweis - manuelle Korrektur ("Kannfehler") 1 Bei Neuregistrierung ist das Jahr des Promotionsbeginns gleich dem Berichtsjahr Bei Neuregistrierung ist das Jahr des Promotionsbeginns gleich dem Berichtsjahr. Promotionsbeginn gleich Berichtsjahr EF13U2=BJ kann auch bei Neuregistrierten vorkommen, z.B. wenn hier eine zweite Promotion begonnen wird, nach einer ersten erfolgreich beendeten Promotion. Da dies aber nicht den Regelfall darstellt (häufiger sind vsl. Hochschulwechsler mit Promotionsbeginnen vor dem Berichtsjahr, ist hier zumindest ein Kann-Fehler vorgesehen. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
66 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 65 UF_005M EF12 = '3' UND EF13U2 = EF2 Fehler - manuelle Korrektur ("Mussfehler") 1 Bei Registrierung als aktive Fortsetzung ist das Jahr des Promotionsbeginn gleich dem Berichtsjahr Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
67 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 66 UF_006M EF13U2 > EF2 UND EF13U2 /= LEER Fehler - manuelle Korrektur ("Mussfehler") 1 Jahr des Promotionsbeginns liegt nach dem Berichtsjahr Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
68 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 67 UF_007M (EF2 >= '2018' UND EF13U2 > EF14U2) Fehler - manuelle Korrektur ("Mussfehler") 1 Korrigieren Sie bitte Ihre Angabe. Jahr des Promotionsbeginns ist größer als das Jahr des Promotionsendes Ab 2018 : Jahr des Promotionsbeginns ist größer als das Jahr des Promotionsendes. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
69 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 68 UF_008M (EF1 /= {'09'} UND EF3 /= {'1240','0180'} UND EF29 /= LEER UND (EF13U2 <(EF29 - 2)) UND NICHT EF11 IN {'107', '185'}) ODER (EF3 = {'1240'} UND EF29 /= LEER UND (EF13U2 <(EF29 - 2)) UND NICHT EF11 IN {'107','185','135'}) ODER (EF3 = {'0180'} UND EF29 /= LEER UND (EF13U2 <(EF29 - 2)) UND NICHT EF11 IN {'107','185','E10','E11'}) ODER (EF1 = {'09'} UND EF3 /= {'1322'} UND EF29 /=LEER UND (EF13U2 < (EF29 - 2)) UND NICHT EF11 IN {'107', '185', 'a47', 'a58', 'a80', 'a81', 'a82', 'a83', 'a84', 'b59', 'b68', 'g05', 'g21', 'g73', 'h32', 'h36', 'i74'}) ODER (EF3 = {'1322'} UND EF29 /= LEER UND (EF13U2 <(EF29 - 2)) UND NICHT EF11 IN {'156', '021', '107', '185', 'a47', 'a58', 'a80', 'a81', 'a82', 'a83', 'a84', 'b59', 'b68', 'g05', 'g21', 'g73', 'h32', 'h36', 'i74'}) Fehler - manuelle Korrektur ("Mussfehler") 1 Der Promotionsbeginn darf bei Promotionen mit Ausnahme der Medizinpromotionen zeitlich maximal 2 Jahre vor dem Erwerb des promotionsberechtigenden Abschlusses liegen. Ausnahmen HS Bayern (Landesinterne Schlüssel für Medizinpromotionen ergänzt), HS 1322 (Tiermedizin und BWL), HS 0180 (Landesinterne Schlüssel für Medizinpromotionen ergänzt). Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
70 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 69 UF_009M EF14U1 /= 12 UND EF14U2 /= LEER UND EF14U2 <= (EF2 - 1) Fehler - manuelle Korrektur ("Mussfehler") 1 Das Promotionsende liegt mehr als 1 Kalenderjahr vor dem Berichtsjahr. Das aktuelle Berichtsjahr erfasst abgeschlossene Promotionen von Dezember des Vorjahres bis Dezember des Berichtsjahres. Der Fehler dient der Vermeidung von Doppelmeldungen von abgeschlossenen Promotionen. Es ist zu klären, ob die abgeschlossenen Promotionen bereits im vergangenen Berichtsjahr gemeldet wurden. Wurden die abgeschlossenen Promotionen im vergangenen Berichtsjahr gemeldet, sind diese nicht erneut für das aktuelle Berichtsjahr zu melden, d.h. zu löschen. Wurden die Meldungen jedoch im vergangenen Berichtsjahr versehentlich nicht gemeldet, ist EF14U1 = 12 (Monat des Abschlusses) zu setzen. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
71 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 70 UF_010M EF14U2 > EF2 Fehler - manuelle Korrektur ("Mussfehler") 1 Das Promotionsende liegt zeitlich nach dem Berichtsjahr. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
72 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 71 UF_011M NICHT EF12 IN {'6'} UND EF14U2 /= LEER UND EF29 = LEER Fehler - manuelle Korrektur ("Mussfehler") 1 Bei Abschluss der Promotion fehlt das Jahr des Prüfungsabschlusses der zur Promotion berechtigende Abschlussprüfung, obwohl das Jahr des Promotionsende angegeben ist. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
73 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 72 UF_012M NICHT EF12 IN {'6'} UND EF14U2 < EF29 UND EF14U2 /= LEER Fehler - manuelle Korrektur ("Mussfehler") 1 Bei Abschluss der Promotion liegt das Jahr des Promotionsende vor dem Jahr des Prüfungsabschlusses der zur Promotion berechtigende Abschlussprüfung. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
74 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 73 UF_013M (EF14U1 /= LEER ODER EF14U2 /= LEER) UND NICHT EF12 IN {'5','6'} Fehler - manuelle Korrektur ("Mussfehler") 1 Angaben zum Promotionsende sind vorhanden, es fehlt bei Art der Registrierung die Angabe ob Abschluss oder Abbruch der Promotion vorliegt Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
75 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 74 UF_014M ((EF6U2 < '12' UND EF22 /= LEER UND FUNKTION NUMERISCH (EF6U3) UND FUNKTION NUMERISCH (EF22) UND (FUNKTION ALS_GANZZAHL (EF22) - FUNKTION ALS_GANZZAHL (EF6U3)) <11) ODER (EF6U2 = '12' UND EF22 /= LEER UND FUNKTION NUMERISCH (EF6U3) UND FUNKTION NUMERISCH (EF22) UND (FUNKTION ALS_GANZZAHL (EF22) - FUNKTION ALS_GANZZAHL (EF6U3) -1) <11)) Fehler - manuelle Korrektur ("Mussfehler") 1 Bei der Ersteinschreibung war der Promovierende jünger als 11 Jahre. Bei der Ersteinschreibung war der Promovierende jünger als 11 Jahre. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
76 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 75 UF_015K (EF6U2 < '12' UND EF22 /= LEER UND FUNKTION NUMERISCH (EF6U3) UND FUNKTION NUMERISCH (EF22) UND ((FUNKTION ALS_GANZZAHL(EF22) - FUNKTION ALS_GANZZAHL(EF6U3)) >= 11) UND ((FUNKTION ALS_GANZZAHL(EF22) - FUNKTION ALS_GANZZAHL(EF6U3)) <= 16)) ODER (EF6U2 = '12' UND EF22 /= LEER UND FUNKTION NUMERISCH (EF6U3) UND FUNKTION NUMERISCH (EF22) UND ((FUNKTION ALS_GANZZAHL(EF22) - FUNKTION ALS_GANZZAHL(EF6U3) -1) >= 11) UND ((FUNKTION ALS_GANZZAHL(EF22) - FUNKTION ALS_GANZZAHL(EF6U3) -1) <= 16)) Prüfhinweis - manuelle Korrektur ("Kannfehler") 1 Bei der Ersteinschreibung war der bzw. die Promovierende zwischen 11 und 16 Jahre alt. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
77 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 76 UF_016M ((EF23 /= 0) UND (EF29 <= EF22) UND (EF19 /= '9990') UND (EF29 /= LEER) ODER (EF23 /= 0) UND (EF29 <= EF22) UND (EF19 = '9990') UND (EF12 =1) UND (EF29 /= LEER)) UND (EF37 /= {' b ', 'ab ', ' c','abc','a c',' bc'} ) Fehler - manuelle Korrektur ("Mussfehler") 1 Das Jahr des Prüfungsabschlusses liegt vor oder im Jahr der Ersteinschreibung Jahr der promotionsberechtigenden Abschlussprüfung (EF29) liegt vor dem Jahr oder im Jahr der Ersteinschreibung als Studierender (EF22). Bei Ersteinschreibung in Deutschland: Jahr der promotionsberechtigenden Abschlussprüfung liegt vor bzw. ist gleich dem Jahr der Ersteinschreibung. Bei Ersteinschreibung im Ausland: Hier wird nur bei Erstregistrierungen (EF12 =1) geprüft, ob das Jahr der promotionsberechtigenden Abschlussprüfung vor oder im dem Jahr der Ersteinschreibung liegt. Der Mussfehler wird nicht ausgelöst, wenn eines der beiden Felder durch eine maschinelle Einsetzung befüllt wurde. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
78 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 77 UF_017M ((EF19 /= LEER UND EF19 /= '9990') UND EF20 /= LEER) ODER (EF19 = '9990' UND EF20 = LEER) ODER (EF20 /= LEER UND EF19 /= '9990') Fehler - manuelle Korrektur ("Mussfehler") 1 Angaben zur Hochschule der Ersteinschreibung und Staat der Ersteinschreibung (Ausland) passen nicht zusammen. Hochschulstandort der Ersteinschreibung ist in Deutschland und EF20 (Bei Ersteinschreibung an einer Hochschule außerhalb Deutschlands, der Staat der Hochschule) ist ein Staat angegeben ODER Hochschulstandort der Ersteinschreibung ist 9990 (Ausland) und EF20 (Bei Ersteinschreibung an einer Hochschule außerhalb Deutschlands, der Staat der Hochschule) ist LEER. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
79 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 78 UF_018M EF12 = '5' UND EF23 = '0' Fehler - manuelle Korrektur ("Mussfehler") 1 Abschluss der Promotion ist angegeben (EF12 = 5), aber es liegt kein zur Promotion berechtigender, vorangegangener Abschluss vor. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
80 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 79 UF_019M EF23 = '1' UND (EF24 = LEER ODER EF26 = LEER ODER EF27 = LEER ODER EF28 = LEER ODER EF29 = LEER ODER EF30 = LEER) Fehler - manuelle Korrektur ("Mussfehler") 1 Promotionsberechtigender Abschluss liegt vor, aber es fehlen Angaben dazu. Eine zur Promotion berechtigende, vorangegangene bestandene Abschlussprüfung liegt vor, aber die Angaben zur Hochschule der Abschlussprüfung für Promotion, Staat der Hochschule der Abschlussprüfung für Promotion, Art der Abschlussprüfung für Promotion, zum 1. Studienfach, zum Monat des Prüfungsabschlusses, Jahr des Prüfungsabschlusses für Promotion und Gesamtnote sind nicht vollständig vorhanden. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
81 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 80 UF_020M EF23 = '1' UND EF30 = '9' Fehler - manuelle Korrektur ("Mussfehler") 1 Die Signatur der Prüfungsnote (EF30), bei einer zur Promotion berechtigende Abschlussprüfung ist gleich "9" (nicht bestanden). Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
82 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 81 UF_021M NICHT EF1 IN {'02','09','14'} UND NICHT EF24 IN {'1110','1330','0530','5501','5503','5312','5313', '5314', '5315'} UND ((EF30 = '7' UND FUNKTION WERTLAENGE (EF26) = 3 UND NICHT (&TEIL (EF26,2,2) IN {02,08,09,15,16,19,20..50,52,55,57,58,60,61..67,98,99}))) ODER EF1 IN {'09','14'} UND ((EF30 = '7' UND FUNKTION WERTLAENGE (EF26) = 3 UND NICHT (&TEIL (EF26,2,2) IN {02,08,09,15,16,19,20..50,52,55,57,58,60,61..67,88,98,99}))) ODER EF1 IN {'02'} UND EF27 /= '135' UND ((EF30 = '7' UND FUNKTION WERTLAENGE (EF26) = 3 UND NICHT (&TEIL (EF26,2,2) IN {02,08,09,15,16,19,20..50,52,55,57,58,60,61..67,98,99}))) ODER EF1 IN {'02'} UND EF27 = '135' UND ((EF30 = '7' UND FUNKTION WERTLAENGE (EF26) = 3 UND NICHT (&TEIL (EF26,2,2) IN {01,02,08,09,15,16,19,20..50,52,55,57,58,60,61..67,68,69,78,82,88,93,98,99}))) ODER EF24 IN {'1330'} UND ((EF30 = '7' UND FUNKTION WERTLAENGE (EF26) = 3 UND NICHT (&TEIL (EF26,2,2) IN {02,08,09,15,16,19,20..50,52,55,57,58,60,61..67,88,94,98,99}))) ODER EF24 IN {'0530'} UND NICHT EF27 IN {'042','135','764'} UND ((EF30 = '7' UND FUNKTION WERTLAENGE (EF26) = 3 UND NICHT (&TEIL (EF26,2,2) IN {02,08,09,15,16,19,20..50,52,55,57,58,60,61..67,98,99}))) ODER EF24 IN {'0530'} UND EF27 IN {'042','135','764'} UND ((EF30 = '7' UND FUNKTION WERTLAENGE (EF26) = 3 UND NICHT (&TEIL (EF26,2,2) IN {02,08,09,15,16,19,20..50,52,55,57,58,60,61..67,82,88,98,99}))) ODER EF24 IN {'5501','5503'} UND NICHT EF27 IN {'042'} UND ((EF30 = '7' UND FUNKTION WERTLAENGE (EF26) = 3 UND NICHT (&TEIL (EF26,2,2) IN {02,08,09,15,16,19,20..50,52,55,57,58,60,61..67,98,99}))) ODER EF24 IN {'5501','5503'} UND EF27 IN {'042'} UND ((EF30 = '7' UND FUNKTION WERTLAENGE (EF26) = 3 UND NICHT (&TEIL (EF26,2,2) IN {02,08,09,15,16,19,20..50,52,55,57,58,60,61..67,84,90,98,99}))) ODER EF24 IN {'5312','5313', '5314', '5315'} UND NICHT EF27 IN {'042','673','768'} UND ((EF30 = '7' UND FUNKTION WERTLAENGE (EF26) = 3 UND NICHT (&TEIL (EF26,2,2) IN {02,08,09,15,16,19,20..50,52,55,57,58,60,61..67,98,99}))) ODER EF24 IN {'5312','5313', '5314', '5315'} UND EF27 IN {'042','673','768'} UND ((EF30 = '7' UND FUNKTION WERTLAENGE (EF26) = 3 UND NICHT (&TEIL (EF26,2,2) IN {02,08,09,15,16,19,20..50,52,55,57,58,60,61..67,84,90,98,99}))) ODER EF24 IN {'1110'} UND NICHT EF27 IN {'135', '593'} UND ((EF30 = '7' UND FUNKTION WERTLAENGE (EF26) = 3 UND NICHT (&TEIL (EF26,2,2) IN {02,08,09,15,16,19,20..50,52,55,57,58,60,61..67,98,99}))) ODER EF24 IN {'1110'} UND EF27 IN {'135', '593'} UND ((EF30 = '7' UND FUNKTION WERTLAENGE (EF26) = 3 UND NICHT (&TEIL (EF26,2,2) IN {02,08,09,15,16,19,20..50,52,55,57,58,60,61..67,88,98,99}))) Fehler - manuelle Korrektur ("Mussfehler") 1 Die nur bei Staats- und Magisterprüfungen zulässige Gesamtnote 7 kommt auch bei anderen Abschlüssen vor. Die nur bei Staats- und Magisterprüfungen zulässige Gesamtnote 7 kommt auch bei anderen Abschlüssen vor (Teil 1 der Kontrolle gilt nicht für Bayern, Sachsen, und Hamburg und nicht für die Hochschulen U Osnabrück, Hochschule Osnabrück mit allen Standorten und die Hochschule Braunschweig Wolfenbüttel mit allen Standorten und die Universität Köln). In Bayern und Sachsen ist die Gesamtnote 7 auch bei Abschluss "88" Master an Universitäten (Abschluss vorausgesetzt) zulässig (Teil 2 der Kontrolle). In Hamburg ist im Studienfach Rechtswissenschaft die Gesamtnote 7 auch bei Universitätsbachelor (68,01,93,82) und Universitätsmaster (69,78,88) zulässig (Teil 3 und 4 der Kontrolle). An der Uni Würzburg ist die Gesamtnote 7 zusätzlich auch bei Abschluss "94" Abschlusszeugnis/Zertifikat zulässig (Teil 5 der Kontrolle). Teil 6 und 7 ist für die U Osnabrück. Hier ist bei den Fächern 042, 135 und 764 auch bei den Abschlüssen 82 und 88 die Gesamtnote 7 zulässig. Teil 8 und 9 ist für die Hochschule Osnabrück mit allen Standorten. Hier ist bei dem Fach 042 auch bei den Abschlüssen 84 und 90 die Gesamtnote 7 zulässig. Teil 10 und 11 ist für die Hochschule Braunschweig Wolfenbüttel mit allen Standorten. Hier ist bei den Fächern 042, 673 und 768 auch bei den Abschlüssen 84 und 90 die Gesamtnote 7 zulässig. Teil 12 und 13 ist für die Universität Köln. Hier ist bei den Fächern 135 und 593 auch bei dem Abschluss 88 die Gesamtnote 7 zulässig. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
83 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 82 UF_022K EF32 IN {'33','52','77'} UND ((EF6U2 < '12' UND EF31 /= LEER UND FUNKTION NUMERISCH (EF6U3) UND FUNKTION NUMERISCH (EF31) UND ((FUNKTION ALS_GANZZAHL(EF31) - FUNKTION ALS_GANZZAHL(EF6U3)) >= 11) UND ((FUNKTION ALS_GANZZAHL(EF31) - FUNKTION ALS_GANZZAHL(EF6U3)) <= 14)) ODER (EF6U2 = '12' UND EF31 /= LEER UND FUNKTION NUMERISCH (EF6U3) UND FUNKTION NUMERISCH (EF31) UND ((FUNKTION ALS_GANZZAHL(EF31) - FUNKTION ALS_GANZZAHL(EF6U3) -1) >= 11) UND ((FUNKTION ALS_GANZZAHL(EF31) - FUNKTION ALS_GANZZAHL(EF6U3) -1) <= 14))) Prüfhinweis - manuelle Korrektur ("Kannfehler") 1 Wenn Art der HZB Begabtenprüfung: Promovierender war bei Erwerb der Hochschulzugangsberechtigung zwischen 11 - 14 Jahre alt. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
84 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 83 UF_023K (EF6U2 < '12' UND EF31 /= LEER UND FUNKTION NUMERISCH (EF6U3) UND FUNKTION NUMERISCH (EF31) UND ((FUNKTION ALS_GANZZAHL(EF31) - FUNKTION ALS_GANZZAHL(EF6U3)) >= 11) UND ((FUNKTION ALS_GANZZAHL(EF31) - FUNKTION ALS_GANZZAHL(EF6U3)) <= 16)) ODER (EF6U2 = '12' UND EF31 /= LEER UND FUNKTION NUMERISCH (EF6U3) UND FUNKTION NUMERISCH (EF31) UND ((FUNKTION ALS_GANZZAHL(EF31) - FUNKTION ALS_GANZZAHL(EF6U3) -1) >= 11) UND ((FUNKTION ALS_GANZZAHL(EF31) - FUNKTION ALS_GANZZAHL(EF6U3) -1) <= 16)) Prüfhinweis - manuelle Korrektur ("Kannfehler") 1 Promovierender war bei Erwerb der Hochschulzugangsberechtigung zwischen 11 - 16 Jahre alt. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
85 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 84 UF_024M ((EF6U2 < '12' UND EF31 /= LEER UND FUNKTION NUMERISCH (EF6U3) UND FUNKTION NUMERISCH (EF31) UND (FUNKTION ALS_GANZZAHL (EF31) - FUNKTION ALS_GANZZAHL (EF6U3)) <11) ODER (EF6U2 = '12' UND EF31 /= LEER UND FUNKTION NUMERISCH (EF6U3) UND FUNKTION NUMERISCH (EF31) UND (FUNKTION ALS_GANZZAHL (EF31) - FUNKTION ALS_GANZZAHL (EF6U3) -1) <11)) Fehler - manuelle Korrektur ("Mussfehler") 1 Promovierender war bei Erwerb der Hochschulzugangsberechtigung jünger als 11 Jahre. Promovierender war bei Erwerb derHochschulzugangsberechtigung jünger als 11 Jahre. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
86 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 85 UF_025M EF20 = LEER UND EF22 /= LEER UND EF31 /= LEER UND EF22 < EF31 Fehler - manuelle Korrektur ("Mussfehler") 1 Bei Ersteinschreibung in Deutschland liegt das Jahr der Ersteinschreibung vor dem Jahr des Erwerbs der Hochschulzugangsberechtigung. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
87 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 86 UF_026M (EF32 IN {'31','51','76'} UND EF33U1 = '99') ODER (EF32 IN {'39','59','79','17','47','67'} UND EF33U1 IN {'01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16'}) ODER (NICHT EF32 IN {'39','59','79','17','47','67'} UND EF33U1 = '99') Fehler - manuelle Korrektur ("Mussfehler") 1 Unplausible Angaben zwischen Art und Land des Erwerbs der HZB. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
88 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 87 UF_027M (EF33U1 IN {'01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16'} UND NICHT (&KONKATENIEREN (EF33U1, EF33U2) IN MATERIAL KREISE (key))) ODER (EF33U1 = '98' UND EF33U2 /= '999') Fehler - manuelle Korrektur ("Mussfehler") 1 Falsche Kreiskennziffer bei Kreis des Erwerbs der HZB in Deutschland. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
89 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 88 UF_028M (EF33U1 = '99' UND NICHT (EF33U2 IN MATERIAL STAAT (key))) ODER (EF33U1 = '99' UND EF33U2 = '000') Fehler - manuelle Korrektur ("Mussfehler") 1 Falscher Länderschlüssel bei Erwerb der HZB außerhalb Deutschlands Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
90 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 89 UF_029M (EF24 /= LEER UND EF24 /= '9990' UND EF25 /= LEER) ODER (EF24 = '9990' UND EF25 = LEER) ODER (EF25 /= LEER UND EF24 /= '9990') Fehler - manuelle Korrektur ("Mussfehler") 1 Angaben zum Hochschulstandort und Staat der Ersteinschreibung (Ausland) der vorangegangenen Abschlussprüfung passen nicht zusammen. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
91 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 90 UF_030K (EF1 /= {'09'} UND (EF13U2 < (EF29 - 5)) UND (EF11 IN { '107', '185' } UND EF13U2 /= LEER)) ODER (EF1 = {'09'} UND (EF13U2 < (EF29 - 5)) UND (EF11 IN { '107', '185', 'a47', 'a58', 'a80', 'a81', 'a82', 'a83', 'a84', 'b59', 'b68', 'g05', 'g21', 'g73', 'h32', 'h36', 'i74' } UND EF13U2 /= LEER)) Prüfhinweis - manuelle Korrektur ("Kannfehler") 1 Korrigieren Sie bitte Ihre Angabe. Der Promotionsbeginn darf bei Medizinpromotionen zeitlich maximal 5 Jahre vor dem Erwerb des promotionsberechtigenden Abschlusses liegen. Ausnahmen HS Bayern: Landesinterne Schlüssel für Medizinpromotionen ergänzt. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
92 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 91 UF_031K (EF2 >= '2018' UND (NICHT EF12 IN {'6'} UND EF13U2 = EF14U2)) Prüfhinweis - manuelle Korrektur ("Kannfehler") 1 Jahr des Promotionsbeginns ist gleich dem Jahr des Promotionsende Ab 2018 : Jahr des Promotionsbeginns ist gleich dem Jahr des Promotionsende. Nur bei Abbruch der Promotion (EF12 = 6) ist das gleiche Jahr zulässig. Kannfehler dient als Hinweis zur Prüfung Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
93 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 92 UF_032M ((EF13U2 * 100 + EF13U1) - (EF6U3 *100 + EF6U2) < 2000) UND (EF6U3 /= LEER) UND (EF13U2 /= LEER) UND (EF35 /= {' c','abc','a c',' bc'}) Fehler - manuelle Korrektur ("Mussfehler") 1 Korrigieren Sie bitte Ihre Angabe. Promovierende sind zu Beginn der Promotion jünger als 20 Jahre. Promovierende sind zu Beginn der Promotion jünger als 20 Jahre, es erfolgt ein Vergleich von Geburtsdatum und Beginn der Promotion. Von diesem Mussfehler ausgenommen sind Promovierende bei denen der Beginn der Promotion zum Abschluss der Datenaufbereitung maschinell eingesetzt wurde, da dieser Wert der Hochschule nicht bekannt ist. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
94 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 93 UF_033K (EF13U2 - EF6U3) > 90 UND EF13U2 /= LEER UND EF6U3 /= LEER Prüfhinweis - manuelle Korrektur ("Kannfehler") 1 Korrigieren Sie bitte Ihre Angabe. Promovierende sind zu Beginn der Promotion älter als 90 Jahre. Promovierende sind zu Beginn der Promotion älter als 90 Jahre, es erfolgt ein Vergleich von Geburtsdatum und Beginn der Promotion. Dies ist in Einzelfällen möglich. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
95 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 94 UF_034M (EF14U2 /= LEER UND EF14U2 = EF13U2 UND EF13U1 >= EF14U1) UND (EF35 /= {' c','abc','a c',' bc'}) Fehler - manuelle Korrektur ("Mussfehler") 1 Korrigieren Sie bitte Ihre Angabe. Monat Promotionsbeginns ist größer oder gleich dem Monat des Promotionsendes, wenn Promotionsbeginn und -ende im selben Jahr liegen. Der Monat des Promotionsbeginns ist größer oder gleich dem Monat des Promotionsendes, wenn Promotionsbeginn und -ende im selben Jahr liegen. Von diesem Mussfehler ausgenommen sind Promovierende bei denen der Beginn der Promotion zum Abschluss der Datenaufbereitung maschinell eingesetzt wurde. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
96 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 95 UF_035M ((EF13U2 <= EF22 UND EF19 /= '9990' UND EF13U2 /= LEER) ODER (EF13U2 < EF22 UND EF19 = '9990' UND EF13U2 /= LEER)) UND (EF35 /= {' c','abc','a c',' bc'} UND EF37 /= {' b ','abc','ab ',' bc'}) Fehler - manuelle Korrektur ("Mussfehler") 1 Korrigieren Sie bitte Ihre Angabe. Promotionsbeginn liegt vor Ersteinschreibung als Studierender. Der Promotionsbeginn liegt vor der Ersteinschreibung als Studierender. Bei Ersteinschreibung in Deutschland: Jahr des Promotionsbeginns liegt vor bzw. ist gleich dem Jahr der Ersteinschreibung. Bei Ersteinschreibung im Ausland: Jahr des Promotionsbeginns liegt vor dem Jahr der Ersteinschreibung. Von diesem Mussfehler ausgenommen sind Promovierende bei denen der Beginn der Promotion bzw. das Jahr der Ersteinschreibung zum Abschluss der Datenaufbereitung maschinell eingesetzt wurde. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
97 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 96 UF_036M ((EF13U2 <= EF31 UND EF33U1 /= '99' UND EF13U2 /= LEER) ODER (EF13U2 < EF31 UND EF33U1 = '99' UND EF13U2 /= LEER)) UND (EF35 /= {' c','abc','a c',' bc'} UND EF38 /= {'a ','abc','ab ','a c'}) Fehler - manuelle Korrektur ("Mussfehler") 1 Korrigieren Sie bitte Ihre Angabe. Promotionsbeginn liegt vor Erwerb der HZB. Der Promotionsbeginn liegt vor dem Erwerb der HZB. Bei HZB Erwerb in Deutschland: Jahr des Promotionsbeginns liegt vor bzw. ist gleich dem Jahr des HZB Erwerbs. Bei HZB Erwerb im Ausland: Jahr des Promotionsbeginns liegt vor dem Jahr des HZB Erwerbs. Von diesem Mussfehler ausgenommen sind Promovierende bei denen der Beginn der Promotion bzw. das Jahr des Erwerbs der HZB zum Abschluss der Datenaufbereitung maschinell eingesetzt wurde. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
98 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 97 UF_037M ((EF23 /= 0) UND (EF29 /= LEER) UND (EF29 - 2 <= EF22) UND (EF12 = 1) UND (EF37 /= {' b ', 'ab ',' c','abc','a c',' bc'} )) Fehler - manuelle Korrektur ("Mussfehler") 1 Korrigieren Sie bitte Ihre Angabe. Bei Erstregistrierungen: Zwischen Jahr promotionsberechtigender Abschlussprüfung und Ersteinschreibung als Studierender liegen nur ein oder zwei Jahre. Bei Erstregistrierungen: Zwischen dem Jahr der promotionsberechtigenden Abschlussprüfung (EF29) und dem Jahr der Ersteinschreibung als Studierende/r (EF22) liegen ein oder zwei Jahre. Durchschnittliche Studiendauer liegt bei acht Semestern, daher unplausibel. Der Mussfehler wird nicht ausgelöst, wenn eines der beiden Felder durch eine maschinelle Einsetzung befüllt wurde. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
99 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 98 UF_038K ((EF23 /= 0) UND (EF29 - 2 <= EF22) UND (EF29 /= LEER) UND (EF12 /= 1) UND (EF37 /= {' b ', 'ab ', ' c','abc','a c',' bc'})) Prüfhinweis - manuelle Korrektur ("Kannfehler") 1 Korrigieren Sie bitte Ihre Angabe. Für Fälle außer Erstregistrierung: Zwischen Jahr promotionsberechtigender Abschlussprüfung und Ersteinschreibung als Studierender liegen nur ein oder zwei Jahre. Bei allen Fälle außer Erstregistrierung (Neuregistrierung/aktive Fortsetzung/Unterbrechung/Abschluss/Abbruch): Zwischen dem Jahr der promotionsberechtigenden Abschlussprüfung (EF29) und dem Jahr der Ersteinschreibung als Studierender (EF22) liegen ein oder zwei Jahre. Durchschnittliche Studiendauer liegt bei acht Semestern, daher unplausibel. Der Kannfehler wird nicht ausgelöst, wenn eines der beiden Felder durch eine maschinelle Einsetzung befüllt wurde. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
100 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 99 UF_039M ((EF23 /= 0) UND (EF29/= LEER) UND (EF29 <= EF31) UND NICHT (EF32 IN {'31','39','51','59','76','79','17','47','67'}) ODER (EF23 /= 0) UND (EF29/= LEER) UND (EF29 < EF31) UND (EF32 IN {'31','39','51','59','76','79','17','47','67'})) UND (EF37 /= {' c','abc','a c',' bc'} UND EF38 /= {'a ','abc','a c','ab '}) Fehler - manuelle Korrektur ("Mussfehler") 1 Korrigieren Sie bitte Ihre Angabe. Jahr des promotionsberechtigenden Abschlusses liegt zeitlich vor dem Jahr der HZB. Jahr des promotionsberechtigenden Abschlusses liegt zeitlich vor dem Jahr der HZB. Bei HZB Erwerb in Deutschland: Jahr des promotionsberechtigenden Abschlusses (EF29) liegt vor oder im Jahr der HZB (EF31). Bei HZB Erwerb im Ausland: Jahr des promotionsberechtigenden Abschlusses (EF29) liegt vor dem Jahr der HZB (EF31). Der Mussfehler wird nicht ausgelöst, wenn eines der beiden Felder durch eine maschinelle Einsetzung befüllt wurde. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
101 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 100 UF_040M ((EF23 /= 0) UND (EF29 /= LEER) UND (EF29 - 2 <= EF31) UND (EF12 = 1) UND NICHT (EF32 IN {'31','39','51','59','76','79','17','47','67'})) UND (EF37 /= {' c','abc','a c',' bc'} UND EF38 /= {'a ','abc','a c','ab '}) Fehler - manuelle Korrektur ("Mussfehler") 1 Korrigieren Sie bitte Ihre Angabe. Bei HZB Erwerb in Deutschland und Erstregistrierung: Zwischen dem Jahr des promotionsberechtigenden Abschlusses und dem Jahr der HZB liegen nur ein bis zwei Jahre. Bei HZB Erwerb in Deutschland: Hier wird nur bei Erstregistrierungen (EF12 =1) geprüft, ob zwischen dem Jahr des promotionsberechtigenden Abschlusses (EF29) und dem Jahr der HZB (EF31) ein oder zwei Jahre liegen. Durchschnittliche Studiendauer liegt bei acht Semestern, daher unplausibel. Der Mussfehler wird nicht ausgelöst, wenn eines der beiden Felder durch eine maschinelle Einsetzung befüllt wurde. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
102 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 101 UF_041K ((EF23 /= 0) UND (EF29 /= LEER) UND (EF29 - 2 <= EF31) UND (EF12 /= 1)) UND (EF37 /= {' c','abc','a c',' bc'} UND EF38 /= {'a ','abc','a c','ab '}) Prüfhinweis - manuelle Korrektur ("Kannfehler") 1 Korrigieren Sie bitte Ihre Angabe. Für Fälle außer Erstregistrierung: Zwischen dem Jahr des promotionsberechtigenden Abschlusses und dem Jahr der HZB liegen nur ein bis zwei Jahre. Für Fälle außer Erstregistrierung: Jahr des promotionsberechtigenden Abschlusses EF29 liegt ein oder zwei Jahre nach dem Jahr der HZB EF31. Durchschnittliche Studiendauer liegt bei acht Semestern, daher unplausibel. Der Kannfehler wird nicht ausgelöst, wenn eines der beiden Felder durch eine maschinelle Einsetzung befüllt wurde. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
103 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 102 UF_042K ((EF23 /= 0) UND (EF29 /= LEER) UND (EF29 = EF31) UND (EF32 IN {'31','39','51','59','76','79','17','47','67'})) UND (EF37 /= {' c','abc','a c',' bc'} UND EF38 /= {'a ','abc','a c','ab '}) Prüfhinweis - manuelle Korrektur ("Kannfehler") 1 Korrigieren Sie bitte Ihre Angabe. Jahr des promotionsberechtigenden Abschlusses liegt im Jahr der HZB (bei Erwerb der HZB im Ausland). Jahr des promotionsberechtigenden Abschlusses (EF29) und Jahr des HZB Erwerb im Ausland (EF31) liegen im selben Jahr. Der Kannfehler wird nicht ausgelöst, wenn eines der beiden Felder durch eine maschinelle Einsetzung befüllt wurde. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
104 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 103 UF_043M ((EF40 = { '117', '317', '817','506', '591', '592','107', '507', '807', '186', '997'}) UND (EF37 /= {' c','abc','a c',' bc'})) Fehler - manuelle Korrektur ("Mussfehler") 1 Korrigieren Sie bitte Ihre Angabe. Promotionsberechtigende Abschlüsse berechtigen nicht zur Promotion. Es wurden Abschlüsse als promotionsberechtigender Abschluss (EF26) gemeldet, die nicht zur Promotion berechtigen. Der Mussfehler wird nicht ausgelöst, wenn der promotionsberechtigende Abschluss durch eine maschinelle Einsetzung befüllt wurde. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
105 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 104 UF_044M EF8 = '999' Fehler - manuelle Korrektur ("Mussfehler") 1 Korrigieren Sie bitte Ihre Angabe. Staatsangehörigkeit mit "999" (ohne Angabe) signiert, statt Feld leer zu lassen, wenn Angaben nicht bekannt. Für das Merkmal EF8 (Staatsangehörigkeit) wurde die Angabe "999 = ohne Angabe" von den Hochschulen verwendet. Falls die Staatsangehörigkeit nicht bekannt ist, sollte das Feld leer gelassen werden. Es gibt für EF8 eine Setzung, demnach werden Datensätze ohne Angabe der Staatsangehörigkeit nach der Verteilung von Deutschen und Ausländern nach Fächergruppen der jeweiligen Hochschule zugewiesen. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
106 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 105 UF_045K EF1 = '08' UND EF17 = 0 UND EF15 = 0 UND EF36 /= {' c',' bc','a ','abc','ab ','a c'} UND EF13U2 >= '2018' Prüfhinweis - manuelle Korrektur ("Kannfehler") 1 Korrigieren Sie bitte Ihre Angabe. Ihre Eingabe ist unzulässig. Kannfehler Baden-Württemberg ab Promotionsbeginn 2018 entweder Beschäftigung an der Hochschule der Promotion oder Immatrikulation Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
107 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 106 UF_046M EF23 = '0' UND (EF24 /= LEER ODER EF26 /= LEER ODER EF27 /= LEER ODER EF28 /= LEER ODER EF29 /= LEER ODER EF30 /= LEER) Fehler - manuelle Korrektur ("Mussfehler") 1 Korrigieren Sie bitte Ihre Angabe. Laut Merkmal promotionsberechtigender Abschluss (EF23) liegt ein solcher Abschluss nicht vor, aber in den EF24 bis EF30 sind Angaben erfasst. Bitte prüfen Sie ob ein promotionsberechtigender Abschluss vorliegt (Merkmal EF23) Falls kein promotionsberechtigender Abschluss vorliegt, sind etwaige Angaben in den Merkmalen die sich auf den promotionsberechtigenden Abschluss (EF24 bis EF30) beziehen, zu löschen. Falls ein promotionsberechtigender Abschluss vorliegt, ist EF23 anzupassen. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
108 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 107 E_000 EF1 /= LEER Fehler - maschinelle Korrektur 1 Korrigieren Sie bitte Ihre Angabe. In einem vorherigen PL Lauf eingesetzte Schlüssel werden gelöscht. In einem vorherigen PL Lauf eingesetzte Schlüssel in EF39 bis EF50 werden gelöscht und durch die nachfolgenden Einsetzungen neu befüllt. Damit wird sichergestellt das bei Schlüssellöschungen im Liefermaterial auch die vorher eingesetzten Schlüssel gelöscht werden. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
109 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 108 E_001 EF11 /= LEER Fehler - maschinelle Korrektur 1 Einsetzung des Bundessignierschlüssels Promotionsfach in das EF39. Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
110 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 109 E_002 EF26 /= LEER Fehler - maschinelle Korrektur 1 Signierschlüssel Bund vorangegangener Abschluss in EF40 Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
111 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 110 E_003 EF27 /= LEER Fehler - maschinelle Korrektur 1 Einsetzung Signierschlüssel Bund vorangegangenes 1. Studienfach in EF41 Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
112 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 111 E_004 EF1 /= LEER Fehler - maschinelle Korrektur 1 Einsetzung Sortierschlüssel Bundesland in EF42 Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
113 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 112 E_005 REIHE (EF3) IN MATERIAL HOCHSCHULFACHBEREICH(key) Fehler - maschinelle Korrektur 1 Einsetzung Sortierschlüssel bei Hochschule in EF44 Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
114 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 113 E_006 EF44 /= LEER Fehler - maschinelle Korrektur 1 Einsetzung Sortierschlüssel Hochschulart in EF43 Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
115 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 114 E_007 REIHE (EF3) IN MATERIAL HOCHSCHULFACHBEREICH(key) Fehler - maschinelle Korrektur 1 Einsetzung des Schlüssels der Trägerschaft der Hochschule in EF45 Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
116 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 115 E_008 EF3 IN MATERIAL HOCHSCHULFACHBEREICH (key) Fehler - maschinelle Korrektur 1 Einsetzung Gemeindeschlüssel in EF46 Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
117 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 116 E_009 EF8 /= LEER Fehler - maschinelle Korrektur 1 Einsetzung Sortierschlüssel Staatsangehörigkeit in EF47 Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
118 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 117 E_010 EF6U2 /= LEER UND EF6U3 /= LEER Fehler - maschinelle Korrektur 1 Altersberechnung aus Berichtszeitraum und Geburtmonat und -jahr in EF48 Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
119 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 118 E_011 EF39 /= LEER Fehler - maschinelle Korrektur 1 Einsetzung Sortierschlüssel Promotionsfach in EF49 Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE
120 PROMOVIERENDE PROMOVIERENDE.Ablauf_Promovierende_ab_2017 VIE_Hochschulstatistik_PL.Promovierende_ab_2017 Syme-L TELEFON EMAIL 21.05.2026 - 06:39 PROMOVIERENDE.Ablauf_Promovierende_ab_2017 119 E_012 EF33U1 /= LEER Fehler - maschinelle Korrektur 1 Korrigieren Sie bitte Ihre Angabe. Umsetzung der alten Kreischlüssel bei Land und Kreis des Erwerbs der HZB auf den Stand SS 2017 in EF50 Freigegeben VIE_Hochschulstatistik_PL.Promovierende_ab_2017.PROMOVIERENDE

BIN
src/de/statspez/plausi/generated/PL-Pruefungen-PROMOVIERENDE_2026_05_21.pdf

Binary file not shown.

3035
src/de/statspez/plausi/generated/PL-Pruefungen-STUD_PRUEF_AB_SS2017_2026_08_05.csv

File diff suppressed because it is too large Load Diff

BIN
src/de/statspez/plausi/generated/PL-Pruefungen-STUD_PRUEF_AB_SS2017_2026_08_05.pdf

Binary file not shown.

356
src/de/statspez/plausi/generated/Plausi_ERHEBUNG_GASTHOERER_2019.java

@ -6,7 +6,7 @@ import de.statspez.pleditor.generator.runtime.plausi.*; @@ -6,7 +6,7 @@ import de.statspez.pleditor.generator.runtime.plausi.*;
public class Plausi_ERHEBUNG_GASTHOERER_2019 extends BasePlausi
{
public double getPlausiSystemVersion() { return 4.0; }
public String getPlausiVersionString() { return "20260608_092933"; }
public String getPlausiVersionString() { return "20260226_082349"; }
public Value prg_Merkmal_Geschlecht(PlausiRuntimeContext context, Variable aFeld)
{
@ -887,12 +887,12 @@ public class Plausi_ERHEBUNG_GASTHOERER_2019 extends BasePlausi @@ -887,12 +887,12 @@ public class Plausi_ERHEBUNG_GASTHOERER_2019 extends BasePlausi
SORT.set(context, ValueFactory.instance().valueFor(InvalidValue.instance()));
{
PlausiRuntimeIterator __loop_iterator0 = SupportLib.iteratorFor(new Material(__material_ref_HOCHSCHULFACHBEREICH, new FeldDeskriptorInterface[] {__material_ref_HOCHSCHULFACHBEREICH.sortKey}, new SatzFilter.FilterBedingung[] {new SatzFilter.FilterBedingung(__material_ref_HOCHSCHULFACHBEREICH.key, 1, EF2.get(context))}, context), context);
PlausiRuntimeIterator __loop_iterator15 = SupportLib.iteratorFor(new Material(__material_ref_HOCHSCHULFACHBEREICH, new FeldDeskriptorInterface[] {__material_ref_HOCHSCHULFACHBEREICH.sortKey}, new SatzFilter.FilterBedingung[] {new SatzFilter.FilterBedingung(__material_ref_HOCHSCHULFACHBEREICH.key, 1, EF2.get(context))}, context), context);
try
{
while(__loop_iterator0.hasNext())
while(__loop_iterator15.hasNext())
{
SORT.set(context, (Value)__loop_iterator0.next());
SORT.set(context, (Value)__loop_iterator15.next());
if (OperatorLib.ne(context, SORT.get(context), InvalidValue.instance()).asBoolean())
{
EF15.set(context, ValueFactory.instance().valueFor(SORT.get(context)));
@ -1016,12 +1016,12 @@ public class Plausi_ERHEBUNG_GASTHOERER_2019 extends BasePlausi @@ -1016,12 +1016,12 @@ public class Plausi_ERHEBUNG_GASTHOERER_2019 extends BasePlausi
STAATSAN.set(context, ValueFactory.instance().valueFor(InvalidValue.instance()));
{
PlausiRuntimeIterator __loop_iterator1 = SupportLib.iteratorFor(new Material(__material_ref_STAAT, new FeldDeskriptorInterface[] {__material_ref_STAAT.sortKey}, new SatzFilter.FilterBedingung[] {new SatzFilter.FilterBedingung(__material_ref_STAAT.key, 1, EF7.get(context))}, context), context);
PlausiRuntimeIterator __loop_iterator16 = SupportLib.iteratorFor(new Material(__material_ref_STAAT, new FeldDeskriptorInterface[] {__material_ref_STAAT.sortKey}, new SatzFilter.FilterBedingung[] {new SatzFilter.FilterBedingung(__material_ref_STAAT.key, 1, EF7.get(context))}, context), context);
try
{
while(__loop_iterator1.hasNext())
while(__loop_iterator16.hasNext())
{
STAATSAN.set(context, (Value)__loop_iterator1.next());
STAATSAN.set(context, (Value)__loop_iterator16.next());
if (OperatorLib.ne(context, STAATSAN.get(context), InvalidValue.instance()).asBoolean())
{
EF16.set(context, ValueFactory.instance().valueFor(STAATSAN.get(context)));
@ -1092,13 +1092,13 @@ public class Plausi_ERHEBUNG_GASTHOERER_2019 extends BasePlausi @@ -1092,13 +1092,13 @@ public class Plausi_ERHEBUNG_GASTHOERER_2019 extends BasePlausi
RICHTUNG.set(context, ValueFactory.instance().valueFor(InvalidValue.instance()));
{
PlausiRuntimeIterator __loop_iterator2 = SupportLib.iteratorFor(new Material(__material_ref_FACHRICHTUNGENGAST, new FeldDeskriptorInterface[] {__material_ref_FACHRICHTUNGENGAST.fg, __material_ref_FACHRICHTUNGENGAST.sortKey}, new SatzFilter.FilterBedingung[] {new SatzFilter.FilterBedingung(__material_ref_FACHRICHTUNGENGAST.key, 1, EF9.get(context))}, context), context);
PlausiRuntimeIterator __loop_iterator17 = SupportLib.iteratorFor(new Material(__material_ref_FACHRICHTUNGENGAST, new FeldDeskriptorInterface[] {__material_ref_FACHRICHTUNGENGAST.fg, __material_ref_FACHRICHTUNGENGAST.sortKey}, new SatzFilter.FilterBedingung[] {new SatzFilter.FilterBedingung(__material_ref_FACHRICHTUNGENGAST.key, 1, EF9.get(context))}, context), context);
try
{
while(__loop_iterator2.hasNext())
while(__loop_iterator17.hasNext())
{
GRUPPE.set(context, (Value)__loop_iterator2.next());
RICHTUNG.set(context, (Value)__loop_iterator2.next());
GRUPPE.set(context, (Value)__loop_iterator17.next());
RICHTUNG.set(context, (Value)__loop_iterator17.next());
if (vf.valueFor(OperatorLib.ne(context, GRUPPE.get(context), InvalidValue.instance()).asBoolean() && OperatorLib.ne(context, RICHTUNG.get(context), InvalidValue.instance()).asBoolean()).asBoolean())
{
EF17.set(context, ValueFactory.instance().valueFor(GRUPPE.get(context)));
@ -1170,13 +1170,13 @@ public class Plausi_ERHEBUNG_GASTHOERER_2019 extends BasePlausi @@ -1170,13 +1170,13 @@ public class Plausi_ERHEBUNG_GASTHOERER_2019 extends BasePlausi
RICHTUNG.set(context, ValueFactory.instance().valueFor(InvalidValue.instance()));
{
PlausiRuntimeIterator __loop_iterator3 = SupportLib.iteratorFor(new Material(__material_ref_FACHRICHTUNGENGAST, new FeldDeskriptorInterface[] {__material_ref_FACHRICHTUNGENGAST.fg, __material_ref_FACHRICHTUNGENGAST.sortKey}, new SatzFilter.FilterBedingung[] {new SatzFilter.FilterBedingung(__material_ref_FACHRICHTUNGENGAST.key, 1, EF10.get(context))}, context), context);
PlausiRuntimeIterator __loop_iterator18 = SupportLib.iteratorFor(new Material(__material_ref_FACHRICHTUNGENGAST, new FeldDeskriptorInterface[] {__material_ref_FACHRICHTUNGENGAST.fg, __material_ref_FACHRICHTUNGENGAST.sortKey}, new SatzFilter.FilterBedingung[] {new SatzFilter.FilterBedingung(__material_ref_FACHRICHTUNGENGAST.key, 1, EF10.get(context))}, context), context);
try
{
while(__loop_iterator3.hasNext())
while(__loop_iterator18.hasNext())
{
GRUPPE.set(context, (Value)__loop_iterator3.next());
RICHTUNG.set(context, (Value)__loop_iterator3.next());
GRUPPE.set(context, (Value)__loop_iterator18.next());
RICHTUNG.set(context, (Value)__loop_iterator18.next());
if (vf.valueFor(OperatorLib.ne(context, GRUPPE.get(context), InvalidValue.instance()).asBoolean() && OperatorLib.ne(context, RICHTUNG.get(context), InvalidValue.instance()).asBoolean()).asBoolean())
{
EF19.set(context, ValueFactory.instance().valueFor(GRUPPE.get(context)));
@ -1248,13 +1248,13 @@ public class Plausi_ERHEBUNG_GASTHOERER_2019 extends BasePlausi @@ -1248,13 +1248,13 @@ public class Plausi_ERHEBUNG_GASTHOERER_2019 extends BasePlausi
RICHTUNG.set(context, ValueFactory.instance().valueFor(InvalidValue.instance()));
{
PlausiRuntimeIterator __loop_iterator4 = SupportLib.iteratorFor(new Material(__material_ref_FACHRICHTUNGENGAST, new FeldDeskriptorInterface[] {__material_ref_FACHRICHTUNGENGAST.fg, __material_ref_FACHRICHTUNGENGAST.sortKey}, new SatzFilter.FilterBedingung[] {new SatzFilter.FilterBedingung(__material_ref_FACHRICHTUNGENGAST.key, 1, EF11.get(context))}, context), context);
PlausiRuntimeIterator __loop_iterator19 = SupportLib.iteratorFor(new Material(__material_ref_FACHRICHTUNGENGAST, new FeldDeskriptorInterface[] {__material_ref_FACHRICHTUNGENGAST.fg, __material_ref_FACHRICHTUNGENGAST.sortKey}, new SatzFilter.FilterBedingung[] {new SatzFilter.FilterBedingung(__material_ref_FACHRICHTUNGENGAST.key, 1, EF11.get(context))}, context), context);
try
{
while(__loop_iterator4.hasNext())
while(__loop_iterator19.hasNext())
{
GRUPPE.set(context, (Value)__loop_iterator4.next());
RICHTUNG.set(context, (Value)__loop_iterator4.next());
GRUPPE.set(context, (Value)__loop_iterator19.next());
RICHTUNG.set(context, (Value)__loop_iterator19.next());
if (vf.valueFor(OperatorLib.ne(context, GRUPPE.get(context), InvalidValue.instance()).asBoolean() && OperatorLib.ne(context, RICHTUNG.get(context), InvalidValue.instance()).asBoolean()).asBoolean())
{
EF21.set(context, ValueFactory.instance().valueFor(GRUPPE.get(context)));
@ -1864,7 +1864,7 @@ public class Plausi_ERHEBUNG_GASTHOERER_2019 extends BasePlausi @@ -1864,7 +1864,7 @@ public class Plausi_ERHEBUNG_GASTHOERER_2019 extends BasePlausi
context.startNewPruefSection("Prüfung SIG_05");
try
{
if (vf.valueFor(vf.valueFor(vf.valueFor(OperatorLib.ne(context, FunctionLib.WERTLAENGE(context, vf.valueFor(EF2.get(context))), __NUM_LIT_4).asBoolean() || OperatorLib.contains(context, new RangeSeries(new Range[] {new SingleValueRange(__STR_LIT_10), new SingleValueRange(__STR_LIT_11), new SingleValueRange(__STR_LIT_12), new SingleValueRange(__STR_LIT_13), new SingleValueRange(__STR_LIT_14), new SingleValueRange(__STR_LIT_15), new SingleValueRange(__STR_LIT_16), new SingleValueRange(__STR_LIT_17), new SingleValueRange(__STR_LIT_18), new SingleValueRange(__STR_LIT_19), new SingleValueRange(__STR_LIT_20), new SingleValueRange(__STR_LIT_21), new SingleValueRange(__STR_LIT_22), new SingleValueRange(__STR_LIT_23), new SingleValueRange(__STR_LIT_24), new SingleValueRange(__STR_LIT_25), new SingleValueRange(__STR_LIT_26), new SingleValueRange(__STR_LIT_27), new SingleValueRange(__STR_LIT_28), new SingleValueRange(__STR_LIT_29), new SingleValueRange(__STR_LIT_30), new SingleValueRange(__STR_LIT_31), new SingleValueRange(__STR_LIT_32), new SingleValueRange(__STR_LIT_33), new SingleValueRange(__STR_LIT_34), new SingleValueRange(__STR_LIT_35), new SingleValueRange(__STR_LIT_36)}), EF2.get(context)).asBoolean()).asBoolean() || vf.valueFor(FunctionLib.NUMERISCH(context, vf.valueFor(EF2.get(context))).asBoolean() && OperatorLib.contains(context, new RangeSeries(new Range[] {new SingleValueRange(__NUM_LIT_10), new SingleValueRange(__NUM_LIT_11), new SingleValueRange(__NUM_LIT_12), new SequenceRange(__NUM_LIT_13, __NUM_LIT_14, __NUM_LIT_15)}), EF2.get(context)).asBoolean()).asBoolean()).asBoolean() || OperatorLib.not(context, OperatorLib.contains(context, new Material(__material_ref_HOCHSCHULFACHBEREICH, new FeldDeskriptorInterface[] {__material_ref_HOCHSCHULFACHBEREICH.key}, new SatzFilter.FilterBedingung[] {}, context), EF2.get(context))).asBoolean()).asBoolean())
if (vf.valueFor(vf.valueFor(vf.valueFor(OperatorLib.ne(context, FunctionLib.WERTLAENGE(context, vf.valueFor(EF2.get(context))), __NUM_LIT_4).asBoolean() || OperatorLib.contains(context, new RangeSeries(new Range[] {new SingleValueRange(__STR_LIT_10), new SingleValueRange(__STR_LIT_11), new SingleValueRange(__STR_LIT_12), new SingleValueRange(__STR_LIT_13), new SingleValueRange(__STR_LIT_14), new SingleValueRange(__STR_LIT_15), new SingleValueRange(__STR_LIT_16), new SingleValueRange(__STR_LIT_17), new SingleValueRange(__STR_LIT_18), new SingleValueRange(__STR_LIT_19), new SingleValueRange(__STR_LIT_20), new SingleValueRange(__STR_LIT_21), new SingleValueRange(__STR_LIT_22), new SingleValueRange(__STR_LIT_23), new SingleValueRange(__STR_LIT_24), new SingleValueRange(__STR_LIT_25), new SingleValueRange(__STR_LIT_26), new SingleValueRange(__STR_LIT_27), new SingleValueRange(__STR_LIT_28), new SingleValueRange(__STR_LIT_29), new SingleValueRange(__STR_LIT_30), new SingleValueRange(__STR_LIT_31), new SingleValueRange(__STR_LIT_32), new SingleValueRange(__STR_LIT_33), new SingleValueRange(__STR_LIT_34), new SingleValueRange(__STR_LIT_35)}), EF2.get(context)).asBoolean()).asBoolean() || vf.valueFor(FunctionLib.NUMERISCH(context, vf.valueFor(EF2.get(context))).asBoolean() && OperatorLib.contains(context, new RangeSeries(new Range[] {new SingleValueRange(__NUM_LIT_10), new SingleValueRange(__NUM_LIT_11), new SingleValueRange(__NUM_LIT_12), new SequenceRange(__NUM_LIT_13, __NUM_LIT_14, __NUM_LIT_15)}), EF2.get(context)).asBoolean()).asBoolean()).asBoolean() || OperatorLib.not(context, OperatorLib.contains(context, new Material(__material_ref_HOCHSCHULFACHBEREICH, new FeldDeskriptorInterface[] {__material_ref_HOCHSCHULFACHBEREICH.key}, new SatzFilter.FilterBedingung[] {}, context), EF2.get(context))).asBoolean()).asBoolean())
{
context.getLogger().trace("Fehler angeschrieben: SIG_05");
fehler_SIG_05(context, 0, null);
@ -1917,7 +1917,7 @@ public class Plausi_ERHEBUNG_GASTHOERER_2019 extends BasePlausi @@ -1917,7 +1917,7 @@ public class Plausi_ERHEBUNG_GASTHOERER_2019 extends BasePlausi
context.startNewPruefSection("Prüfung SIG_10");
try
{
if (vf.valueFor(vf.valueFor(OperatorLib.ne(context, FunctionLib.WERTLAENGE(context, vf.valueFor(EF5.get(context))), __NUM_LIT_1).asBoolean() || OperatorLib.not(context, FunctionLib.NUMERISCH(context, vf.valueFor(EF5.get(context)))).asBoolean()).asBoolean() || OperatorLib.not(context, OperatorLib.contains(context, new RangeSeries(new Range[] {new SingleValueRange(__STR_LIT_1), new SingleValueRange(__STR_LIT_37), new SingleValueRange(__STR_LIT_38), new SingleValueRange(__STR_LIT_39)}), EF5.get(context))).asBoolean()).asBoolean())
if (vf.valueFor(vf.valueFor(OperatorLib.ne(context, FunctionLib.WERTLAENGE(context, vf.valueFor(EF5.get(context))), __NUM_LIT_1).asBoolean() || OperatorLib.not(context, FunctionLib.NUMERISCH(context, vf.valueFor(EF5.get(context)))).asBoolean()).asBoolean() || OperatorLib.not(context, OperatorLib.contains(context, new RangeSeries(new Range[] {new SingleValueRange(__STR_LIT_1), new SingleValueRange(__STR_LIT_36), new SingleValueRange(__STR_LIT_37), new SingleValueRange(__STR_LIT_38)}), EF5.get(context))).asBoolean()).asBoolean())
{
context.getLogger().trace("Fehler angeschrieben: SIG_10");
fehler_SIG_10(context, 0, null);
@ -2182,7 +2182,7 @@ public class Plausi_ERHEBUNG_GASTHOERER_2019 extends BasePlausi @@ -2182,7 +2182,7 @@ public class Plausi_ERHEBUNG_GASTHOERER_2019 extends BasePlausi
context.startNewPruefSection("Prüfung SIG_35");
try
{
if (vf.valueFor(vf.valueFor(OperatorLib.ne(context, EF7.get(context), InvalidValue.instance()).asBoolean() && OperatorLib.not(context, OperatorLib.contains(context, new Material(__material_ref_STAAT, new FeldDeskriptorInterface[] {__material_ref_STAAT.key}, new SatzFilter.FilterBedingung[] {}, context), EF7.get(context))).asBoolean()).asBoolean() || OperatorLib.contains(context, new RangeSeries(new Range[] {new SingleValueRange(__STR_LIT_40), new SingleValueRange(__STR_LIT_41), new SingleValueRange(__STR_LIT_42), new SingleValueRange(__STR_LIT_43), new SingleValueRange(__STR_LIT_44), new SingleValueRange(__STR_LIT_45), new SingleValueRange(__STR_LIT_46), new SingleValueRange(__STR_LIT_47), new SingleValueRange(__STR_LIT_48), new SingleValueRange(__STR_LIT_49), new SingleValueRange(__STR_LIT_50), new SingleValueRange(__STR_LIT_51), new SingleValueRange(__STR_LIT_52), new SingleValueRange(__STR_LIT_53), new SingleValueRange(__STR_LIT_54), new SingleValueRange(__STR_LIT_55), new SingleValueRange(__STR_LIT_56), new SingleValueRange(__STR_LIT_57), new SingleValueRange(__STR_LIT_58), new SingleValueRange(__STR_LIT_59), new SingleValueRange(__STR_LIT_60), new SingleValueRange(__STR_LIT_61), new SingleValueRange(__STR_LIT_62), new SingleValueRange(__STR_LIT_63), new SingleValueRange(__STR_LIT_64), new SingleValueRange(__STR_LIT_65), new SingleValueRange(__STR_LIT_66), new SingleValueRange(__STR_LIT_67), new SingleValueRange(__STR_LIT_68), new SingleValueRange(__STR_LIT_69), new SingleValueRange(__STR_LIT_70), new SingleValueRange(__STR_LIT_71), new SingleValueRange(__STR_LIT_72), new SingleValueRange(__STR_LIT_73), new SingleValueRange(__STR_LIT_74), new SingleValueRange(__STR_LIT_75), new SingleValueRange(__STR_LIT_76), new SingleValueRange(__STR_LIT_77), new SingleValueRange(__STR_LIT_78), new SingleValueRange(__STR_LIT_79), new SingleValueRange(__STR_LIT_80), new SingleValueRange(__STR_LIT_81), new SingleValueRange(__STR_LIT_82), new SingleValueRange(__STR_LIT_83), new SingleValueRange(__STR_LIT_84), new SingleValueRange(__STR_LIT_85)}), EF7.get(context)).asBoolean()).asBoolean())
if (vf.valueFor(vf.valueFor(OperatorLib.ne(context, EF7.get(context), InvalidValue.instance()).asBoolean() && OperatorLib.not(context, OperatorLib.contains(context, new Material(__material_ref_STAAT, new FeldDeskriptorInterface[] {__material_ref_STAAT.key}, new SatzFilter.FilterBedingung[] {}, context), EF7.get(context))).asBoolean()).asBoolean() || OperatorLib.contains(context, new RangeSeries(new Range[] {new SingleValueRange(__STR_LIT_39), new SingleValueRange(__STR_LIT_40), new SingleValueRange(__STR_LIT_41), new SingleValueRange(__STR_LIT_42), new SingleValueRange(__STR_LIT_43), new SingleValueRange(__STR_LIT_44), new SingleValueRange(__STR_LIT_45), new SingleValueRange(__STR_LIT_46), new SingleValueRange(__STR_LIT_47), new SingleValueRange(__STR_LIT_48), new SingleValueRange(__STR_LIT_49), new SingleValueRange(__STR_LIT_50), new SingleValueRange(__STR_LIT_51), new SingleValueRange(__STR_LIT_52), new SingleValueRange(__STR_LIT_53), new SingleValueRange(__STR_LIT_54), new SingleValueRange(__STR_LIT_55), new SingleValueRange(__STR_LIT_56), new SingleValueRange(__STR_LIT_57), new SingleValueRange(__STR_LIT_58), new SingleValueRange(__STR_LIT_59), new SingleValueRange(__STR_LIT_60), new SingleValueRange(__STR_LIT_61), new SingleValueRange(__STR_LIT_62), new SingleValueRange(__STR_LIT_63), new SingleValueRange(__STR_LIT_64), new SingleValueRange(__STR_LIT_65), new SingleValueRange(__STR_LIT_66), new SingleValueRange(__STR_LIT_67), new SingleValueRange(__STR_LIT_68), new SingleValueRange(__STR_LIT_69), new SingleValueRange(__STR_LIT_70), new SingleValueRange(__STR_LIT_71), new SingleValueRange(__STR_LIT_72), new SingleValueRange(__STR_LIT_73), new SingleValueRange(__STR_LIT_74), new SingleValueRange(__STR_LIT_75), new SingleValueRange(__STR_LIT_76), new SingleValueRange(__STR_LIT_77), new SingleValueRange(__STR_LIT_78), new SingleValueRange(__STR_LIT_79), new SingleValueRange(__STR_LIT_80), new SingleValueRange(__STR_LIT_81), new SingleValueRange(__STR_LIT_82), new SingleValueRange(__STR_LIT_83)}), EF7.get(context)).asBoolean()).asBoolean())
{
context.getLogger().trace("Fehler angeschrieben: SIG_35");
fehler_SIG_35(context, 0, null);
@ -2500,7 +2500,7 @@ public class Plausi_ERHEBUNG_GASTHOERER_2019 extends BasePlausi @@ -2500,7 +2500,7 @@ public class Plausi_ERHEBUNG_GASTHOERER_2019 extends BasePlausi
context.startNewPruefSection("Prüfung SIG_65");
try
{
if (OperatorLib.contains(context, new RangeSeries(new Range[] {new SingleValueRange(__STR_LIT_86), new SingleValueRange(__STR_LIT_87), new SingleValueRange(__STR_LIT_88), new SingleValueRange(__STR_LIT_89), new SingleValueRange(__STR_LIT_90), new SingleValueRange(__STR_LIT_91), new SingleValueRange(__STR_LIT_92), new SingleValueRange(__STR_LIT_93), new SingleValueRange(__STR_LIT_94), new SingleValueRange(__STR_LIT_95), new SingleValueRange(__STR_LIT_96), new SingleValueRange(__STR_LIT_97), new SingleValueRange(__STR_LIT_98), new SingleValueRange(__STR_LIT_99), new SingleValueRange(__STR_LIT_100), new SingleValueRange(__STR_LIT_101), new SingleValueRange(__STR_LIT_102), new SingleValueRange(__STR_LIT_103), new SingleValueRange(__STR_LIT_104), new SingleValueRange(__STR_LIT_105), new SingleValueRange(__STR_LIT_106), new SingleValueRange(__STR_LIT_107), new SingleValueRange(__STR_LIT_108), new SingleValueRange(__STR_LIT_109), new SingleValueRange(__STR_LIT_110), new SingleValueRange(__STR_LIT_111), new SingleValueRange(__STR_LIT_112), new SingleValueRange(__STR_LIT_113), new SingleValueRange(__STR_LIT_114), new SingleValueRange(__STR_LIT_115), new SingleValueRange(__STR_LIT_116), new SingleValueRange(__STR_LIT_117), new SingleValueRange(__STR_LIT_118), new SingleValueRange(__STR_LIT_119), new SingleValueRange(__STR_LIT_120), new SingleValueRange(__STR_LIT_121), new SingleValueRange(__STR_LIT_122), new SingleValueRange(__STR_LIT_123), new SingleValueRange(__STR_LIT_124), new SingleValueRange(__STR_LIT_125), new SingleValueRange(__STR_LIT_126), new SingleValueRange(__STR_LIT_127), new SingleValueRange(__STR_LIT_128), new SingleValueRange(__STR_LIT_129), new SingleValueRange(__STR_LIT_130), new SingleValueRange(__STR_LIT_131), new SingleValueRange(__STR_LIT_132), new SingleValueRange(__STR_LIT_133), new SingleValueRange(__STR_LIT_134), new SingleValueRange(__STR_LIT_135), new SingleValueRange(__STR_LIT_136), new SingleValueRange(__STR_LIT_137), new SingleValueRange(__STR_LIT_138), new SingleValueRange(__STR_LIT_139), new SingleValueRange(__STR_LIT_140), new SingleValueRange(__STR_LIT_141), new SingleValueRange(__STR_LIT_142), new SingleValueRange(__STR_LIT_143), new SingleValueRange(__STR_LIT_144), new SingleValueRange(__STR_LIT_145), new SingleValueRange(__STR_LIT_146), new SingleValueRange(__STR_LIT_147), new SingleValueRange(__STR_LIT_148), new SingleValueRange(__STR_LIT_149), new SingleValueRange(__STR_LIT_150), new SingleValueRange(__STR_LIT_151), new SingleValueRange(__STR_LIT_152), new SingleValueRange(__STR_LIT_153), new SingleValueRange(__STR_LIT_154), new SingleValueRange(__STR_LIT_155), new SingleValueRange(__STR_LIT_156), new SingleValueRange(__STR_LIT_157), new SingleValueRange(__STR_LIT_158), new SingleValueRange(__STR_LIT_159), new SingleValueRange(__STR_LIT_160), new SingleValueRange(__STR_LIT_161), new SingleValueRange(__STR_LIT_162), new SingleValueRange(__STR_LIT_163), new SingleValueRange(__STR_LIT_164)}), EF2.get(context)).asBoolean())
if (OperatorLib.contains(context, new RangeSeries(new Range[] {new SingleValueRange(__STR_LIT_84), new SingleValueRange(__STR_LIT_85), new SingleValueRange(__STR_LIT_86), new SingleValueRange(__STR_LIT_87), new SingleValueRange(__STR_LIT_88), new SingleValueRange(__STR_LIT_89), new SingleValueRange(__STR_LIT_90), new SingleValueRange(__STR_LIT_91), new SingleValueRange(__STR_LIT_92), new SingleValueRange(__STR_LIT_93), new SingleValueRange(__STR_LIT_94), new SingleValueRange(__STR_LIT_95), new SingleValueRange(__STR_LIT_96), new SingleValueRange(__STR_LIT_97), new SingleValueRange(__STR_LIT_98), new SingleValueRange(__STR_LIT_99), new SingleValueRange(__STR_LIT_100), new SingleValueRange(__STR_LIT_101), new SingleValueRange(__STR_LIT_102), new SingleValueRange(__STR_LIT_103), new SingleValueRange(__STR_LIT_104), new SingleValueRange(__STR_LIT_105), new SingleValueRange(__STR_LIT_106), new SingleValueRange(__STR_LIT_107), new SingleValueRange(__STR_LIT_108), new SingleValueRange(__STR_LIT_109), new SingleValueRange(__STR_LIT_110), new SingleValueRange(__STR_LIT_111), new SingleValueRange(__STR_LIT_112), new SingleValueRange(__STR_LIT_113), new SingleValueRange(__STR_LIT_114), new SingleValueRange(__STR_LIT_115), new SingleValueRange(__STR_LIT_116), new SingleValueRange(__STR_LIT_117), new SingleValueRange(__STR_LIT_118), new SingleValueRange(__STR_LIT_119), new SingleValueRange(__STR_LIT_120), new SingleValueRange(__STR_LIT_121), new SingleValueRange(__STR_LIT_122), new SingleValueRange(__STR_LIT_123), new SingleValueRange(__STR_LIT_124), new SingleValueRange(__STR_LIT_125), new SingleValueRange(__STR_LIT_126), new SingleValueRange(__STR_LIT_127), new SingleValueRange(__STR_LIT_128), new SingleValueRange(__STR_LIT_129), new SingleValueRange(__STR_LIT_130), new SingleValueRange(__STR_LIT_131), new SingleValueRange(__STR_LIT_132), new SingleValueRange(__STR_LIT_133), new SingleValueRange(__STR_LIT_134), new SingleValueRange(__STR_LIT_135), new SingleValueRange(__STR_LIT_136), new SingleValueRange(__STR_LIT_137), new SingleValueRange(__STR_LIT_138), new SingleValueRange(__STR_LIT_139), new SingleValueRange(__STR_LIT_140), new SingleValueRange(__STR_LIT_141), new SingleValueRange(__STR_LIT_142), new SingleValueRange(__STR_LIT_143), new SingleValueRange(__STR_LIT_144), new SingleValueRange(__STR_LIT_145), new SingleValueRange(__STR_LIT_146), new SingleValueRange(__STR_LIT_147), new SingleValueRange(__STR_LIT_148), new SingleValueRange(__STR_LIT_149), new SingleValueRange(__STR_LIT_150), new SingleValueRange(__STR_LIT_151), new SingleValueRange(__STR_LIT_152), new SingleValueRange(__STR_LIT_153), new SingleValueRange(__STR_LIT_154), new SingleValueRange(__STR_LIT_155), new SingleValueRange(__STR_LIT_156), new SingleValueRange(__STR_LIT_157), new SingleValueRange(__STR_LIT_158), new SingleValueRange(__STR_LIT_159), new SingleValueRange(__STR_LIT_160), new SingleValueRange(__STR_LIT_161), new SingleValueRange(__STR_LIT_162)}), EF2.get(context)).asBoolean())
{
context.getLogger().trace("Fehler angeschrieben: SIG_65");
fehler_SIG_65(context, 0, null);
@ -2718,171 +2718,169 @@ public class Plausi_ERHEBUNG_GASTHOERER_2019 extends BasePlausi @@ -2718,171 +2718,169 @@ public class Plausi_ERHEBUNG_GASTHOERER_2019 extends BasePlausi
public static final StringValue __STR_LIT_7 = new StringValue("00");
public static final StringValue __STR_LIT_8 = new StringValue(" ");
public static final StringValue __STR_LIT_9 = new StringValue("99");
public static final StringValue __STR_LIT_10 = new StringValue("4720");
public static final StringValue __STR_LIT_11 = new StringValue("4730");
public static final StringValue __STR_LIT_12 = new StringValue("4740");
public static final StringValue __STR_LIT_13 = new StringValue("4750");
public static final StringValue __STR_LIT_14 = new StringValue("4760");
public static final StringValue __STR_LIT_15 = new StringValue("4770");
public static final StringValue __STR_LIT_16 = new StringValue("4780");
public static final StringValue __STR_LIT_17 = new StringValue("4790");
public static final StringValue __STR_LIT_18 = new StringValue("4800");
public static final StringValue __STR_LIT_19 = new StringValue("4810");
public static final StringValue __STR_LIT_20 = new StringValue("4820");
public static final StringValue __STR_LIT_21 = new StringValue("4830");
public static final StringValue __STR_LIT_22 = new StringValue("4840");
public static final StringValue __STR_LIT_23 = new StringValue("4850");
public static final StringValue __STR_LIT_24 = new StringValue("4860");
public static final StringValue __STR_LIT_25 = new StringValue("4870");
public static final StringValue __STR_LIT_26 = new StringValue("4880");
public static final StringValue __STR_LIT_27 = new StringValue("4890");
public static final StringValue __STR_LIT_28 = new StringValue("4900");
public static final StringValue __STR_LIT_29 = new StringValue("4910");
public static final StringValue __STR_LIT_30 = new StringValue("4920");
public static final StringValue __STR_LIT_31 = new StringValue("4930");
public static final StringValue __STR_LIT_32 = new StringValue("409A");
public static final StringValue __STR_LIT_33 = new StringValue("409B");
public static final StringValue __STR_LIT_34 = new StringValue("409C");
public static final StringValue __STR_LIT_35 = new StringValue("409D");
public static final StringValue __STR_LIT_36 = new StringValue("409E");
public static final StringValue __STR_LIT_10 = new StringValue("4730");
public static final StringValue __STR_LIT_11 = new StringValue("4740");
public static final StringValue __STR_LIT_12 = new StringValue("4750");
public static final StringValue __STR_LIT_13 = new StringValue("4760");
public static final StringValue __STR_LIT_14 = new StringValue("4770");
public static final StringValue __STR_LIT_15 = new StringValue("4780");
public static final StringValue __STR_LIT_16 = new StringValue("4790");
public static final StringValue __STR_LIT_17 = new StringValue("4800");
public static final StringValue __STR_LIT_18 = new StringValue("4810");
public static final StringValue __STR_LIT_19 = new StringValue("4820");
public static final StringValue __STR_LIT_20 = new StringValue("4830");
public static final StringValue __STR_LIT_21 = new StringValue("4840");
public static final StringValue __STR_LIT_22 = new StringValue("4850");
public static final StringValue __STR_LIT_23 = new StringValue("4860");
public static final StringValue __STR_LIT_24 = new StringValue("4870");
public static final StringValue __STR_LIT_25 = new StringValue("4880");
public static final StringValue __STR_LIT_26 = new StringValue("4890");
public static final StringValue __STR_LIT_27 = new StringValue("4900");
public static final StringValue __STR_LIT_28 = new StringValue("4910");
public static final StringValue __STR_LIT_29 = new StringValue("4920");
public static final StringValue __STR_LIT_30 = new StringValue("4930");
public static final StringValue __STR_LIT_31 = new StringValue("409A");
public static final StringValue __STR_LIT_32 = new StringValue("409B");
public static final StringValue __STR_LIT_33 = new StringValue("409C");
public static final StringValue __STR_LIT_34 = new StringValue("409D");
public static final StringValue __STR_LIT_35 = new StringValue("409E");
public static final NumberValue __NUM_LIT_10 = new NumberValue(3980.0);
public static final NumberValue __NUM_LIT_11 = new NumberValue(3990.0);
public static final NumberValue __NUM_LIT_12 = new NumberValue(4000.0);
public static final NumberValue __NUM_LIT_13 = new NumberValue(4001.0);
public static final NumberValue __NUM_LIT_14 = new NumberValue(4002.0);
public static final NumberValue __NUM_LIT_15 = new NumberValue(4500.0);
public static final StringValue __STR_LIT_37 = new StringValue("2");
public static final StringValue __STR_LIT_38 = new StringValue("3");
public static final StringValue __STR_LIT_39 = new StringValue("4");
public static final StringValue __STR_LIT_36 = new StringValue("2");
public static final StringValue __STR_LIT_37 = new StringValue("3");
public static final StringValue __STR_LIT_38 = new StringValue("4");
public static final NumberValue __NUM_LIT_16 = new NumberValue(1912.0);
public static final NumberValue __NUM_LIT_17 = new NumberValue(1913.0);
public static final NumberValue __NUM_LIT_18 = new NumberValue(2020.0);
public static final StringValue __STR_LIT_40 = new StringValue("112");
public static final StringValue __STR_LIT_41 = new StringValue("113");
public static final StringValue __STR_LIT_42 = new StringValue("114");
public static final StringValue __STR_LIT_43 = new StringValue("115");
public static final StringValue __STR_LIT_44 = new StringValue("116");
public static final StringValue __STR_LIT_45 = new StringValue("182");
public static final StringValue __STR_LIT_46 = new StringValue("211");
public static final StringValue __STR_LIT_47 = new StringValue("214");
public static final StringValue __STR_LIT_48 = new StringValue("216");
public static final StringValue __STR_LIT_49 = new StringValue("311");
public static final StringValue __STR_LIT_50 = new StringValue("315");
public static final StringValue __STR_LIT_51 = new StringValue("316");
public static final StringValue __STR_LIT_52 = new StringValue("317");
public static final StringValue __STR_LIT_53 = new StringValue("319");
public static final StringValue __STR_LIT_54 = new StringValue("321");
public static final StringValue __STR_LIT_55 = new StringValue("325");
public static final StringValue __STR_LIT_56 = new StringValue("329");
public static final StringValue __STR_LIT_57 = new StringValue("331");
public static final StringValue __STR_LIT_58 = new StringValue("338");
public static final StringValue __STR_LIT_59 = new StringValue("341");
public static final StringValue __STR_LIT_60 = new StringValue("342");
public static final StringValue __STR_LIT_61 = new StringValue("343");
public static final StringValue __STR_LIT_62 = new StringValue("344");
public static final StringValue __STR_LIT_63 = new StringValue("352");
public static final StringValue __STR_LIT_64 = new StringValue("510");
public static final StringValue __STR_LIT_65 = new StringValue("511");
public static final StringValue __STR_LIT_66 = new StringValue("512");
public static final StringValue __STR_LIT_67 = new StringValue("513");
public static final StringValue __STR_LIT_68 = new StringValue("514");
public static final StringValue __STR_LIT_69 = new StringValue("515");
public static final StringValue __STR_LIT_70 = new StringValue("517");
public static final StringValue __STR_LIT_71 = new StringValue("519");
public static final StringValue __STR_LIT_72 = new StringValue("520");
public static final StringValue __STR_LIT_73 = new StringValue("521");
public static final StringValue __STR_LIT_74 = new StringValue("522");
public static final StringValue __STR_LIT_75 = new StringValue("525");
public static final StringValue __STR_LIT_76 = new StringValue("528");
public static final StringValue __STR_LIT_77 = new StringValue("529");
public static final StringValue __STR_LIT_78 = new StringValue("534");
public static final StringValue __STR_LIT_79 = new StringValue("535");
public static final StringValue __STR_LIT_80 = new StringValue("542");
public static final StringValue __STR_LIT_81 = new StringValue("546");
public static final StringValue __STR_LIT_82 = new StringValue("547");
public static final StringValue __STR_LIT_83 = new StringValue("548");
public static final StringValue __STR_LIT_84 = new StringValue("549");
public static final StringValue __STR_LIT_85 = new StringValue("555");
public static final StringValue __STR_LIT_39 = new StringValue("112");
public static final StringValue __STR_LIT_40 = new StringValue("113");
public static final StringValue __STR_LIT_41 = new StringValue("114");
public static final StringValue __STR_LIT_42 = new StringValue("115");
public static final StringValue __STR_LIT_43 = new StringValue("116");
public static final StringValue __STR_LIT_44 = new StringValue("182");
public static final StringValue __STR_LIT_45 = new StringValue("211");
public static final StringValue __STR_LIT_46 = new StringValue("214");
public static final StringValue __STR_LIT_47 = new StringValue("216");
public static final StringValue __STR_LIT_48 = new StringValue("311");
public static final StringValue __STR_LIT_49 = new StringValue("315");
public static final StringValue __STR_LIT_50 = new StringValue("316");
public static final StringValue __STR_LIT_51 = new StringValue("317");
public static final StringValue __STR_LIT_52 = new StringValue("319");
public static final StringValue __STR_LIT_53 = new StringValue("321");
public static final StringValue __STR_LIT_54 = new StringValue("325");
public static final StringValue __STR_LIT_55 = new StringValue("329");
public static final StringValue __STR_LIT_56 = new StringValue("331");
public static final StringValue __STR_LIT_57 = new StringValue("338");
public static final StringValue __STR_LIT_58 = new StringValue("341");
public static final StringValue __STR_LIT_59 = new StringValue("342");
public static final StringValue __STR_LIT_60 = new StringValue("343");
public static final StringValue __STR_LIT_61 = new StringValue("344");
public static final StringValue __STR_LIT_62 = new StringValue("352");
public static final StringValue __STR_LIT_63 = new StringValue("510");
public static final StringValue __STR_LIT_64 = new StringValue("511");
public static final StringValue __STR_LIT_65 = new StringValue("512");
public static final StringValue __STR_LIT_66 = new StringValue("513");
public static final StringValue __STR_LIT_67 = new StringValue("514");
public static final StringValue __STR_LIT_68 = new StringValue("515");
public static final StringValue __STR_LIT_69 = new StringValue("517");
public static final StringValue __STR_LIT_70 = new StringValue("519");
public static final StringValue __STR_LIT_71 = new StringValue("520");
public static final StringValue __STR_LIT_72 = new StringValue("521");
public static final StringValue __STR_LIT_73 = new StringValue("522");
public static final StringValue __STR_LIT_74 = new StringValue("525");
public static final StringValue __STR_LIT_75 = new StringValue("528");
public static final StringValue __STR_LIT_76 = new StringValue("529");
public static final StringValue __STR_LIT_77 = new StringValue("534");
public static final StringValue __STR_LIT_78 = new StringValue("535");
public static final StringValue __STR_LIT_79 = new StringValue("542");
public static final StringValue __STR_LIT_80 = new StringValue("546");
public static final StringValue __STR_LIT_81 = new StringValue("547");
public static final StringValue __STR_LIT_82 = new StringValue("548");
public static final StringValue __STR_LIT_83 = new StringValue("549");
public static final NumberValue __NUM_LIT_19 = new NumberValue(10.0);
public static final StringValue __STR_LIT_86 = new StringValue("0081");
public static final StringValue __STR_LIT_87 = new StringValue("0089");
public static final StringValue __STR_LIT_88 = new StringValue("0261");
public static final StringValue __STR_LIT_89 = new StringValue("0269");
public static final StringValue __STR_LIT_90 = new StringValue("0271");
public static final StringValue __STR_LIT_91 = new StringValue("0279");
public static final StringValue __STR_LIT_92 = new StringValue("0309");
public static final StringValue __STR_LIT_93 = new StringValue("0311");
public static final StringValue __STR_LIT_94 = new StringValue("0319");
public static final StringValue __STR_LIT_95 = new StringValue("0361");
public static final StringValue __STR_LIT_96 = new StringValue("0369");
public static final StringValue __STR_LIT_97 = new StringValue("0371");
public static final StringValue __STR_LIT_98 = new StringValue("0379");
public static final StringValue __STR_LIT_99 = new StringValue("0491");
public static final StringValue __STR_LIT_100 = new StringValue("0499");
public static final StringValue __STR_LIT_101 = new StringValue("0640");
public static final StringValue __STR_LIT_102 = new StringValue("0650");
public static final StringValue __STR_LIT_103 = new StringValue("0950");
public static final StringValue __STR_LIT_104 = new StringValue("1001");
public static final StringValue __STR_LIT_105 = new StringValue("1011");
public static final StringValue __STR_LIT_106 = new StringValue("1021");
public static final StringValue __STR_LIT_107 = new StringValue("1029");
public static final StringValue __STR_LIT_108 = new StringValue("1031");
public static final StringValue __STR_LIT_109 = new StringValue("1039");
public static final StringValue __STR_LIT_110 = new StringValue("1081");
public static final StringValue __STR_LIT_111 = new StringValue("1089");
public static final StringValue __STR_LIT_112 = new StringValue("1091");
public static final StringValue __STR_LIT_113 = new StringValue("1099");
public static final StringValue __STR_LIT_114 = new StringValue("1101");
public static final StringValue __STR_LIT_115 = new StringValue("1109");
public static final StringValue __STR_LIT_116 = new StringValue("1111");
public static final StringValue __STR_LIT_117 = new StringValue("1119");
public static final StringValue __STR_LIT_118 = new StringValue("1121");
public static final StringValue __STR_LIT_119 = new StringValue("1129");
public static final StringValue __STR_LIT_120 = new StringValue("1161");
public static final StringValue __STR_LIT_121 = new StringValue("1169");
public static final StringValue __STR_LIT_122 = new StringValue("1241");
public static final StringValue __STR_LIT_123 = new StringValue("1249");
public static final StringValue __STR_LIT_124 = new StringValue("1251");
public static final StringValue __STR_LIT_125 = new StringValue("1258");
public static final StringValue __STR_LIT_126 = new StringValue("1259");
public static final StringValue __STR_LIT_127 = new StringValue("1271");
public static final StringValue __STR_LIT_128 = new StringValue("1279");
public static final StringValue __STR_LIT_129 = new StringValue("1293");
public static final StringValue __STR_LIT_130 = new StringValue("1319");
public static final StringValue __STR_LIT_131 = new StringValue("1321");
public static final StringValue __STR_LIT_132 = new StringValue("1329");
public static final StringValue __STR_LIT_133 = new StringValue("1331");
public static final StringValue __STR_LIT_134 = new StringValue("1339");
public static final StringValue __STR_LIT_135 = new StringValue("1341");
public static final StringValue __STR_LIT_136 = new StringValue("1349");
public static final StringValue __STR_LIT_137 = new StringValue("1361");
public static final StringValue __STR_LIT_138 = new StringValue("1362");
public static final StringValue __STR_LIT_139 = new StringValue("1369");
public static final StringValue __STR_LIT_140 = new StringValue("1378");
public static final StringValue __STR_LIT_141 = new StringValue("1379");
public static final StringValue __STR_LIT_142 = new StringValue("1390");
public static final StringValue __STR_LIT_143 = new StringValue("1481");
public static final StringValue __STR_LIT_144 = new StringValue("1489");
public static final StringValue __STR_LIT_145 = new StringValue("1491");
public static final StringValue __STR_LIT_146 = new StringValue("1499");
public static final StringValue __STR_LIT_147 = new StringValue("1639");
public static final StringValue __STR_LIT_148 = new StringValue("1731");
public static final StringValue __STR_LIT_149 = new StringValue("1739");
public static final StringValue __STR_LIT_150 = new StringValue("1821");
public static final StringValue __STR_LIT_151 = new StringValue("1829");
public static final StringValue __STR_LIT_152 = new StringValue("5021");
public static final StringValue __STR_LIT_153 = new StringValue("5022");
public static final StringValue __STR_LIT_154 = new StringValue("5024");
public static final StringValue __STR_LIT_155 = new StringValue("5025");
public static final StringValue __STR_LIT_156 = new StringValue("5026");
public static final StringValue __STR_LIT_157 = new StringValue("5027");
public static final StringValue __STR_LIT_158 = new StringValue("5028");
public static final StringValue __STR_LIT_159 = new StringValue("5150");
public static final StringValue __STR_LIT_160 = new StringValue("5160");
public static final StringValue __STR_LIT_161 = new StringValue("6245");
public static final StringValue __STR_LIT_162 = new StringValue("7467");
public static final StringValue __STR_LIT_163 = new StringValue("6380");
public static final StringValue __STR_LIT_164 = new StringValue("8100");
public static final StringValue __STR_LIT_84 = new StringValue("0081");
public static final StringValue __STR_LIT_85 = new StringValue("0089");
public static final StringValue __STR_LIT_86 = new StringValue("0261");
public static final StringValue __STR_LIT_87 = new StringValue("0269");
public static final StringValue __STR_LIT_88 = new StringValue("0271");
public static final StringValue __STR_LIT_89 = new StringValue("0279");
public static final StringValue __STR_LIT_90 = new StringValue("0309");
public static final StringValue __STR_LIT_91 = new StringValue("0311");
public static final StringValue __STR_LIT_92 = new StringValue("0319");
public static final StringValue __STR_LIT_93 = new StringValue("0361");
public static final StringValue __STR_LIT_94 = new StringValue("0369");
public static final StringValue __STR_LIT_95 = new StringValue("0371");
public static final StringValue __STR_LIT_96 = new StringValue("0379");
public static final StringValue __STR_LIT_97 = new StringValue("0491");
public static final StringValue __STR_LIT_98 = new StringValue("0499");
public static final StringValue __STR_LIT_99 = new StringValue("0640");
public static final StringValue __STR_LIT_100 = new StringValue("0650");
public static final StringValue __STR_LIT_101 = new StringValue("0950");
public static final StringValue __STR_LIT_102 = new StringValue("1001");
public static final StringValue __STR_LIT_103 = new StringValue("1011");
public static final StringValue __STR_LIT_104 = new StringValue("1021");
public static final StringValue __STR_LIT_105 = new StringValue("1029");
public static final StringValue __STR_LIT_106 = new StringValue("1031");
public static final StringValue __STR_LIT_107 = new StringValue("1039");
public static final StringValue __STR_LIT_108 = new StringValue("1081");
public static final StringValue __STR_LIT_109 = new StringValue("1089");
public static final StringValue __STR_LIT_110 = new StringValue("1091");
public static final StringValue __STR_LIT_111 = new StringValue("1099");
public static final StringValue __STR_LIT_112 = new StringValue("1101");
public static final StringValue __STR_LIT_113 = new StringValue("1109");
public static final StringValue __STR_LIT_114 = new StringValue("1111");
public static final StringValue __STR_LIT_115 = new StringValue("1119");
public static final StringValue __STR_LIT_116 = new StringValue("1121");
public static final StringValue __STR_LIT_117 = new StringValue("1129");
public static final StringValue __STR_LIT_118 = new StringValue("1161");
public static final StringValue __STR_LIT_119 = new StringValue("1169");
public static final StringValue __STR_LIT_120 = new StringValue("1241");
public static final StringValue __STR_LIT_121 = new StringValue("1249");
public static final StringValue __STR_LIT_122 = new StringValue("1251");
public static final StringValue __STR_LIT_123 = new StringValue("1258");
public static final StringValue __STR_LIT_124 = new StringValue("1259");
public static final StringValue __STR_LIT_125 = new StringValue("1271");
public static final StringValue __STR_LIT_126 = new StringValue("1279");
public static final StringValue __STR_LIT_127 = new StringValue("1293");
public static final StringValue __STR_LIT_128 = new StringValue("1319");
public static final StringValue __STR_LIT_129 = new StringValue("1321");
public static final StringValue __STR_LIT_130 = new StringValue("1329");
public static final StringValue __STR_LIT_131 = new StringValue("1331");
public static final StringValue __STR_LIT_132 = new StringValue("1339");
public static final StringValue __STR_LIT_133 = new StringValue("1341");
public static final StringValue __STR_LIT_134 = new StringValue("1349");
public static final StringValue __STR_LIT_135 = new StringValue("1361");
public static final StringValue __STR_LIT_136 = new StringValue("1362");
public static final StringValue __STR_LIT_137 = new StringValue("1369");
public static final StringValue __STR_LIT_138 = new StringValue("1378");
public static final StringValue __STR_LIT_139 = new StringValue("1379");
public static final StringValue __STR_LIT_140 = new StringValue("1390");
public static final StringValue __STR_LIT_141 = new StringValue("1481");
public static final StringValue __STR_LIT_142 = new StringValue("1489");
public static final StringValue __STR_LIT_143 = new StringValue("1491");
public static final StringValue __STR_LIT_144 = new StringValue("1499");
public static final StringValue __STR_LIT_145 = new StringValue("1639");
public static final StringValue __STR_LIT_146 = new StringValue("1731");
public static final StringValue __STR_LIT_147 = new StringValue("1739");
public static final StringValue __STR_LIT_148 = new StringValue("1821");
public static final StringValue __STR_LIT_149 = new StringValue("1829");
public static final StringValue __STR_LIT_150 = new StringValue("5021");
public static final StringValue __STR_LIT_151 = new StringValue("5022");
public static final StringValue __STR_LIT_152 = new StringValue("5024");
public static final StringValue __STR_LIT_153 = new StringValue("5025");
public static final StringValue __STR_LIT_154 = new StringValue("5026");
public static final StringValue __STR_LIT_155 = new StringValue("5027");
public static final StringValue __STR_LIT_156 = new StringValue("5028");
public static final StringValue __STR_LIT_157 = new StringValue("5150");
public static final StringValue __STR_LIT_158 = new StringValue("5160");
public static final StringValue __STR_LIT_159 = new StringValue("6245");
public static final StringValue __STR_LIT_160 = new StringValue("7467");
public static final StringValue __STR_LIT_161 = new StringValue("6380");
public static final StringValue __STR_LIT_162 = new StringValue("8100");
public TB_T_Gasthoerer themenbereich;
public MaterialTB_FachrichtungenGast __material_FachrichtungenGast_Materialbeschreibung;
@ -3173,7 +3171,7 @@ public class Plausi_ERHEBUNG_GASTHOERER_2019 extends BasePlausi @@ -3173,7 +3171,7 @@ public class Plausi_ERHEBUNG_GASTHOERER_2019 extends BasePlausi
PlausiFehler fehler = new PlausiFehler();
fehler.setFehlerSchluessel("SIG_10");
fehler.setFehlertextKurz("Falsche Signatur beim Geschlecht");
fehler.setFehlertextLang("Geschlecht (EF5) ungleich 1, 2, 3 oder 4, Stand der PL Klassen vom 08.06.2026");
fehler.setFehlertextLang("Geschlecht (EF5) ungleich 1, 2, 3 oder 4, Stand der PL Klassen vom 26.02.2026");
fehler.setFehlerGewicht(1);
fehler.setReferenzTB("T_Gasthoerer");
fehler.setFehlerArt(1);

1446
src/de/statspez/plausi/generated/Plausi_ERHEBUNG_GASTHOERER_2019.xml

File diff suppressed because it is too large Load Diff

BIN
src/de/statspez/plausi/generated/Plausi_ERHEBUNG_GASTHOERER_2019_Descriptor.data

Binary file not shown.

292
src/de/statspez/plausi/generated/Plausi_ERHEBUNG_PROMOVIERENDE_AB_2017.java

File diff suppressed because one or more lines are too long

3348
src/de/statspez/plausi/generated/Plausi_ERHEBUNG_PROMOVIERENDE_AB_2017.xml

File diff suppressed because it is too large Load Diff

BIN
src/de/statspez/plausi/generated/Plausi_ERHEBUNG_PROMOVIERENDE_AB_2017_Descriptor.data

Binary file not shown.

362
src/de/statspez/plausi/generated/Plausi_ERHEBUNG_PROMOVIERENDE_AB_2017_Segment1.java

@ -4,187 +4,187 @@ import de.statspez.pleditor.generator.runtime.*; @@ -4,187 +4,187 @@ import de.statspez.pleditor.generator.runtime.*;
public class Plausi_ERHEBUNG_PROMOVIERENDE_AB_2017_Segment1
{
public static final StringValue __STR_LIT_986 = new StringValue("a ");
public static final StringValue __STR_LIT_987 = new StringValue("a c");
public static final StringValue __STR_LIT_988 = new StringValue("ab ");
public static final StringValue __STR_LIT_989 = new StringValue("abc");
public static final StringValue __STR_LIT_990 = new StringValue(" c");
public static final StringValue __STR_LIT_991 = new StringValue("2024");
public static final StringValue __STR_LIT_992 = new StringValue("2025");
public static final StringValue __STR_LIT_993 = new StringValue("2021");
public static final StringValue __STR_LIT_994 = new StringValue("1");
public static final StringValue __STR_LIT_995 = new StringValue("b ");
public static final StringValue __STR_LIT_996 = new StringValue("102");
public static final StringValue __STR_LIT_997 = new StringValue("004");
public static final StringValue __STR_LIT_998 = new StringValue("8");
public static final StringValue __STR_LIT_999 = new StringValue("98");
public static final StringValue __STR_LIT_1000 = new StringValue("999");
public static final StringValue __STR_LIT_1001 = new StringValue("0081");
public static final StringValue __STR_LIT_1002 = new StringValue("0089");
public static final StringValue __STR_LIT_1003 = new StringValue("0261");
public static final StringValue __STR_LIT_1004 = new StringValue("0269");
public static final StringValue __STR_LIT_1005 = new StringValue("0271");
public static final StringValue __STR_LIT_1006 = new StringValue("0279");
public static final StringValue __STR_LIT_1007 = new StringValue("0309");
public static final StringValue __STR_LIT_1008 = new StringValue("0311");
public static final StringValue __STR_LIT_1009 = new StringValue("0319");
public static final StringValue __STR_LIT_1010 = new StringValue("0361");
public static final StringValue __STR_LIT_1011 = new StringValue("0369");
public static final StringValue __STR_LIT_1012 = new StringValue("0371");
public static final StringValue __STR_LIT_1013 = new StringValue("0379");
public static final StringValue __STR_LIT_1014 = new StringValue("0491");
public static final StringValue __STR_LIT_1015 = new StringValue("0499");
public static final StringValue __STR_LIT_1016 = new StringValue("0640");
public static final StringValue __STR_LIT_1017 = new StringValue("0650");
public static final StringValue __STR_LIT_1018 = new StringValue("0950");
public static final StringValue __STR_LIT_1019 = new StringValue("1001");
public static final StringValue __STR_LIT_1020 = new StringValue("1011");
public static final StringValue __STR_LIT_1021 = new StringValue("1021");
public static final StringValue __STR_LIT_1022 = new StringValue("1029");
public static final StringValue __STR_LIT_1023 = new StringValue("1031");
public static final StringValue __STR_LIT_1024 = new StringValue("1039");
public static final StringValue __STR_LIT_1025 = new StringValue("1081");
public static final StringValue __STR_LIT_1026 = new StringValue("1089");
public static final StringValue __STR_LIT_1027 = new StringValue("1091");
public static final StringValue __STR_LIT_1028 = new StringValue("1099");
public static final StringValue __STR_LIT_1029 = new StringValue("1101");
public static final StringValue __STR_LIT_1030 = new StringValue("1109");
public static final StringValue __STR_LIT_1031 = new StringValue("1111");
public static final StringValue __STR_LIT_1032 = new StringValue("1119");
public static final StringValue __STR_LIT_1033 = new StringValue("1121");
public static final StringValue __STR_LIT_1034 = new StringValue("1129");
public static final StringValue __STR_LIT_1035 = new StringValue("1161");
public static final StringValue __STR_LIT_1036 = new StringValue("1169");
public static final StringValue __STR_LIT_1037 = new StringValue("1241");
public static final StringValue __STR_LIT_1038 = new StringValue("1249");
public static final StringValue __STR_LIT_1039 = new StringValue("1251");
public static final StringValue __STR_LIT_1040 = new StringValue("1258");
public static final StringValue __STR_LIT_1041 = new StringValue("1259");
public static final StringValue __STR_LIT_1042 = new StringValue("1271");
public static final StringValue __STR_LIT_1043 = new StringValue("1279");
public static final StringValue __STR_LIT_1044 = new StringValue("1319");
public static final StringValue __STR_LIT_1045 = new StringValue("1321");
public static final StringValue __STR_LIT_1046 = new StringValue("1329");
public static final StringValue __STR_LIT_1047 = new StringValue("1331");
public static final StringValue __STR_LIT_1048 = new StringValue("1339");
public static final StringValue __STR_LIT_1049 = new StringValue("1341");
public static final StringValue __STR_LIT_1050 = new StringValue("1349");
public static final StringValue __STR_LIT_1051 = new StringValue("1361");
public static final StringValue __STR_LIT_1052 = new StringValue("1362");
public static final StringValue __STR_LIT_1053 = new StringValue("1369");
public static final StringValue __STR_LIT_1054 = new StringValue("1378");
public static final StringValue __STR_LIT_1055 = new StringValue("1379");
public static final StringValue __STR_LIT_1056 = new StringValue("1481");
public static final StringValue __STR_LIT_1057 = new StringValue("1489");
public static final StringValue __STR_LIT_1058 = new StringValue("1491");
public static final StringValue __STR_LIT_1059 = new StringValue("1499");
public static final StringValue __STR_LIT_1060 = new StringValue("1639");
public static final StringValue __STR_LIT_1061 = new StringValue("1731");
public static final StringValue __STR_LIT_1062 = new StringValue("1739");
public static final StringValue __STR_LIT_1063 = new StringValue("1821");
public static final StringValue __STR_LIT_1064 = new StringValue("1829");
public static final StringValue __STR_LIT_1065 = new StringValue("5150");
public static final StringValue __STR_LIT_1066 = new StringValue("5160");
public static final StringValue __STR_LIT_1067 = new StringValue("6245");
public static final StringValue __STR_LIT_1068 = new StringValue("7467");
public static final StringValue __STR_LIT_1069 = new StringValue("8100");
public static final StringValue __STR_LIT_1070 = new StringValue("0011");
public static final StringValue __STR_LIT_1071 = new StringValue("0012");
public static final StringValue __STR_LIT_1072 = new StringValue("0150");
public static final StringValue __STR_LIT_1073 = new StringValue("0180");
public static final StringValue __STR_LIT_1074 = new StringValue("0190");
public static final StringValue __STR_LIT_1075 = new StringValue("0372");
public static final StringValue __STR_LIT_1076 = new StringValue("0373");
public static final StringValue __STR_LIT_1077 = new StringValue("0390");
public static final StringValue __STR_LIT_1078 = new StringValue("0511");
public static final StringValue __STR_LIT_1079 = new StringValue("0552");
public static final StringValue __STR_LIT_1080 = new StringValue("0580");
public static final StringValue __STR_LIT_1081 = new StringValue("0590");
public static final StringValue __STR_LIT_1082 = new StringValue("0630");
public static final StringValue __STR_LIT_1083 = new StringValue("0670");
public static final StringValue __STR_LIT_1084 = new StringValue("0680");
public static final StringValue __STR_LIT_1085 = new StringValue("0690");
public static final StringValue __STR_LIT_1086 = new StringValue("0910");
public static final StringValue __STR_LIT_1087 = new StringValue("1010");
public static final StringValue __STR_LIT_1088 = new StringValue("1060");
public static final StringValue __STR_LIT_1089 = new StringValue("1150");
public static final StringValue __STR_LIT_1090 = new StringValue("1160");
public static final StringValue __STR_LIT_1091 = new StringValue("1170");
public static final StringValue __STR_LIT_1092 = new StringValue("1180");
public static final StringValue __STR_LIT_1093 = new StringValue("1190");
public static final StringValue __STR_LIT_1094 = new StringValue("1200");
public static final StringValue __STR_LIT_1095 = new StringValue("1210");
public static final StringValue __STR_LIT_1096 = new StringValue("1211");
public static final StringValue __STR_LIT_1097 = new StringValue("1222");
public static final StringValue __STR_LIT_1098 = new StringValue("1230");
public static final StringValue __STR_LIT_1099 = new StringValue("1260");
public static final StringValue __STR_LIT_1100 = new StringValue("1323");
public static final StringValue __STR_LIT_1101 = new StringValue("1440");
public static final StringValue __STR_LIT_1102 = new StringValue("1460");
public static final StringValue __STR_LIT_1103 = new StringValue("1530");
public static final StringValue __STR_LIT_1104 = new StringValue("1542");
public static final StringValue __STR_LIT_1105 = new StringValue("1632");
public static final StringValue __STR_LIT_1106 = new StringValue("1633");
public static final StringValue __STR_LIT_1107 = new StringValue("1634");
public static final StringValue __STR_LIT_1108 = new StringValue("1690");
public static final StringValue __STR_LIT_1109 = new StringValue("1700");
public static final StringValue __STR_LIT_1110 = new StringValue("1740");
public static final StringValue __STR_LIT_1111 = new StringValue("1800");
public static final StringValue __STR_LIT_1112 = new StringValue("1960");
public static final StringValue __STR_LIT_1113 = new StringValue("2000");
public static final StringValue __STR_LIT_1114 = new StringValue("2020");
public static final StringValue __STR_LIT_1115 = new StringValue("2030");
public static final StringValue __STR_LIT_1116 = new StringValue("2040");
public static final StringValue __STR_LIT_1117 = new StringValue("2050");
public static final StringValue __STR_LIT_1118 = new StringValue("2060");
public static final StringValue __STR_LIT_1119 = new StringValue("2170");
public static final StringValue __STR_LIT_1120 = new StringValue("2200");
public static final StringValue __STR_LIT_1121 = new StringValue("2300");
public static final StringValue __STR_LIT_1122 = new StringValue("2420");
public static final StringValue __STR_LIT_1123 = new StringValue("2430");
public static final StringValue __STR_LIT_1124 = new StringValue("2500");
public static final StringValue __STR_LIT_1125 = new StringValue("2530");
public static final StringValue __STR_LIT_1126 = new StringValue("2550");
public static final StringValue __STR_LIT_1127 = new StringValue("2561");
public static final StringValue __STR_LIT_1128 = new StringValue("2571");
public static final StringValue __STR_LIT_1129 = new StringValue("2572");
public static final StringValue __STR_LIT_1130 = new StringValue("2573");
public static final StringValue __STR_LIT_1131 = new StringValue("2581");
public static final StringValue __STR_LIT_1132 = new StringValue("2582");
public static final StringValue __STR_LIT_1133 = new StringValue("2583");
public static final StringValue __STR_LIT_1134 = new StringValue("2600");
public static final StringValue __STR_LIT_1135 = new StringValue("2620");
public static final StringValue __STR_LIT_1136 = new StringValue("2630");
public static final StringValue __STR_LIT_1137 = new StringValue("2640");
public static final StringValue __STR_LIT_1138 = new StringValue("2650");
public static final StringValue __STR_LIT_1139 = new StringValue("2670");
public static final StringValue __STR_LIT_1140 = new StringValue("2690");
public static final StringValue __STR_LIT_1141 = new StringValue("2700");
public static final StringValue __STR_LIT_1142 = new StringValue("2710");
public static final StringValue __STR_LIT_1143 = new StringValue("2720");
public static final StringValue __STR_LIT_1144 = new StringValue("2730");
public static final StringValue __STR_LIT_1145 = new StringValue("2760");
public static final StringValue __STR_LIT_1146 = new StringValue("2770");
public static final StringValue __STR_LIT_1147 = new StringValue("2800");
public static final StringValue __STR_LIT_1148 = new StringValue("2810");
public static final StringValue __STR_LIT_1149 = new StringValue("2830");
public static final StringValue __STR_LIT_1150 = new StringValue("2850");
public static final StringValue __STR_LIT_1151 = new StringValue("2860");
public static final StringValue __STR_LIT_1152 = new StringValue("2870");
public static final StringValue __STR_LIT_1153 = new StringValue("2880");
public static final StringValue __STR_LIT_1154 = new StringValue("2890");
public static final StringValue __STR_LIT_1155 = new StringValue("2920");
public static final StringValue __STR_LIT_1156 = new StringValue("2940");
public static final StringValue __STR_LIT_1157 = new StringValue("2950");
public static final StringValue __STR_LIT_1158 = new StringValue("2960");
public static final StringValue __STR_LIT_1159 = new StringValue("2980");
public static final StringValue __STR_LIT_1160 = new StringValue("3011");
public static final StringValue __STR_LIT_1161 = new StringValue("3030");
public static final StringValue __STR_LIT_1162 = new StringValue("3100");
public static final StringValue __STR_LIT_1163 = new StringValue("3370");
public static final StringValue __STR_LIT_1164 = new StringValue("3660");
public static final StringValue __STR_LIT_1165 = new StringValue("3680");
public static final StringValue __STR_LIT_1166 = new StringValue("3700");
public static final StringValue __STR_LIT_986 = new StringValue(" c");
public static final StringValue __STR_LIT_987 = new StringValue("2024");
public static final StringValue __STR_LIT_988 = new StringValue("2025");
public static final StringValue __STR_LIT_989 = new StringValue("2021");
public static final StringValue __STR_LIT_990 = new StringValue("1");
public static final StringValue __STR_LIT_991 = new StringValue("b ");
public static final StringValue __STR_LIT_992 = new StringValue("102");
public static final StringValue __STR_LIT_993 = new StringValue("004");
public static final StringValue __STR_LIT_994 = new StringValue("8");
public static final StringValue __STR_LIT_995 = new StringValue("98");
public static final StringValue __STR_LIT_996 = new StringValue("999");
public static final StringValue __STR_LIT_997 = new StringValue("0081");
public static final StringValue __STR_LIT_998 = new StringValue("0089");
public static final StringValue __STR_LIT_999 = new StringValue("0261");
public static final StringValue __STR_LIT_1000 = new StringValue("0269");
public static final StringValue __STR_LIT_1001 = new StringValue("0271");
public static final StringValue __STR_LIT_1002 = new StringValue("0279");
public static final StringValue __STR_LIT_1003 = new StringValue("0309");
public static final StringValue __STR_LIT_1004 = new StringValue("0311");
public static final StringValue __STR_LIT_1005 = new StringValue("0319");
public static final StringValue __STR_LIT_1006 = new StringValue("0361");
public static final StringValue __STR_LIT_1007 = new StringValue("0369");
public static final StringValue __STR_LIT_1008 = new StringValue("0371");
public static final StringValue __STR_LIT_1009 = new StringValue("0379");
public static final StringValue __STR_LIT_1010 = new StringValue("0491");
public static final StringValue __STR_LIT_1011 = new StringValue("0499");
public static final StringValue __STR_LIT_1012 = new StringValue("0640");
public static final StringValue __STR_LIT_1013 = new StringValue("0650");
public static final StringValue __STR_LIT_1014 = new StringValue("0950");
public static final StringValue __STR_LIT_1015 = new StringValue("1001");
public static final StringValue __STR_LIT_1016 = new StringValue("1011");
public static final StringValue __STR_LIT_1017 = new StringValue("1021");
public static final StringValue __STR_LIT_1018 = new StringValue("1029");
public static final StringValue __STR_LIT_1019 = new StringValue("1031");
public static final StringValue __STR_LIT_1020 = new StringValue("1039");
public static final StringValue __STR_LIT_1021 = new StringValue("1081");
public static final StringValue __STR_LIT_1022 = new StringValue("1089");
public static final StringValue __STR_LIT_1023 = new StringValue("1091");
public static final StringValue __STR_LIT_1024 = new StringValue("1099");
public static final StringValue __STR_LIT_1025 = new StringValue("1101");
public static final StringValue __STR_LIT_1026 = new StringValue("1109");
public static final StringValue __STR_LIT_1027 = new StringValue("1111");
public static final StringValue __STR_LIT_1028 = new StringValue("1119");
public static final StringValue __STR_LIT_1029 = new StringValue("1121");
public static final StringValue __STR_LIT_1030 = new StringValue("1129");
public static final StringValue __STR_LIT_1031 = new StringValue("1161");
public static final StringValue __STR_LIT_1032 = new StringValue("1169");
public static final StringValue __STR_LIT_1033 = new StringValue("1241");
public static final StringValue __STR_LIT_1034 = new StringValue("1249");
public static final StringValue __STR_LIT_1035 = new StringValue("1251");
public static final StringValue __STR_LIT_1036 = new StringValue("1258");
public static final StringValue __STR_LIT_1037 = new StringValue("1259");
public static final StringValue __STR_LIT_1038 = new StringValue("1271");
public static final StringValue __STR_LIT_1039 = new StringValue("1279");
public static final StringValue __STR_LIT_1040 = new StringValue("1319");
public static final StringValue __STR_LIT_1041 = new StringValue("1321");
public static final StringValue __STR_LIT_1042 = new StringValue("1329");
public static final StringValue __STR_LIT_1043 = new StringValue("1331");
public static final StringValue __STR_LIT_1044 = new StringValue("1339");
public static final StringValue __STR_LIT_1045 = new StringValue("1341");
public static final StringValue __STR_LIT_1046 = new StringValue("1349");
public static final StringValue __STR_LIT_1047 = new StringValue("1361");
public static final StringValue __STR_LIT_1048 = new StringValue("1362");
public static final StringValue __STR_LIT_1049 = new StringValue("1369");
public static final StringValue __STR_LIT_1050 = new StringValue("1378");
public static final StringValue __STR_LIT_1051 = new StringValue("1379");
public static final StringValue __STR_LIT_1052 = new StringValue("1481");
public static final StringValue __STR_LIT_1053 = new StringValue("1489");
public static final StringValue __STR_LIT_1054 = new StringValue("1491");
public static final StringValue __STR_LIT_1055 = new StringValue("1499");
public static final StringValue __STR_LIT_1056 = new StringValue("1639");
public static final StringValue __STR_LIT_1057 = new StringValue("1731");
public static final StringValue __STR_LIT_1058 = new StringValue("1739");
public static final StringValue __STR_LIT_1059 = new StringValue("1821");
public static final StringValue __STR_LIT_1060 = new StringValue("1829");
public static final StringValue __STR_LIT_1061 = new StringValue("5150");
public static final StringValue __STR_LIT_1062 = new StringValue("5160");
public static final StringValue __STR_LIT_1063 = new StringValue("6245");
public static final StringValue __STR_LIT_1064 = new StringValue("7467");
public static final StringValue __STR_LIT_1065 = new StringValue("8100");
public static final StringValue __STR_LIT_1066 = new StringValue("0011");
public static final StringValue __STR_LIT_1067 = new StringValue("0012");
public static final StringValue __STR_LIT_1068 = new StringValue("0150");
public static final StringValue __STR_LIT_1069 = new StringValue("0180");
public static final StringValue __STR_LIT_1070 = new StringValue("0190");
public static final StringValue __STR_LIT_1071 = new StringValue("0372");
public static final StringValue __STR_LIT_1072 = new StringValue("0373");
public static final StringValue __STR_LIT_1073 = new StringValue("0390");
public static final StringValue __STR_LIT_1074 = new StringValue("0511");
public static final StringValue __STR_LIT_1075 = new StringValue("0552");
public static final StringValue __STR_LIT_1076 = new StringValue("0580");
public static final StringValue __STR_LIT_1077 = new StringValue("0590");
public static final StringValue __STR_LIT_1078 = new StringValue("0630");
public static final StringValue __STR_LIT_1079 = new StringValue("0670");
public static final StringValue __STR_LIT_1080 = new StringValue("0680");
public static final StringValue __STR_LIT_1081 = new StringValue("0690");
public static final StringValue __STR_LIT_1082 = new StringValue("0910");
public static final StringValue __STR_LIT_1083 = new StringValue("1010");
public static final StringValue __STR_LIT_1084 = new StringValue("1060");
public static final StringValue __STR_LIT_1085 = new StringValue("1150");
public static final StringValue __STR_LIT_1086 = new StringValue("1160");
public static final StringValue __STR_LIT_1087 = new StringValue("1170");
public static final StringValue __STR_LIT_1088 = new StringValue("1180");
public static final StringValue __STR_LIT_1089 = new StringValue("1190");
public static final StringValue __STR_LIT_1090 = new StringValue("1200");
public static final StringValue __STR_LIT_1091 = new StringValue("1210");
public static final StringValue __STR_LIT_1092 = new StringValue("1211");
public static final StringValue __STR_LIT_1093 = new StringValue("1222");
public static final StringValue __STR_LIT_1094 = new StringValue("1230");
public static final StringValue __STR_LIT_1095 = new StringValue("1250");
public static final StringValue __STR_LIT_1096 = new StringValue("1252");
public static final StringValue __STR_LIT_1097 = new StringValue("1260");
public static final StringValue __STR_LIT_1098 = new StringValue("1323");
public static final StringValue __STR_LIT_1099 = new StringValue("1440");
public static final StringValue __STR_LIT_1100 = new StringValue("1460");
public static final StringValue __STR_LIT_1101 = new StringValue("1530");
public static final StringValue __STR_LIT_1102 = new StringValue("1542");
public static final StringValue __STR_LIT_1103 = new StringValue("1632");
public static final StringValue __STR_LIT_1104 = new StringValue("1633");
public static final StringValue __STR_LIT_1105 = new StringValue("1634");
public static final StringValue __STR_LIT_1106 = new StringValue("1690");
public static final StringValue __STR_LIT_1107 = new StringValue("1700");
public static final StringValue __STR_LIT_1108 = new StringValue("1730");
public static final StringValue __STR_LIT_1109 = new StringValue("1740");
public static final StringValue __STR_LIT_1110 = new StringValue("1800");
public static final StringValue __STR_LIT_1111 = new StringValue("1960");
public static final StringValue __STR_LIT_1112 = new StringValue("2000");
public static final StringValue __STR_LIT_1113 = new StringValue("2020");
public static final StringValue __STR_LIT_1114 = new StringValue("2030");
public static final StringValue __STR_LIT_1115 = new StringValue("2040");
public static final StringValue __STR_LIT_1116 = new StringValue("2050");
public static final StringValue __STR_LIT_1117 = new StringValue("2060");
public static final StringValue __STR_LIT_1118 = new StringValue("2170");
public static final StringValue __STR_LIT_1119 = new StringValue("2200");
public static final StringValue __STR_LIT_1120 = new StringValue("2300");
public static final StringValue __STR_LIT_1121 = new StringValue("2420");
public static final StringValue __STR_LIT_1122 = new StringValue("2430");
public static final StringValue __STR_LIT_1123 = new StringValue("2500");
public static final StringValue __STR_LIT_1124 = new StringValue("2530");
public static final StringValue __STR_LIT_1125 = new StringValue("2550");
public static final StringValue __STR_LIT_1126 = new StringValue("2561");
public static final StringValue __STR_LIT_1127 = new StringValue("2571");
public static final StringValue __STR_LIT_1128 = new StringValue("2572");
public static final StringValue __STR_LIT_1129 = new StringValue("2573");
public static final StringValue __STR_LIT_1130 = new StringValue("2581");
public static final StringValue __STR_LIT_1131 = new StringValue("2582");
public static final StringValue __STR_LIT_1132 = new StringValue("2583");
public static final StringValue __STR_LIT_1133 = new StringValue("2600");
public static final StringValue __STR_LIT_1134 = new StringValue("2620");
public static final StringValue __STR_LIT_1135 = new StringValue("2630");
public static final StringValue __STR_LIT_1136 = new StringValue("2640");
public static final StringValue __STR_LIT_1137 = new StringValue("2650");
public static final StringValue __STR_LIT_1138 = new StringValue("2670");
public static final StringValue __STR_LIT_1139 = new StringValue("2690");
public static final StringValue __STR_LIT_1140 = new StringValue("2700");
public static final StringValue __STR_LIT_1141 = new StringValue("2710");
public static final StringValue __STR_LIT_1142 = new StringValue("2720");
public static final StringValue __STR_LIT_1143 = new StringValue("2730");
public static final StringValue __STR_LIT_1144 = new StringValue("2760");
public static final StringValue __STR_LIT_1145 = new StringValue("2770");
public static final StringValue __STR_LIT_1146 = new StringValue("2800");
public static final StringValue __STR_LIT_1147 = new StringValue("2810");
public static final StringValue __STR_LIT_1148 = new StringValue("2830");
public static final StringValue __STR_LIT_1149 = new StringValue("2850");
public static final StringValue __STR_LIT_1150 = new StringValue("2860");
public static final StringValue __STR_LIT_1151 = new StringValue("2870");
public static final StringValue __STR_LIT_1152 = new StringValue("2880");
public static final StringValue __STR_LIT_1153 = new StringValue("2890");
public static final StringValue __STR_LIT_1154 = new StringValue("2920");
public static final StringValue __STR_LIT_1155 = new StringValue("2940");
public static final StringValue __STR_LIT_1156 = new StringValue("2950");
public static final StringValue __STR_LIT_1157 = new StringValue("2960");
public static final StringValue __STR_LIT_1158 = new StringValue("2980");
public static final StringValue __STR_LIT_1159 = new StringValue("3011");
public static final StringValue __STR_LIT_1160 = new StringValue("3030");
public static final StringValue __STR_LIT_1161 = new StringValue("3100");
public static final StringValue __STR_LIT_1162 = new StringValue("3370");
public static final StringValue __STR_LIT_1163 = new StringValue("3660");
public static final StringValue __STR_LIT_1164 = new StringValue("3680");
public static final StringValue __STR_LIT_1165 = new StringValue("3700");
public static final StringValue __STR_LIT_1166 = new StringValue("3780");
public static final StringValue __STR_LIT_1167 = new StringValue("3930");
public static final StringValue __STR_LIT_1168 = new StringValue("3940");
public static final StringValue __STR_LIT_1169 = new StringValue("3950");

539
src/de/statspez/plausi/generated/Plausi_ERHEBUNG_STUDENTEN_PRUEFUNGEN_AB_2017.java

File diff suppressed because one or more lines are too long

12749
src/de/statspez/plausi/generated/Plausi_ERHEBUNG_STUDENTEN_PRUEFUNGEN_AB_2017.xml

File diff suppressed because it is too large Load Diff

BIN
src/de/statspez/plausi/generated/Plausi_ERHEBUNG_STUDENTEN_PRUEFUNGEN_AB_2017_Descriptor.data

Binary file not shown.

786
src/de/statspez/plausi/generated/Plausi_ERHEBUNG_STUDENTEN_PRUEFUNGEN_AB_2017_Segment1.java

@ -244,261 +244,255 @@ public class Plausi_ERHEBUNG_STUDENTEN_PRUEFUNGEN_AB_2017_Segment1 @@ -244,261 +244,255 @@ public class Plausi_ERHEBUNG_STUDENTEN_PRUEFUNGEN_AB_2017_Segment1
public static final StringValue __STR_LIT_1185 = new StringValue("555");
public static final StringValue __STR_LIT_1186 = new StringValue("3980");
public static final StringValue __STR_LIT_1187 = new StringValue("3990");
public static final StringValue __STR_LIT_1188 = new StringValue("4680");
public static final StringValue __STR_LIT_1189 = new StringValue("4720");
public static final StringValue __STR_LIT_1190 = new StringValue("4730");
public static final StringValue __STR_LIT_1191 = new StringValue("4740");
public static final StringValue __STR_LIT_1192 = new StringValue("4750");
public static final StringValue __STR_LIT_1193 = new StringValue("4760");
public static final StringValue __STR_LIT_1194 = new StringValue("4770");
public static final StringValue __STR_LIT_1195 = new StringValue("4780");
public static final StringValue __STR_LIT_1196 = new StringValue("4790");
public static final StringValue __STR_LIT_1197 = new StringValue("4800");
public static final StringValue __STR_LIT_1198 = new StringValue("4810");
public static final StringValue __STR_LIT_1199 = new StringValue("4820");
public static final StringValue __STR_LIT_1200 = new StringValue("4830");
public static final StringValue __STR_LIT_1201 = new StringValue("4840");
public static final StringValue __STR_LIT_1202 = new StringValue("4850");
public static final StringValue __STR_LIT_1203 = new StringValue("4860");
public static final StringValue __STR_LIT_1204 = new StringValue("4870");
public static final StringValue __STR_LIT_1205 = new StringValue("4880");
public static final StringValue __STR_LIT_1206 = new StringValue("4890");
public static final StringValue __STR_LIT_1207 = new StringValue("4900");
public static final StringValue __STR_LIT_1208 = new StringValue("4910");
public static final StringValue __STR_LIT_1209 = new StringValue("4920");
public static final StringValue __STR_LIT_1210 = new StringValue("4930");
public static final StringValue __STR_LIT_1188 = new StringValue("4730");
public static final StringValue __STR_LIT_1189 = new StringValue("4740");
public static final StringValue __STR_LIT_1190 = new StringValue("4750");
public static final StringValue __STR_LIT_1191 = new StringValue("4760");
public static final StringValue __STR_LIT_1192 = new StringValue("4770");
public static final StringValue __STR_LIT_1193 = new StringValue("4780");
public static final StringValue __STR_LIT_1194 = new StringValue("4790");
public static final StringValue __STR_LIT_1195 = new StringValue("4800");
public static final StringValue __STR_LIT_1196 = new StringValue("4810");
public static final StringValue __STR_LIT_1197 = new StringValue("4820");
public static final StringValue __STR_LIT_1198 = new StringValue("4830");
public static final StringValue __STR_LIT_1199 = new StringValue("4840");
public static final StringValue __STR_LIT_1200 = new StringValue("4850");
public static final StringValue __STR_LIT_1201 = new StringValue("4860");
public static final StringValue __STR_LIT_1202 = new StringValue("4870");
public static final StringValue __STR_LIT_1203 = new StringValue("4880");
public static final StringValue __STR_LIT_1204 = new StringValue("4890");
public static final StringValue __STR_LIT_1205 = new StringValue("4900");
public static final StringValue __STR_LIT_1206 = new StringValue("4910");
public static final StringValue __STR_LIT_1207 = new StringValue("4920");
public static final StringValue __STR_LIT_1208 = new StringValue("4930");
public static final NumberValue __NUM_LIT_54 = new NumberValue(4000.0);
public static final NumberValue __NUM_LIT_55 = new NumberValue(4001.0);
public static final NumberValue __NUM_LIT_56 = new NumberValue(4002.0);
public static final NumberValue __NUM_LIT_57 = new NumberValue(4500.0);
public static final NumberValue __NUM_LIT_58 = new NumberValue(9500.0);
public static final StringValue __STR_LIT_1211 = new StringValue("409A");
public static final StringValue __STR_LIT_1212 = new StringValue("409B");
public static final StringValue __STR_LIT_1213 = new StringValue("409C");
public static final StringValue __STR_LIT_1214 = new StringValue("409D");
public static final StringValue __STR_LIT_1215 = new StringValue("409E");
public static final StringValue __STR_LIT_1209 = new StringValue("409A");
public static final StringValue __STR_LIT_1210 = new StringValue("409B");
public static final StringValue __STR_LIT_1211 = new StringValue("409C");
public static final StringValue __STR_LIT_1212 = new StringValue("409D");
public static final StringValue __STR_LIT_1213 = new StringValue("409E");
public static final NumberValue __NUM_LIT_59 = new NumberValue(0.0);
public static final NumberValue __NUM_LIT_60 = new NumberValue(1923.0);
public static final StringValue __STR_LIT_1216 = new StringValue("186");
public static final StringValue __STR_LIT_1217 = new StringValue("187");
public static final StringValue __STR_LIT_1214 = new StringValue("186");
public static final StringValue __STR_LIT_1215 = new StringValue("187");
public static final NumberValue __NUM_LIT_61 = new NumberValue(14.0);
public static final NumberValue __NUM_LIT_62 = new NumberValue(20.0);
public static final StringValue __STR_LIT_1218 = new StringValue("g20");
public static final StringValue __STR_LIT_1219 = new StringValue("688");
public static final StringValue __STR_LIT_1216 = new StringValue("g20");
public static final StringValue __STR_LIT_1217 = new StringValue("688");
public static final NumberValue __NUM_LIT_63 = new NumberValue(3980.0);
public static final NumberValue __NUM_LIT_64 = new NumberValue(3990.0);
public static final StringValue __STR_LIT_1220 = new StringValue("900");
public static final StringValue __STR_LIT_1221 = new StringValue("202509");
public static final StringValue __STR_LIT_1222 = new StringValue("202510");
public static final StringValue __STR_LIT_1218 = new StringValue("900");
public static final StringValue __STR_LIT_1219 = new StringValue("202509");
public static final StringValue __STR_LIT_1220 = new StringValue("202510");
public static final NumberValue __NUM_LIT_65 = new NumberValue(1930.0);
public static final NumberValue __NUM_LIT_66 = new NumberValue(1931.0);
public static final StringValue __STR_LIT_1223 = new StringValue("0801");
public static final StringValue __STR_LIT_1224 = new StringValue("0802");
public static final StringValue __STR_LIT_1225 = new StringValue("0803");
public static final StringValue __STR_LIT_1226 = new StringValue("0804");
public static final StringValue __STR_LIT_1227 = new StringValue("0805");
public static final StringValue __STR_LIT_1228 = new StringValue("0806");
public static final StringValue __STR_LIT_1229 = new StringValue("0807");
public static final StringValue __STR_LIT_1230 = new StringValue("0808");
public static final StringValue __STR_LIT_1231 = new StringValue("0809");
public static final StringValue __STR_LIT_1232 = new StringValue("0813");
public static final StringValue __STR_LIT_1233 = new StringValue("0814");
public static final StringValue __STR_LIT_1234 = new StringValue("0815");
public static final StringValue __STR_LIT_1235 = new StringValue("0816");
public static final StringValue __STR_LIT_1236 = new StringValue("0901");
public static final StringValue __STR_LIT_1237 = new StringValue("0902");
public static final StringValue __STR_LIT_1238 = new StringValue("0903");
public static final StringValue __STR_LIT_1239 = new StringValue("0904");
public static final StringValue __STR_LIT_1240 = new StringValue("0905");
public static final StringValue __STR_LIT_1241 = new StringValue("0906");
public static final StringValue __STR_LIT_1242 = new StringValue("0907");
public static final StringValue __STR_LIT_1243 = new StringValue("0908");
public static final StringValue __STR_LIT_1244 = new StringValue("0909");
public static final StringValue __STR_LIT_1245 = new StringValue("0910");
public static final StringValue __STR_LIT_1246 = new StringValue("0911");
public static final StringValue __STR_LIT_1247 = new StringValue("0912");
public static final StringValue __STR_LIT_1248 = new StringValue("0913");
public static final StringValue __STR_LIT_1249 = new StringValue("0914");
public static final StringValue __STR_LIT_1250 = new StringValue("0915");
public static final StringValue __STR_LIT_1251 = new StringValue("0916");
public static final StringValue __STR_LIT_1252 = new StringValue("20171");
public static final StringValue __STR_LIT_1253 = new StringValue("20172");
public static final StringValue __STR_LIT_1254 = new StringValue("240");
public static final StringValue __STR_LIT_1255 = new StringValue("22025");
public static final StringValue __STR_LIT_1256 = new StringValue("0039");
public static final StringValue __STR_LIT_1257 = new StringValue("20");
public static final StringValue __STR_LIT_1258 = new StringValue("0011");
public static final StringValue __STR_LIT_1259 = new StringValue("0012");
public static final StringValue __STR_LIT_1260 = new StringValue("0020");
public static final StringValue __STR_LIT_1261 = new StringValue("0035");
public static final StringValue __STR_LIT_1262 = new StringValue("0082");
public static final StringValue __STR_LIT_1263 = new StringValue("0180");
public static final StringValue __STR_LIT_1264 = new StringValue("0390");
public static final StringValue __STR_LIT_1265 = new StringValue("0552");
public static final StringValue __STR_LIT_1266 = new StringValue("0590");
public static final StringValue __STR_LIT_1267 = new StringValue("0630");
public static final StringValue __STR_LIT_1268 = new StringValue("0670");
public static final StringValue __STR_LIT_1269 = new StringValue("0730");
public static final StringValue __STR_LIT_1270 = new StringValue("0780");
public static final StringValue __STR_LIT_1271 = new StringValue("0860");
public static final StringValue __STR_LIT_1272 = new StringValue("0930");
public static final StringValue __STR_LIT_1273 = new StringValue("1010");
public static final StringValue __STR_LIT_1274 = new StringValue("1191");
public static final StringValue __STR_LIT_1275 = new StringValue("1210");
public static final StringValue __STR_LIT_1276 = new StringValue("1410");
public static final StringValue __STR_LIT_1277 = new StringValue("1500");
public static final StringValue __STR_LIT_1278 = new StringValue("1510");
public static final StringValue __STR_LIT_1279 = new StringValue("1561");
public static final StringValue __STR_LIT_1280 = new StringValue("1820");
public static final StringValue __STR_LIT_1281 = new StringValue("1870");
public static final StringValue __STR_LIT_1282 = new StringValue("1921");
public static final StringValue __STR_LIT_1283 = new StringValue("2050");
public static final StringValue __STR_LIT_1284 = new StringValue("2200");
public static final StringValue __STR_LIT_1285 = new StringValue("2240");
public static final StringValue __STR_LIT_1286 = new StringValue("2280");
public static final StringValue __STR_LIT_1287 = new StringValue("2350");
public static final StringValue __STR_LIT_1288 = new StringValue("2500");
public static final StringValue __STR_LIT_1289 = new StringValue("2520");
public static final StringValue __STR_LIT_1290 = new StringValue("2600");
public static final StringValue __STR_LIT_1291 = new StringValue("2800");
public static final StringValue __STR_LIT_1292 = new StringValue("3030");
public static final StringValue __STR_LIT_1293 = new StringValue("3090");
public static final StringValue __STR_LIT_1294 = new StringValue("3092");
public static final StringValue __STR_LIT_1295 = new StringValue("3790");
public static final StringValue __STR_LIT_1296 = new StringValue("3880");
public static final StringValue __STR_LIT_1297 = new StringValue("4940");
public static final StringValue __STR_LIT_1298 = new StringValue("4950");
public static final StringValue __STR_LIT_1299 = new StringValue("5090");
public static final StringValue __STR_LIT_1300 = new StringValue("5100");
public static final StringValue __STR_LIT_1301 = new StringValue("5110");
public static final StringValue __STR_LIT_1302 = new StringValue("5120");
public static final StringValue __STR_LIT_1303 = new StringValue("5152");
public static final StringValue __STR_LIT_1304 = new StringValue("5161");
public static final StringValue __STR_LIT_1305 = new StringValue("5162");
public static final StringValue __STR_LIT_1306 = new StringValue("5163");
public static final StringValue __STR_LIT_1307 = new StringValue("5260");
public static final StringValue __STR_LIT_1308 = new StringValue("5313");
public static final StringValue __STR_LIT_1309 = new StringValue("5314");
public static final StringValue __STR_LIT_1310 = new StringValue("5400");
public static final StringValue __STR_LIT_1311 = new StringValue("5660");
public static final StringValue __STR_LIT_1312 = new StringValue("5690");
public static final StringValue __STR_LIT_1313 = new StringValue("5721");
public static final StringValue __STR_LIT_1314 = new StringValue("5726");
public static final StringValue __STR_LIT_1315 = new StringValue("5727");
public static final StringValue __STR_LIT_1316 = new StringValue("5770");
public static final StringValue __STR_LIT_1317 = new StringValue("5820");
public static final StringValue __STR_LIT_1318 = new StringValue("5821");
public static final StringValue __STR_LIT_1319 = new StringValue("5822");
public static final StringValue __STR_LIT_1320 = new StringValue("6206");
public static final StringValue __STR_LIT_1321 = new StringValue("6211");
public static final StringValue __STR_LIT_1322 = new StringValue("6220");
public static final StringValue __STR_LIT_1323 = new StringValue("6231");
public static final StringValue __STR_LIT_1324 = new StringValue("6232");
public static final StringValue __STR_LIT_1325 = new StringValue("6233");
public static final StringValue __STR_LIT_1326 = new StringValue("6290");
public static final StringValue __STR_LIT_1327 = new StringValue("6281");
public static final StringValue __STR_LIT_1328 = new StringValue("6344");
public static final StringValue __STR_LIT_1329 = new StringValue("6370");
public static final StringValue __STR_LIT_1330 = new StringValue("6381");
public static final StringValue __STR_LIT_1331 = new StringValue("6401");
public static final StringValue __STR_LIT_1332 = new StringValue("6402");
public static final StringValue __STR_LIT_1333 = new StringValue("6432");
public static final StringValue __STR_LIT_1334 = new StringValue("6510");
public static final StringValue __STR_LIT_1335 = new StringValue("6523");
public static final StringValue __STR_LIT_1336 = new StringValue("6531");
public static final StringValue __STR_LIT_1337 = new StringValue("6533");
public static final StringValue __STR_LIT_1338 = new StringValue("6660");
public static final StringValue __STR_LIT_1339 = new StringValue("6680");
public static final StringValue __STR_LIT_1340 = new StringValue("6830");
public static final StringValue __STR_LIT_1341 = new StringValue("6841");
public static final StringValue __STR_LIT_1342 = new StringValue("6842");
public static final StringValue __STR_LIT_1343 = new StringValue("7351");
public static final StringValue __STR_LIT_1344 = new StringValue("7700");
public static final StringValue __STR_LIT_1345 = new StringValue("7722");
public static final StringValue __STR_LIT_1346 = new StringValue("7730");
public static final StringValue __STR_LIT_1347 = new StringValue("7780");
public static final StringValue __STR_LIT_1348 = new StringValue("7790");
public static final StringValue __STR_LIT_1349 = new StringValue("7820");
public static final StringValue __STR_LIT_1350 = new StringValue("7830");
public static final StringValue __STR_LIT_1351 = new StringValue("7910");
public static final StringValue __STR_LIT_1352 = new StringValue("7920");
public static final StringValue __STR_LIT_1353 = new StringValue("7931");
public static final StringValue __STR_LIT_1354 = new StringValue("7932");
public static final StringValue __STR_LIT_1355 = new StringValue("7940");
public static final StringValue __STR_LIT_1356 = new StringValue("7950");
public static final StringValue __STR_LIT_1357 = new StringValue("7960");
public static final StringValue __STR_LIT_1358 = new StringValue("7961");
public static final StringValue __STR_LIT_1359 = new StringValue("8000");
public static final StringValue __STR_LIT_1360 = new StringValue("8011");
public static final StringValue __STR_LIT_1361 = new StringValue("8021");
public static final StringValue __STR_LIT_1362 = new StringValue("8031");
public static final StringValue __STR_LIT_1363 = new StringValue("8032");
public static final StringValue __STR_LIT_1364 = new StringValue("8033");
public static final StringValue __STR_LIT_1365 = new StringValue("8080");
public static final StringValue __STR_LIT_1366 = new StringValue("8081");
public static final StringValue __STR_LIT_1367 = new StringValue("8101");
public static final StringValue __STR_LIT_1368 = new StringValue("8102");
public static final StringValue __STR_LIT_1369 = new StringValue("8103");
public static final StringValue __STR_LIT_1370 = new StringValue("8104");
public static final StringValue __STR_LIT_1371 = new StringValue("8105");
public static final StringValue __STR_LIT_1372 = new StringValue("8106");
public static final StringValue __STR_LIT_1373 = new StringValue("8107");
public static final StringValue __STR_LIT_1374 = new StringValue("8108");
public static final StringValue __STR_LIT_1375 = new StringValue("8109");
public static final StringValue __STR_LIT_1376 = new StringValue("810A");
public static final StringValue __STR_LIT_1377 = new StringValue("810B");
public static final StringValue __STR_LIT_1378 = new StringValue("810C");
public static final StringValue __STR_LIT_1379 = new StringValue("810D");
public static final StringValue __STR_LIT_1380 = new StringValue("810E");
public static final StringValue __STR_LIT_1381 = new StringValue("810F");
public static final StringValue __STR_LIT_1382 = new StringValue("810G");
public static final StringValue __STR_LIT_1383 = new StringValue("810H");
public static final StringValue __STR_LIT_1384 = new StringValue("8210");
public static final StringValue __STR_LIT_1385 = new StringValue("8230");
public static final StringValue __STR_LIT_1386 = new StringValue("130");
public static final StringValue __STR_LIT_1387 = new StringValue("162");
public static final StringValue __STR_LIT_1388 = new StringValue("166");
public static final StringValue __STR_LIT_1389 = new StringValue("1M1");
public static final StringValue __STR_LIT_1390 = new StringValue("1M2");
public static final StringValue __STR_LIT_1391 = new StringValue("1M3");
public static final StringValue __STR_LIT_1392 = new StringValue("1M4");
public static final StringValue __STR_LIT_1393 = new StringValue("1M5");
public static final StringValue __STR_LIT_1394 = new StringValue("1M6");
public static final StringValue __STR_LIT_1221 = new StringValue("0801");
public static final StringValue __STR_LIT_1222 = new StringValue("0802");
public static final StringValue __STR_LIT_1223 = new StringValue("0803");
public static final StringValue __STR_LIT_1224 = new StringValue("0804");
public static final StringValue __STR_LIT_1225 = new StringValue("0805");
public static final StringValue __STR_LIT_1226 = new StringValue("0806");
public static final StringValue __STR_LIT_1227 = new StringValue("0807");
public static final StringValue __STR_LIT_1228 = new StringValue("0808");
public static final StringValue __STR_LIT_1229 = new StringValue("0809");
public static final StringValue __STR_LIT_1230 = new StringValue("0813");
public static final StringValue __STR_LIT_1231 = new StringValue("0814");
public static final StringValue __STR_LIT_1232 = new StringValue("0815");
public static final StringValue __STR_LIT_1233 = new StringValue("0816");
public static final StringValue __STR_LIT_1234 = new StringValue("0901");
public static final StringValue __STR_LIT_1235 = new StringValue("0902");
public static final StringValue __STR_LIT_1236 = new StringValue("0903");
public static final StringValue __STR_LIT_1237 = new StringValue("0904");
public static final StringValue __STR_LIT_1238 = new StringValue("0905");
public static final StringValue __STR_LIT_1239 = new StringValue("0906");
public static final StringValue __STR_LIT_1240 = new StringValue("0907");
public static final StringValue __STR_LIT_1241 = new StringValue("0908");
public static final StringValue __STR_LIT_1242 = new StringValue("0909");
public static final StringValue __STR_LIT_1243 = new StringValue("0910");
public static final StringValue __STR_LIT_1244 = new StringValue("0911");
public static final StringValue __STR_LIT_1245 = new StringValue("0912");
public static final StringValue __STR_LIT_1246 = new StringValue("0913");
public static final StringValue __STR_LIT_1247 = new StringValue("0914");
public static final StringValue __STR_LIT_1248 = new StringValue("0915");
public static final StringValue __STR_LIT_1249 = new StringValue("0916");
public static final StringValue __STR_LIT_1250 = new StringValue("20171");
public static final StringValue __STR_LIT_1251 = new StringValue("20172");
public static final StringValue __STR_LIT_1252 = new StringValue("240");
public static final StringValue __STR_LIT_1253 = new StringValue("20");
public static final StringValue __STR_LIT_1254 = new StringValue("0011");
public static final StringValue __STR_LIT_1255 = new StringValue("0012");
public static final StringValue __STR_LIT_1256 = new StringValue("0020");
public static final StringValue __STR_LIT_1257 = new StringValue("0035");
public static final StringValue __STR_LIT_1258 = new StringValue("0082");
public static final StringValue __STR_LIT_1259 = new StringValue("0180");
public static final StringValue __STR_LIT_1260 = new StringValue("0390");
public static final StringValue __STR_LIT_1261 = new StringValue("0552");
public static final StringValue __STR_LIT_1262 = new StringValue("0590");
public static final StringValue __STR_LIT_1263 = new StringValue("0630");
public static final StringValue __STR_LIT_1264 = new StringValue("0670");
public static final StringValue __STR_LIT_1265 = new StringValue("0730");
public static final StringValue __STR_LIT_1266 = new StringValue("0780");
public static final StringValue __STR_LIT_1267 = new StringValue("0860");
public static final StringValue __STR_LIT_1268 = new StringValue("0930");
public static final StringValue __STR_LIT_1269 = new StringValue("1010");
public static final StringValue __STR_LIT_1270 = new StringValue("1210");
public static final StringValue __STR_LIT_1271 = new StringValue("1410");
public static final StringValue __STR_LIT_1272 = new StringValue("1500");
public static final StringValue __STR_LIT_1273 = new StringValue("1510");
public static final StringValue __STR_LIT_1274 = new StringValue("1561");
public static final StringValue __STR_LIT_1275 = new StringValue("1820");
public static final StringValue __STR_LIT_1276 = new StringValue("1870");
public static final StringValue __STR_LIT_1277 = new StringValue("1921");
public static final StringValue __STR_LIT_1278 = new StringValue("2050");
public static final StringValue __STR_LIT_1279 = new StringValue("2200");
public static final StringValue __STR_LIT_1280 = new StringValue("2240");
public static final StringValue __STR_LIT_1281 = new StringValue("2280");
public static final StringValue __STR_LIT_1282 = new StringValue("2350");
public static final StringValue __STR_LIT_1283 = new StringValue("2500");
public static final StringValue __STR_LIT_1284 = new StringValue("2520");
public static final StringValue __STR_LIT_1285 = new StringValue("2600");
public static final StringValue __STR_LIT_1286 = new StringValue("2800");
public static final StringValue __STR_LIT_1287 = new StringValue("3030");
public static final StringValue __STR_LIT_1288 = new StringValue("3090");
public static final StringValue __STR_LIT_1289 = new StringValue("3092");
public static final StringValue __STR_LIT_1290 = new StringValue("3790");
public static final StringValue __STR_LIT_1291 = new StringValue("3880");
public static final StringValue __STR_LIT_1292 = new StringValue("4940");
public static final StringValue __STR_LIT_1293 = new StringValue("4950");
public static final StringValue __STR_LIT_1294 = new StringValue("5090");
public static final StringValue __STR_LIT_1295 = new StringValue("5100");
public static final StringValue __STR_LIT_1296 = new StringValue("5110");
public static final StringValue __STR_LIT_1297 = new StringValue("5120");
public static final StringValue __STR_LIT_1298 = new StringValue("5152");
public static final StringValue __STR_LIT_1299 = new StringValue("5161");
public static final StringValue __STR_LIT_1300 = new StringValue("5162");
public static final StringValue __STR_LIT_1301 = new StringValue("5163");
public static final StringValue __STR_LIT_1302 = new StringValue("5260");
public static final StringValue __STR_LIT_1303 = new StringValue("5313");
public static final StringValue __STR_LIT_1304 = new StringValue("5314");
public static final StringValue __STR_LIT_1305 = new StringValue("5400");
public static final StringValue __STR_LIT_1306 = new StringValue("5660");
public static final StringValue __STR_LIT_1307 = new StringValue("5690");
public static final StringValue __STR_LIT_1308 = new StringValue("5721");
public static final StringValue __STR_LIT_1309 = new StringValue("5726");
public static final StringValue __STR_LIT_1310 = new StringValue("5727");
public static final StringValue __STR_LIT_1311 = new StringValue("5770");
public static final StringValue __STR_LIT_1312 = new StringValue("5820");
public static final StringValue __STR_LIT_1313 = new StringValue("5821");
public static final StringValue __STR_LIT_1314 = new StringValue("5822");
public static final StringValue __STR_LIT_1315 = new StringValue("6206");
public static final StringValue __STR_LIT_1316 = new StringValue("6211");
public static final StringValue __STR_LIT_1317 = new StringValue("6220");
public static final StringValue __STR_LIT_1318 = new StringValue("6231");
public static final StringValue __STR_LIT_1319 = new StringValue("6232");
public static final StringValue __STR_LIT_1320 = new StringValue("6233");
public static final StringValue __STR_LIT_1321 = new StringValue("6290");
public static final StringValue __STR_LIT_1322 = new StringValue("6281");
public static final StringValue __STR_LIT_1323 = new StringValue("6344");
public static final StringValue __STR_LIT_1324 = new StringValue("6370");
public static final StringValue __STR_LIT_1325 = new StringValue("6381");
public static final StringValue __STR_LIT_1326 = new StringValue("6401");
public static final StringValue __STR_LIT_1327 = new StringValue("6402");
public static final StringValue __STR_LIT_1328 = new StringValue("6432");
public static final StringValue __STR_LIT_1329 = new StringValue("6510");
public static final StringValue __STR_LIT_1330 = new StringValue("6523");
public static final StringValue __STR_LIT_1331 = new StringValue("6531");
public static final StringValue __STR_LIT_1332 = new StringValue("6533");
public static final StringValue __STR_LIT_1333 = new StringValue("6660");
public static final StringValue __STR_LIT_1334 = new StringValue("6830");
public static final StringValue __STR_LIT_1335 = new StringValue("6841");
public static final StringValue __STR_LIT_1336 = new StringValue("6842");
public static final StringValue __STR_LIT_1337 = new StringValue("7351");
public static final StringValue __STR_LIT_1338 = new StringValue("7700");
public static final StringValue __STR_LIT_1339 = new StringValue("7722");
public static final StringValue __STR_LIT_1340 = new StringValue("7730");
public static final StringValue __STR_LIT_1341 = new StringValue("7780");
public static final StringValue __STR_LIT_1342 = new StringValue("7790");
public static final StringValue __STR_LIT_1343 = new StringValue("7820");
public static final StringValue __STR_LIT_1344 = new StringValue("7830");
public static final StringValue __STR_LIT_1345 = new StringValue("7910");
public static final StringValue __STR_LIT_1346 = new StringValue("7920");
public static final StringValue __STR_LIT_1347 = new StringValue("7931");
public static final StringValue __STR_LIT_1348 = new StringValue("7932");
public static final StringValue __STR_LIT_1349 = new StringValue("7940");
public static final StringValue __STR_LIT_1350 = new StringValue("7950");
public static final StringValue __STR_LIT_1351 = new StringValue("7960");
public static final StringValue __STR_LIT_1352 = new StringValue("7961");
public static final StringValue __STR_LIT_1353 = new StringValue("8000");
public static final StringValue __STR_LIT_1354 = new StringValue("8011");
public static final StringValue __STR_LIT_1355 = new StringValue("8021");
public static final StringValue __STR_LIT_1356 = new StringValue("8031");
public static final StringValue __STR_LIT_1357 = new StringValue("8032");
public static final StringValue __STR_LIT_1358 = new StringValue("8033");
public static final StringValue __STR_LIT_1359 = new StringValue("8080");
public static final StringValue __STR_LIT_1360 = new StringValue("8081");
public static final StringValue __STR_LIT_1361 = new StringValue("8101");
public static final StringValue __STR_LIT_1362 = new StringValue("8102");
public static final StringValue __STR_LIT_1363 = new StringValue("8103");
public static final StringValue __STR_LIT_1364 = new StringValue("8104");
public static final StringValue __STR_LIT_1365 = new StringValue("8105");
public static final StringValue __STR_LIT_1366 = new StringValue("8106");
public static final StringValue __STR_LIT_1367 = new StringValue("8107");
public static final StringValue __STR_LIT_1368 = new StringValue("8108");
public static final StringValue __STR_LIT_1369 = new StringValue("8109");
public static final StringValue __STR_LIT_1370 = new StringValue("810A");
public static final StringValue __STR_LIT_1371 = new StringValue("810B");
public static final StringValue __STR_LIT_1372 = new StringValue("810C");
public static final StringValue __STR_LIT_1373 = new StringValue("810D");
public static final StringValue __STR_LIT_1374 = new StringValue("810E");
public static final StringValue __STR_LIT_1375 = new StringValue("810F");
public static final StringValue __STR_LIT_1376 = new StringValue("810G");
public static final StringValue __STR_LIT_1377 = new StringValue("810H");
public static final StringValue __STR_LIT_1378 = new StringValue("8210");
public static final StringValue __STR_LIT_1379 = new StringValue("8230");
public static final StringValue __STR_LIT_1380 = new StringValue("130");
public static final StringValue __STR_LIT_1381 = new StringValue("162");
public static final StringValue __STR_LIT_1382 = new StringValue("166");
public static final StringValue __STR_LIT_1383 = new StringValue("1M1");
public static final StringValue __STR_LIT_1384 = new StringValue("1M2");
public static final StringValue __STR_LIT_1385 = new StringValue("1M3");
public static final StringValue __STR_LIT_1386 = new StringValue("1M4");
public static final StringValue __STR_LIT_1387 = new StringValue("1M5");
public static final StringValue __STR_LIT_1388 = new StringValue("1M6");
public static final NumberValue __NUM_LIT_67 = new NumberValue(101.0);
public static final NumberValue __NUM_LIT_68 = new NumberValue(199.0);
public static final NumberValue __NUM_LIT_69 = new NumberValue(899.0);
public static final StringValue __STR_LIT_1395 = new StringValue("119");
public static final StringValue __STR_LIT_1396 = new StringValue("131");
public static final StringValue __STR_LIT_1397 = new StringValue("132");
public static final StringValue __STR_LIT_1398 = new StringValue("133");
public static final StringValue __STR_LIT_1399 = new StringValue("134");
public static final StringValue __STR_LIT_1400 = new StringValue("135");
public static final StringValue __STR_LIT_1401 = new StringValue("136");
public static final StringValue __STR_LIT_1402 = new StringValue("137");
public static final StringValue __STR_LIT_1403 = new StringValue("138");
public static final StringValue __STR_LIT_1404 = new StringValue("139");
public static final StringValue __STR_LIT_1405 = new StringValue("146");
public static final StringValue __STR_LIT_1406 = new StringValue("147");
public static final StringValue __STR_LIT_1407 = new StringValue("148");
public static final StringValue __STR_LIT_1408 = new StringValue("198");
public static final StringValue __STR_LIT_1409 = new StringValue("149");
public static final StringValue __STR_LIT_1410 = new StringValue("150");
public static final StringValue __STR_LIT_1411 = new StringValue("152");
public static final StringValue __STR_LIT_1412 = new StringValue("155");
public static final StringValue __STR_LIT_1413 = new StringValue("157");
public static final StringValue __STR_LIT_1414 = new StringValue("158");
public static final StringValue __STR_LIT_1415 = new StringValue("160");
public static final StringValue __STR_LIT_1416 = new StringValue("161");
public static final StringValue __STR_LIT_1417 = new StringValue("163");
public static final StringValue __STR_LIT_1418 = new StringValue("164");
public static final StringValue __STR_LIT_1419 = new StringValue("165");
public static final StringValue __STR_LIT_1420 = new StringValue("167");
public static final StringValue __STR_LIT_1421 = new StringValue("169");
public static final StringValue __STR_LIT_1422 = new StringValue("178");
public static final StringValue __STR_LIT_1423 = new StringValue("199");
public static final StringValue __STR_LIT_1424 = new StringValue("168");
public static final StringValue __STR_LIT_1425 = new StringValue("183");
public static final StringValue __STR_LIT_1426 = new StringValue("184");
public static final StringValue __STR_LIT_1389 = new StringValue("119");
public static final StringValue __STR_LIT_1390 = new StringValue("131");
public static final StringValue __STR_LIT_1391 = new StringValue("132");
public static final StringValue __STR_LIT_1392 = new StringValue("133");
public static final StringValue __STR_LIT_1393 = new StringValue("134");
public static final StringValue __STR_LIT_1394 = new StringValue("135");
public static final StringValue __STR_LIT_1395 = new StringValue("136");
public static final StringValue __STR_LIT_1396 = new StringValue("137");
public static final StringValue __STR_LIT_1397 = new StringValue("138");
public static final StringValue __STR_LIT_1398 = new StringValue("139");
public static final StringValue __STR_LIT_1399 = new StringValue("146");
public static final StringValue __STR_LIT_1400 = new StringValue("147");
public static final StringValue __STR_LIT_1401 = new StringValue("148");
public static final StringValue __STR_LIT_1402 = new StringValue("198");
public static final StringValue __STR_LIT_1403 = new StringValue("149");
public static final StringValue __STR_LIT_1404 = new StringValue("150");
public static final StringValue __STR_LIT_1405 = new StringValue("152");
public static final StringValue __STR_LIT_1406 = new StringValue("155");
public static final StringValue __STR_LIT_1407 = new StringValue("157");
public static final StringValue __STR_LIT_1408 = new StringValue("158");
public static final StringValue __STR_LIT_1409 = new StringValue("160");
public static final StringValue __STR_LIT_1410 = new StringValue("161");
public static final StringValue __STR_LIT_1411 = new StringValue("163");
public static final StringValue __STR_LIT_1412 = new StringValue("164");
public static final StringValue __STR_LIT_1413 = new StringValue("165");
public static final StringValue __STR_LIT_1414 = new StringValue("167");
public static final StringValue __STR_LIT_1415 = new StringValue("169");
public static final StringValue __STR_LIT_1416 = new StringValue("178");
public static final StringValue __STR_LIT_1417 = new StringValue("199");
public static final StringValue __STR_LIT_1418 = new StringValue("168");
public static final StringValue __STR_LIT_1419 = new StringValue("183");
public static final StringValue __STR_LIT_1420 = new StringValue("184");
public static final NumberValue __NUM_LIT_70 = new NumberValue(15.0);
public static final NumberValue __NUM_LIT_71 = new NumberValue(16.0);
public static final NumberValue __NUM_LIT_72 = new NumberValue(19.0);
@ -522,155 +516,155 @@ public class Plausi_ERHEBUNG_STUDENTEN_PRUEFUNGEN_AB_2017_Segment1 @@ -522,155 +516,155 @@ public class Plausi_ERHEBUNG_STUDENTEN_PRUEFUNGEN_AB_2017_Segment1
public static final NumberValue __NUM_LIT_90 = new NumberValue(44.0);
public static final NumberValue __NUM_LIT_91 = new NumberValue(45.0);
public static final NumberValue __NUM_LIT_92 = new NumberValue(49.0);
public static final StringValue __STR_LIT_1427 = new StringValue("B5");
public static final StringValue __STR_LIT_1428 = new StringValue("B6");
public static final StringValue __STR_LIT_1429 = new StringValue("B7");
public static final StringValue __STR_LIT_1430 = new StringValue("B8");
public static final StringValue __STR_LIT_1431 = new StringValue("B9");
public static final StringValue __STR_LIT_1432 = new StringValue("M1");
public static final StringValue __STR_LIT_1433 = new StringValue("M2");
public static final StringValue __STR_LIT_1434 = new StringValue("M3");
public static final StringValue __STR_LIT_1435 = new StringValue("M4");
public static final StringValue __STR_LIT_1436 = new StringValue("M5");
public static final StringValue __STR_LIT_1437 = new StringValue("M6");
public static final StringValue __STR_LIT_1438 = new StringValue("M7");
public static final StringValue __STR_LIT_1439 = new StringValue("M8");
public static final StringValue __STR_LIT_1440 = new StringValue("M9");
public static final StringValue __STR_LIT_1441 = new StringValue("N1");
public static final StringValue __STR_LIT_1442 = new StringValue("N2");
public static final StringValue __STR_LIT_1443 = new StringValue("080");
public static final StringValue __STR_LIT_1444 = new StringValue("784");
public static final StringValue __STR_LIT_1445 = new StringValue("726");
public static final StringValue __STR_LIT_1446 = new StringValue("819");
public static final StringValue __STR_LIT_1447 = new StringValue("C23");
public static final StringValue __STR_LIT_1448 = new StringValue("996");
public static final StringValue __STR_LIT_1449 = new StringValue("91");
public static final StringValue __STR_LIT_1450 = new StringValue("92");
public static final StringValue __STR_LIT_1451 = new StringValue("799");
public static final StringValue __STR_LIT_1452 = new StringValue("1322000012533130");
public static final StringValue __STR_LIT_1453 = new StringValue("2490");
public static final StringValue __STR_LIT_1454 = new StringValue("194");
public static final StringValue __STR_LIT_1455 = new StringValue("294");
public static final StringValue __STR_LIT_1456 = new StringValue("394");
public static final StringValue __STR_LIT_1457 = new StringValue("494");
public static final StringValue __STR_LIT_1458 = new StringValue("694");
public static final StringValue __STR_LIT_1421 = new StringValue("B5");
public static final StringValue __STR_LIT_1422 = new StringValue("B6");
public static final StringValue __STR_LIT_1423 = new StringValue("B7");
public static final StringValue __STR_LIT_1424 = new StringValue("B8");
public static final StringValue __STR_LIT_1425 = new StringValue("B9");
public static final StringValue __STR_LIT_1426 = new StringValue("M1");
public static final StringValue __STR_LIT_1427 = new StringValue("M2");
public static final StringValue __STR_LIT_1428 = new StringValue("M3");
public static final StringValue __STR_LIT_1429 = new StringValue("M4");
public static final StringValue __STR_LIT_1430 = new StringValue("M5");
public static final StringValue __STR_LIT_1431 = new StringValue("M6");
public static final StringValue __STR_LIT_1432 = new StringValue("M7");
public static final StringValue __STR_LIT_1433 = new StringValue("M8");
public static final StringValue __STR_LIT_1434 = new StringValue("M9");
public static final StringValue __STR_LIT_1435 = new StringValue("N1");
public static final StringValue __STR_LIT_1436 = new StringValue("N2");
public static final StringValue __STR_LIT_1437 = new StringValue("080");
public static final StringValue __STR_LIT_1438 = new StringValue("784");
public static final StringValue __STR_LIT_1439 = new StringValue("726");
public static final StringValue __STR_LIT_1440 = new StringValue("819");
public static final StringValue __STR_LIT_1441 = new StringValue("996");
public static final StringValue __STR_LIT_1442 = new StringValue("91");
public static final StringValue __STR_LIT_1443 = new StringValue("92");
public static final StringValue __STR_LIT_1444 = new StringValue("799");
public static final StringValue __STR_LIT_1445 = new StringValue("1322000012533130");
public static final StringValue __STR_LIT_1446 = new StringValue("2490");
public static final StringValue __STR_LIT_1447 = new StringValue("194");
public static final StringValue __STR_LIT_1448 = new StringValue("294");
public static final StringValue __STR_LIT_1449 = new StringValue("394");
public static final StringValue __STR_LIT_1450 = new StringValue("494");
public static final StringValue __STR_LIT_1451 = new StringValue("694");
public static final NumberValue __NUM_LIT_93 = new NumberValue(18.0);
public static final StringValue __STR_LIT_1459 = new StringValue("C22");
public static final StringValue __STR_LIT_1460 = new StringValue("7250");
public static final StringValue __STR_LIT_1461 = new StringValue("g64");
public static final StringValue __STR_LIT_1462 = new StringValue("1260");
public static final StringValue __STR_LIT_1452 = new StringValue("C22");
public static final StringValue __STR_LIT_1453 = new StringValue("C23");
public static final StringValue __STR_LIT_1454 = new StringValue("7250");
public static final StringValue __STR_LIT_1455 = new StringValue("g64");
public static final StringValue __STR_LIT_1456 = new StringValue("1260");
public static final NumberValue __NUM_LIT_94 = new NumberValue(298.0);
public static final NumberValue __NUM_LIT_95 = new NumberValue(299.0);
public static final NumberValue __NUM_LIT_96 = new NumberValue(801.0);
public static final NumberValue __NUM_LIT_97 = new NumberValue(802.0);
public static final NumberValue __NUM_LIT_98 = new NumberValue(898.0);
public static final StringValue __STR_LIT_1463 = new StringValue("156");
public static final StringValue __STR_LIT_1464 = new StringValue("256");
public static final StringValue __STR_LIT_1465 = new StringValue("856");
public static final StringValue __STR_LIT_1466 = new StringValue("269");
public static final StringValue __STR_LIT_1467 = new StringValue("369");
public static final StringValue __STR_LIT_1468 = new StringValue("469");
public static final StringValue __STR_LIT_1469 = new StringValue("669");
public static final StringValue __STR_LIT_1470 = new StringValue("769");
public static final StringValue __STR_LIT_1471 = new StringValue("869");
public static final StringValue __STR_LIT_1472 = new StringValue("278");
public static final StringValue __STR_LIT_1473 = new StringValue("778");
public static final StringValue __STR_LIT_1474 = new StringValue("878");
public static final StringValue __STR_LIT_1475 = new StringValue("185");
public static final StringValue __STR_LIT_1476 = new StringValue("285");
public static final StringValue __STR_LIT_1477 = new StringValue("485");
public static final StringValue __STR_LIT_1478 = new StringValue("685");
public static final StringValue __STR_LIT_1479 = new StringValue("885");
public static final StringValue __STR_LIT_1480 = new StringValue("288");
public static final StringValue __STR_LIT_1481 = new StringValue("388");
public static final StringValue __STR_LIT_1482 = new StringValue("488");
public static final StringValue __STR_LIT_1483 = new StringValue("788");
public static final StringValue __STR_LIT_1484 = new StringValue("888");
public static final StringValue __STR_LIT_1485 = new StringValue("299");
public static final StringValue __STR_LIT_1486 = new StringValue("499");
public static final StringValue __STR_LIT_1487 = new StringValue("899");
public static final StringValue __STR_LIT_1488 = new StringValue("249");
public static final StringValue __STR_LIT_1489 = new StringValue("449");
public static final StringValue __STR_LIT_1490 = new StringValue("749");
public static final StringValue __STR_LIT_1491 = new StringValue("849");
public static final StringValue __STR_LIT_1492 = new StringValue("250");
public static final StringValue __STR_LIT_1493 = new StringValue("450");
public static final StringValue __STR_LIT_1494 = new StringValue("750");
public static final StringValue __STR_LIT_1495 = new StringValue("850");
public static final StringValue __STR_LIT_1496 = new StringValue("252");
public static final StringValue __STR_LIT_1497 = new StringValue("452");
public static final StringValue __STR_LIT_1498 = new StringValue("752");
public static final StringValue __STR_LIT_1499 = new StringValue("852");
public static final StringValue __STR_LIT_1500 = new StringValue("255");
public static final StringValue __STR_LIT_1501 = new StringValue("455");
public static final StringValue __STR_LIT_1502 = new StringValue("755");
public static final StringValue __STR_LIT_1503 = new StringValue("855");
public static final StringValue __STR_LIT_1504 = new StringValue("257");
public static final StringValue __STR_LIT_1505 = new StringValue("457");
public static final StringValue __STR_LIT_1506 = new StringValue("757");
public static final StringValue __STR_LIT_1507 = new StringValue("857");
public static final StringValue __STR_LIT_1508 = new StringValue("258");
public static final StringValue __STR_LIT_1509 = new StringValue("458");
public static final StringValue __STR_LIT_1510 = new StringValue("758");
public static final StringValue __STR_LIT_1511 = new StringValue("858");
public static final StringValue __STR_LIT_1512 = new StringValue("260");
public static final StringValue __STR_LIT_1513 = new StringValue("460");
public static final StringValue __STR_LIT_1514 = new StringValue("760");
public static final StringValue __STR_LIT_1515 = new StringValue("860");
public static final StringValue __STR_LIT_1516 = new StringValue("261");
public static final StringValue __STR_LIT_1517 = new StringValue("461");
public static final StringValue __STR_LIT_1518 = new StringValue("761");
public static final StringValue __STR_LIT_1519 = new StringValue("861");
public static final StringValue __STR_LIT_1520 = new StringValue("262");
public static final StringValue __STR_LIT_1521 = new StringValue("462");
public static final StringValue __STR_LIT_1522 = new StringValue("762");
public static final StringValue __STR_LIT_1523 = new StringValue("862");
public static final StringValue __STR_LIT_1524 = new StringValue("264");
public static final StringValue __STR_LIT_1525 = new StringValue("464");
public static final StringValue __STR_LIT_1526 = new StringValue("764");
public static final StringValue __STR_LIT_1527 = new StringValue("864");
public static final StringValue __STR_LIT_1528 = new StringValue("263");
public static final StringValue __STR_LIT_1529 = new StringValue("463");
public static final StringValue __STR_LIT_1530 = new StringValue("763");
public static final StringValue __STR_LIT_1531 = new StringValue("863");
public static final StringValue __STR_LIT_1532 = new StringValue("265");
public static final StringValue __STR_LIT_1533 = new StringValue("465");
public static final StringValue __STR_LIT_1534 = new StringValue("765");
public static final StringValue __STR_LIT_1535 = new StringValue("865");
public static final StringValue __STR_LIT_1536 = new StringValue("266");
public static final StringValue __STR_LIT_1537 = new StringValue("466");
public static final StringValue __STR_LIT_1538 = new StringValue("766");
public static final StringValue __STR_LIT_1539 = new StringValue("866");
public static final StringValue __STR_LIT_1540 = new StringValue("267");
public static final StringValue __STR_LIT_1541 = new StringValue("467");
public static final StringValue __STR_LIT_1542 = new StringValue("767");
public static final StringValue __STR_LIT_1543 = new StringValue("867");
public static final StringValue __STR_LIT_1544 = new StringValue("230");
public static final StringValue __STR_LIT_1545 = new StringValue("330");
public static final StringValue __STR_LIT_1546 = new StringValue("430");
public static final StringValue __STR_LIT_1547 = new StringValue("630");
public static final StringValue __STR_LIT_1548 = new StringValue("730");
public static final StringValue __STR_LIT_1549 = new StringValue("830");
public static final StringValue __STR_LIT_1550 = new StringValue("286");
public static final StringValue __STR_LIT_1551 = new StringValue("886");
public static final StringValue __STR_LIT_1552 = new StringValue("289");
public static final StringValue __STR_LIT_1553 = new StringValue("389");
public static final StringValue __STR_LIT_1554 = new StringValue("789");
public static final StringValue __STR_LIT_1555 = new StringValue("889");
public static final StringValue __STR_LIT_1556 = new StringValue("287");
public static final StringValue __STR_LIT_1557 = new StringValue("487");
public static final StringValue __STR_LIT_1558 = new StringValue("687");
public static final StringValue __STR_LIT_1559 = new StringValue("887");
public static final StringValue __STR_LIT_1560 = new StringValue("390");
public static final StringValue __STR_LIT_1561 = new StringValue("490");
public static final StringValue __STR_LIT_1562 = new StringValue("690");
public static final StringValue __STR_LIT_1563 = new StringValue("790");
public static final StringValue __STR_LIT_1564 = new StringValue("890");
public static final StringValue __STR_LIT_1457 = new StringValue("156");
public static final StringValue __STR_LIT_1458 = new StringValue("256");
public static final StringValue __STR_LIT_1459 = new StringValue("856");
public static final StringValue __STR_LIT_1460 = new StringValue("269");
public static final StringValue __STR_LIT_1461 = new StringValue("369");
public static final StringValue __STR_LIT_1462 = new StringValue("469");
public static final StringValue __STR_LIT_1463 = new StringValue("669");
public static final StringValue __STR_LIT_1464 = new StringValue("769");
public static final StringValue __STR_LIT_1465 = new StringValue("869");
public static final StringValue __STR_LIT_1466 = new StringValue("278");
public static final StringValue __STR_LIT_1467 = new StringValue("778");
public static final StringValue __STR_LIT_1468 = new StringValue("878");
public static final StringValue __STR_LIT_1469 = new StringValue("185");
public static final StringValue __STR_LIT_1470 = new StringValue("285");
public static final StringValue __STR_LIT_1471 = new StringValue("485");
public static final StringValue __STR_LIT_1472 = new StringValue("685");
public static final StringValue __STR_LIT_1473 = new StringValue("885");
public static final StringValue __STR_LIT_1474 = new StringValue("288");
public static final StringValue __STR_LIT_1475 = new StringValue("388");
public static final StringValue __STR_LIT_1476 = new StringValue("488");
public static final StringValue __STR_LIT_1477 = new StringValue("788");
public static final StringValue __STR_LIT_1478 = new StringValue("888");
public static final StringValue __STR_LIT_1479 = new StringValue("299");
public static final StringValue __STR_LIT_1480 = new StringValue("499");
public static final StringValue __STR_LIT_1481 = new StringValue("899");
public static final StringValue __STR_LIT_1482 = new StringValue("249");
public static final StringValue __STR_LIT_1483 = new StringValue("449");
public static final StringValue __STR_LIT_1484 = new StringValue("749");
public static final StringValue __STR_LIT_1485 = new StringValue("849");
public static final StringValue __STR_LIT_1486 = new StringValue("250");
public static final StringValue __STR_LIT_1487 = new StringValue("450");
public static final StringValue __STR_LIT_1488 = new StringValue("750");
public static final StringValue __STR_LIT_1489 = new StringValue("850");
public static final StringValue __STR_LIT_1490 = new StringValue("252");
public static final StringValue __STR_LIT_1491 = new StringValue("452");
public static final StringValue __STR_LIT_1492 = new StringValue("752");
public static final StringValue __STR_LIT_1493 = new StringValue("852");
public static final StringValue __STR_LIT_1494 = new StringValue("255");
public static final StringValue __STR_LIT_1495 = new StringValue("455");
public static final StringValue __STR_LIT_1496 = new StringValue("755");
public static final StringValue __STR_LIT_1497 = new StringValue("855");
public static final StringValue __STR_LIT_1498 = new StringValue("257");
public static final StringValue __STR_LIT_1499 = new StringValue("457");
public static final StringValue __STR_LIT_1500 = new StringValue("757");
public static final StringValue __STR_LIT_1501 = new StringValue("857");
public static final StringValue __STR_LIT_1502 = new StringValue("258");
public static final StringValue __STR_LIT_1503 = new StringValue("458");
public static final StringValue __STR_LIT_1504 = new StringValue("758");
public static final StringValue __STR_LIT_1505 = new StringValue("858");
public static final StringValue __STR_LIT_1506 = new StringValue("260");
public static final StringValue __STR_LIT_1507 = new StringValue("460");
public static final StringValue __STR_LIT_1508 = new StringValue("760");
public static final StringValue __STR_LIT_1509 = new StringValue("860");
public static final StringValue __STR_LIT_1510 = new StringValue("261");
public static final StringValue __STR_LIT_1511 = new StringValue("461");
public static final StringValue __STR_LIT_1512 = new StringValue("761");
public static final StringValue __STR_LIT_1513 = new StringValue("861");
public static final StringValue __STR_LIT_1514 = new StringValue("262");
public static final StringValue __STR_LIT_1515 = new StringValue("462");
public static final StringValue __STR_LIT_1516 = new StringValue("762");
public static final StringValue __STR_LIT_1517 = new StringValue("862");
public static final StringValue __STR_LIT_1518 = new StringValue("264");
public static final StringValue __STR_LIT_1519 = new StringValue("464");
public static final StringValue __STR_LIT_1520 = new StringValue("764");
public static final StringValue __STR_LIT_1521 = new StringValue("864");
public static final StringValue __STR_LIT_1522 = new StringValue("263");
public static final StringValue __STR_LIT_1523 = new StringValue("463");
public static final StringValue __STR_LIT_1524 = new StringValue("763");
public static final StringValue __STR_LIT_1525 = new StringValue("863");
public static final StringValue __STR_LIT_1526 = new StringValue("265");
public static final StringValue __STR_LIT_1527 = new StringValue("465");
public static final StringValue __STR_LIT_1528 = new StringValue("765");
public static final StringValue __STR_LIT_1529 = new StringValue("865");
public static final StringValue __STR_LIT_1530 = new StringValue("266");
public static final StringValue __STR_LIT_1531 = new StringValue("466");
public static final StringValue __STR_LIT_1532 = new StringValue("766");
public static final StringValue __STR_LIT_1533 = new StringValue("866");
public static final StringValue __STR_LIT_1534 = new StringValue("267");
public static final StringValue __STR_LIT_1535 = new StringValue("467");
public static final StringValue __STR_LIT_1536 = new StringValue("767");
public static final StringValue __STR_LIT_1537 = new StringValue("867");
public static final StringValue __STR_LIT_1538 = new StringValue("230");
public static final StringValue __STR_LIT_1539 = new StringValue("330");
public static final StringValue __STR_LIT_1540 = new StringValue("430");
public static final StringValue __STR_LIT_1541 = new StringValue("630");
public static final StringValue __STR_LIT_1542 = new StringValue("730");
public static final StringValue __STR_LIT_1543 = new StringValue("830");
public static final StringValue __STR_LIT_1544 = new StringValue("286");
public static final StringValue __STR_LIT_1545 = new StringValue("886");
public static final StringValue __STR_LIT_1546 = new StringValue("289");
public static final StringValue __STR_LIT_1547 = new StringValue("389");
public static final StringValue __STR_LIT_1548 = new StringValue("789");
public static final StringValue __STR_LIT_1549 = new StringValue("889");
public static final StringValue __STR_LIT_1550 = new StringValue("287");
public static final StringValue __STR_LIT_1551 = new StringValue("487");
public static final StringValue __STR_LIT_1552 = new StringValue("687");
public static final StringValue __STR_LIT_1553 = new StringValue("887");
public static final StringValue __STR_LIT_1554 = new StringValue("390");
public static final StringValue __STR_LIT_1555 = new StringValue("490");
public static final StringValue __STR_LIT_1556 = new StringValue("690");
public static final StringValue __STR_LIT_1557 = new StringValue("790");
public static final StringValue __STR_LIT_1558 = new StringValue("890");
public static final NumberValue __NUM_LIT_99 = new NumberValue(5.0E7);
public static final NumberValue __NUM_LIT_100 = new NumberValue(5.0000001E7);
public static final NumberValue __NUM_LIT_101 = new NumberValue(5.9999999E7);
public static final StringValue __STR_LIT_1565 = new StringValue("87");
public static final StringValue __STR_LIT_1566 = new StringValue("97");
public static final StringValue __STR_LIT_1559 = new StringValue("87");
public static final StringValue __STR_LIT_1560 = new StringValue("97");
public static final NumberValue __NUM_LIT_102 = new NumberValue(88.0);
public static final NumberValue __NUM_LIT_103 = new NumberValue(68.0);
public static final NumberValue __NUM_LIT_104 = new NumberValue(69.0);
@ -678,30 +672,30 @@ public class Plausi_ERHEBUNG_STUDENTEN_PRUEFUNGEN_AB_2017_Segment1 @@ -678,30 +672,30 @@ public class Plausi_ERHEBUNG_STUDENTEN_PRUEFUNGEN_AB_2017_Segment1
public static final NumberValue __NUM_LIT_106 = new NumberValue(82.0);
public static final NumberValue __NUM_LIT_107 = new NumberValue(93.0);
public static final NumberValue __NUM_LIT_108 = new NumberValue(94.0);
public static final StringValue __STR_LIT_1567 = new StringValue("5503");
public static final StringValue __STR_LIT_1568 = new StringValue("042");
public static final StringValue __STR_LIT_1561 = new StringValue("5503");
public static final StringValue __STR_LIT_1562 = new StringValue("042");
public static final NumberValue __NUM_LIT_109 = new NumberValue(84.0);
public static final NumberValue __NUM_LIT_110 = new NumberValue(90.0);
public static final StringValue __STR_LIT_1569 = new StringValue("673");
public static final StringValue __STR_LIT_1570 = new StringValue("768");
public static final StringValue __STR_LIT_1571 = new StringValue("A64");
public static final StringValue __STR_LIT_1572 = new StringValue("A89");
public static final StringValue __STR_LIT_1573 = new StringValue("B49");
public static final StringValue __STR_LIT_1563 = new StringValue("673");
public static final StringValue __STR_LIT_1564 = new StringValue("768");
public static final StringValue __STR_LIT_1565 = new StringValue("A64");
public static final StringValue __STR_LIT_1566 = new StringValue("A89");
public static final StringValue __STR_LIT_1567 = new StringValue("B49");
public static final NumberValue __NUM_LIT_111 = new NumberValue(83.0);
public static final NumberValue __NUM_LIT_112 = new NumberValue(89.0);
public static final StringValue __STR_LIT_1574 = new StringValue("d15");
public static final StringValue __STR_LIT_1568 = new StringValue("d15");
public static final NumberValue __NUM_LIT_113 = new NumberValue(1.0E7);
public static final NumberValue __NUM_LIT_114 = new NumberValue(1.0000001E7);
public static final NumberValue __NUM_LIT_115 = new NumberValue(4.9999999E7);
public static final NumberValue __NUM_LIT_116 = new NumberValue(9.9999999E7);
public static final NumberValue __NUM_LIT_117 = new NumberValue(17.0);
public static final StringValue __STR_LIT_1575 = new StringValue("1190");
public static final StringValue __STR_LIT_1576 = new StringValue("94");
public static final StringValue __STR_LIT_1577 = new StringValue("a5");
public static final StringValue __STR_LIT_1578 = new StringValue("A6");
public static final StringValue __STR_LIT_1579 = new StringValue("64");
public static final StringValue __STR_LIT_1580 = new StringValue("68");
public static final StringValue __STR_LIT_1581 = new StringValue("P1");
public static final StringValue __STR_LIT_1582 = new StringValue("XX");
public static final StringValue __STR_LIT_1583 = new StringValue("689");
public static final StringValue __STR_LIT_1569 = new StringValue("1190");
public static final StringValue __STR_LIT_1570 = new StringValue("94");
public static final StringValue __STR_LIT_1571 = new StringValue("a5");
public static final StringValue __STR_LIT_1572 = new StringValue("A6");
public static final StringValue __STR_LIT_1573 = new StringValue("64");
public static final StringValue __STR_LIT_1574 = new StringValue("68");
public static final StringValue __STR_LIT_1575 = new StringValue("P1");
public static final StringValue __STR_LIT_1576 = new StringValue("XX");
public static final StringValue __STR_LIT_1577 = new StringValue("689");
}

47
src/de/superx/access/DbSqlRestrictionProvider.java

@ -1,8 +1,5 @@ @@ -1,8 +1,5 @@
package de.superx.access;
import java.util.ArrayList;
import java.util.List;
import javax.sql.DataSource;
import org.springframework.beans.factory.InitializingBean;
@ -27,37 +24,27 @@ public class DbSqlRestrictionProvider implements SqlRestrictionProvider, Initial @@ -27,37 +24,27 @@ public class DbSqlRestrictionProvider implements SqlRestrictionProvider, Initial
@Override
public Select getRestriction(String username, String userrole, String schemaName, String tableName, int orgunitLid) {
try {
String lookupSql =
"SELECT granted_ids, join_column FROM user_dimension_grants"
+ " WHERE user_name = ? AND role_name = ?"
+ " AND schema_name = ? AND table_name = ?"
+ " AND orgunit_lid = ?";
SqlRowSet result = jt.queryForRowSet(lookupSql, username, userrole, schemaName, tableName, Integer.valueOf(orgunitLid));
List<String> restrictions = new ArrayList<>();
String lookupSql = String.format(
"SELECT restriction FROM view_rechte"
+ " WHERE user_name = '%s' AND role_name = '%s'"
+ " AND schema_name = '%s' AND table_name = '%s'"
+ " AND orgunit_lid = '%d';",
username, userrole, schemaName, tableName, Integer.valueOf(orgunitLid));
SqlRowSet result = jt.queryForRowSet(lookupSql);
result.beforeFirst();
String restriction = "";
while (result.next()) {
String grantedIds = result.getString("granted_ids");
String joinColumn = result.getString("join_column");
if (grantedIds == null || grantedIds.isBlank()) {
restrictions.add("1 = 0");
} else {
restrictions.add(String.format("%s IN (%s)", joinColumn, grantedIds));
}
restriction = result.getString("restriction");
}
String whereClause = "";
if (!restrictions.isEmpty()) {
whereClause = " WHERE " + String.join(" AND ", restrictions);
}
String resultSql = String.format(
"(SELECT * FROM %s.%s%s) AS %s",
schemaName, tableName, whereClause, tableName);
"(SELECT * FROM %s.%s %s) AS %s",
schemaName, tableName, restriction, tableName);
return (Select) CCJSqlParserUtil.parse(resultSql);
Select select = (Select)CCJSqlParserUtil.parse(resultSql);
return select;
} catch (DataAccessException e) {
throw new IllegalStateException("Restriction lookup failed", e);
} catch (JSQLParserException e) {

5
src/de/superx/access/InlineSelectVisitor.java

@ -47,11 +47,6 @@ public class InlineSelectVisitor implements net.sf.jsqlparser.statement.select.S @@ -47,11 +47,6 @@ public class InlineSelectVisitor implements net.sf.jsqlparser.statement.select.S
Set<String> cteNames = new HashSet<>();
if (plainSelect.getWithItemsList() != null) {
for (WithItem<?> withItem : plainSelect.getWithItemsList()) {
PlainSelect cteSelect = withItem.getSelect().getPlainSelect(); // inner SELECT of the CTE
FromItem innerFrom = cteSelect.getFromItem(); // FROM inside the CTE
if(innerFrom instanceof Table) {
cteSelect.setFromItem(editFromItem((Table)innerFrom));
}
cteNames.add(withItem.getAlias() != null
? withItem.getAlias().getName()
: withItem.getAliasName());

13
src/de/superx/bianalysis/ColumnElement.java

@ -1,9 +1,5 @@ @@ -1,9 +1,5 @@
package de.superx.bianalysis;
import java.sql.SQLException;
import org.postgresql.core.Utils;
import de.superx.bianalysis.models.DimensionAttribute;
import de.superx.bianalysis.models.Measure;
@ -82,14 +78,7 @@ public class ColumnElement { @@ -82,14 +78,7 @@ public class ColumnElement {
}
public static String buildFilter(DimensionAttribute attr, String value) {
String column = attr.getDimensionTableAlias() + "." + attr.getColumnname();
try {
String escaped = Utils.escapeLiteral(null, value, false).toString();
return column + " = '" + escaped + "'";
} catch (SQLException e) {
throw new IllegalArgumentException(
"Cannot create filter for column " + column, e);
}
return attr.getDimensionTableAlias() + "." + attr.getColumnname() + " = '" + value + "'";
}
public void setHeader(String finalHeader) {

13
src/de/superx/bianalysis/ExcelSheetBuilder.java

@ -369,22 +369,11 @@ public class ExcelSheetBuilder { @@ -369,22 +369,11 @@ public class ExcelSheetBuilder {
Column column= this.visibleColumns.get(i);
String[] columnHeader = column.header.split("\\|\\|");
boolean isLeftDimensionAttributeColumn = (columnHeader.length == 1 && !columnHeader[0].contains("|"))? true : false;
// sort headers according to headerOrder for top dimension columns
String[] columnHeaderSorted = new String[columnHeader.length];
for (int ii = 0; !isLeftDimensionAttributeColumn && ii < result.headerOrder.size(); ii++) {
String header = result.headerOrder.get(ii);
for (int iii = 0; iii < result.headerOrder.size(); iii++) {
if (columnHeader[iii].trim().startsWith(header)) {
columnHeaderSorted[ii] = columnHeader[iii];
continue;
}
}
}
for(int j = 0; j < rowSize; j++) {
if(isLeftDimensionAttributeColumn) {
grid[j][i] = columnHeader[0];
}else {
String header = columnHeaderSorted[j];
String header = columnHeader[j];
String[] headerValues = header.split("\\|");
grid[j][i] = headerValues[1];
}

5
src/de/superx/bianalysis/ReportDefinition.java

@ -9,7 +9,7 @@ import de.superx.bianalysis.service.DbMetaAdapter; @@ -9,7 +9,7 @@ import de.superx.bianalysis.service.DbMetaAdapter;
public class ReportDefinition {
public Identifier factTableId;
public List<Identifier> factTableIds;
public List<Identifier> leftDimensionAttributeIds;
public List<Identifier> topDimensionAttributeIds;
public List<Identifier> measureIds;
@ -18,6 +18,7 @@ public class ReportDefinition { @@ -18,6 +18,7 @@ public class ReportDefinition {
public boolean hideEmptyColumns;
public ReportDefinition() {
this.factTableIds = new ArrayList<>();
this.leftDimensionAttributeIds = new ArrayList<>();
this.topDimensionAttributeIds = new ArrayList<>();
this.measureIds = new ArrayList<>();
@ -27,7 +28,7 @@ public class ReportDefinition { @@ -27,7 +28,7 @@ public class ReportDefinition {
public ReportDefinition(ReportDefinition definition) {
super();
this.factTableId = definition.factTableId;
this.factTableIds = definition.factTableIds;
this.topDimensionAttributeIds = definition.topDimensionAttributeIds;
this.measureIds = definition.measureIds;
this.filters = definition.filters;

47
src/de/superx/bianalysis/ReportMetadata.java

@ -135,9 +135,9 @@ public class ReportMetadata { @@ -135,9 +135,9 @@ public class ReportMetadata {
List<DimensionAttribute> leftAttributes = new ArrayList<>();
List<DimensionAttribute> rightAttributes = new ArrayList<>();
List<Filter> filterAttributes = new ArrayList<>();
List<Measure> reportMeasures = dbMetaAdapter.getMeasureMetadata(allMeasures);
List<Measure> measures2 = dbMetaAdapter.getMeasureMetadata(allMeasures);
for (Measure measure : reportMeasures) {
for (Measure measure : measures2) {
if(!measure.getFacttableId().equals(secondaryFacttable.factId)) {
measure.isNullMeasure = true;
}
@ -190,29 +190,16 @@ public class ReportMetadata { @@ -190,29 +190,16 @@ public class ReportMetadata {
}
}
ReportMetadata secondaryFacttableMetadata = new ReportMetadata(secondaryFacttable.factTable, leftAttributes, rightAttributes, reportMeasures, filterAttributes, dbMetaAdapter);
secondaryFacttableMetadata.hideEmptyColumns = primaryReportMetadata.hideEmptyColumns;
ReportMetadata secondaryFacttableMetadata = new ReportMetadata(secondaryFacttable.factTable, leftAttributes, rightAttributes, measures2, filterAttributes, dbMetaAdapter);
// TODO all values from all facttables
secondaryFacttableMetadata.setTopDimensionAttributeValues(dbMetaAdapter, secondaryFacttableMetadata.factTable.getId());
secondaryFacttableMetadata.isOuter = isOuter;
factMetadatas.put(secondaryFacttable.factId.composedId, secondaryFacttableMetadata);
boolean onlyNullAttributes = true;
for (DimensionAttribute attribute : leftAttributes) {
if(!attribute.isNullAttribute()) {
onlyNullAttributes = false;
break;
}
}
if(onlyNullAttributes) {
for (Measure measure : reportMeasures) {
measure.isNullMeasure = true;
}
}
}
// set top dimension attribute filter values
for (DimensionAttribute attribute : topDimensionAttributes) {
DimensionAttribute confAttr =
@ -230,22 +217,11 @@ public class ReportMetadata { @@ -230,22 +217,11 @@ public class ReportMetadata {
}
}
}
// TODO workaround to have the correct topDimensionAttributes values in the first
// report metadata
for (DimensionAttribute a : this.topDimensionAttributes) {
for (DimensionAttribute att : primaryReportMetadata.topDimensionAttributes) {
if(a.getId().equals(att.getId())) {
a.setDimensionAttributeValues(att.getDimensionAttributeValues());
}
}
}
return factMetadatas;
}
public ReportMetadata(ReportMetadata metadata, List<SecondaryFacttable> secondary, List<Identifier> measureIds) {
this.hideEmptyColumns = metadata.hideEmptyColumns;
this.dbMetaAdapter = metadata.dbMetaAdapter;
this.factTable = metadata.factTable;
this.sachgebiet = metadata.sachgebiet;
@ -279,6 +255,7 @@ public class ReportMetadata { @@ -279,6 +255,7 @@ public class ReportMetadata {
for (DimensionAttribute attribute : this.leftDimensionAttributes) {
attribute.setGrouping(true);
}
this.hideEmptyColumns = metadata.hideEmptyColumns;
this.secondaryFacttables = secondaryFacttables;
}
@ -497,25 +474,21 @@ public class ReportMetadata { @@ -497,25 +474,21 @@ public class ReportMetadata {
for (SecondaryFacttable secondaryFacttable: secondaryFacttables) {
String label = "";
if(secondaryFacttable.join.equals("left")) {
label+= "Inklusion ⊆ ";
label+= "Inklusion ";
} else if(secondaryFacttable.join.equals("inner")) {
label+= "Schnittmenge ∩ ";
label+= "Schnittmenge ";
} else if(secondaryFacttable.join.equals("union")) {
label+= "Vereinigung ∪ ";
label+= "Vereinigung ";
}
label+= "mit ";
label+=(secondaryFacttable.factTable.getCaption());
label+= " über (";
label+= " über ";
for( int i = 0; i < secondaryFacttable.joinCriterias.size(); i++) {
label+=(secondaryFacttable.joinCriterias.get(i).leadingDimension.getCaption());
label+= " = ";
label+=(secondaryFacttable.joinCriterias.get(i).secondaryDimension.getCaption());
if(i < secondaryFacttable.joinCriterias.size() -1) {
label+= " und ";
}
}
label+= "); ";
secondaryFacttableList.add(label);
}
return secondaryFacttableList;

4
src/de/superx/bianalysis/StoredReport.java

@ -14,7 +14,6 @@ import com.fasterxml.jackson.databind.ObjectMapper; @@ -14,7 +14,6 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ObjectWriter;
import com.fasterxml.jackson.databind.json.JsonMapper;
import de.superx.jdbc.entity.Sachgebiet;
import de.superx.rest.model.Result;
import de.superx.rest.model.TreeNode;
@ -45,9 +44,6 @@ public class StoredReport { @@ -45,9 +44,6 @@ public class StoredReport {
@Transient
public ArrayList<TreeNode> hierarchy;
@Transient
public Sachgebiet sachgebietOfLeadingFactTable;
public StoredReport(String name, ReportDefinition reportDefinition, Result exportedResult) {
super();

116
src/de/superx/bianalysis/bin/BiAnalysisCLI.java

@ -7,20 +7,15 @@ import java.io.IOException; @@ -7,20 +7,15 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import org.apache.commons.cli.CommandLine;
@ -60,6 +55,8 @@ import de.superx.util.PathAndFileUtils; @@ -60,6 +55,8 @@ import de.superx.util.PathAndFileUtils;
public class BiAnalysisCLI {
private static final String DEFAULT_RELEASE_BRANCH = "2026_06";
public static void main(String[] args) throws IOException {
Options options = createOptions();
CommandLine parsedArgs = readArgs(args, options);
@ -270,7 +267,7 @@ public class BiAnalysisCLI { @@ -270,7 +267,7 @@ public class BiAnalysisCLI {
private static void validateMetadataAgainstSchema() {
SuperXManager.setWEB_INFPfad(PathAndFileUtils.getWebinfPath());
Path metadataFolder = DbtUtils.getBiAnalysisMetadataFolder("hisinone");
Path metadataFolder = DbtUtils.getBiAnalysisMetadataFolder();
File directory = metadataFolder.toFile();
File[] files = directory.listFiles();
@ -338,7 +335,7 @@ public class BiAnalysisCLI { @@ -338,7 +335,7 @@ public class BiAnalysisCLI {
throw new RuntimeException("Error processing validation output", e);
}
}
private static void generateWikiMarkdown(CommandLine parsedArgs) throws IOException {
SuperXManager.setWEB_INFPfad(PathAndFileUtils.getWebinfPath());
String facttable = parsedArgs.getOptionValue("d");
@ -351,42 +348,7 @@ public class BiAnalysisCLI { @@ -351,42 +348,7 @@ public class BiAnalysisCLI {
String docDirectory = PathAndFileUtils.getModulePath("biad");
docDirectory = String.join(File.separator, docDirectory, "conf", "his1", "edustore_doc");
String filepathAttributes = docDirectory + File.separator + "biad_attributes_mediawiki.txt";
try (PrintWriter writer = new PrintWriter(filepathAttributes, StandardCharsets.UTF_8)) {
writer.println("{| class=\"wikitable sortable\"");
writer.println("! Attributsbezeichnung !! A. Beschreibung !! A. Spalte !! Dimension !! D. Tabelle !! Thema !! Faktentabelle");
for (MetaObject obj : importer.getAllMetaObjects()) {
if (!(obj instanceof MetaDimensionAttribute a)) {
continue;
}
MetaDimension d = a.getDimension();
MetaFact f = d == null ? null : (MetaFact) d.getFact();
MetaDimensionAttribute attributeRef = a.getConfDimAttrRef();
MetaDimension conformedDimension = d == null ? null : d.getConformedDimension();
String attributeLine = """
|-
| %s || %s || %s || %s || %s || %s || %s
""".formatted(
empty(firstNonNull(a.getCaption(), attributeRef == null ? null : attributeRef.getCaption())),
empty(firstNonNull(a.getDescription(), attributeRef == null ? null : attributeRef.getDescription())),
empty(firstNonNull(a.getDimColumn(), attributeRef == null ? null : attributeRef.getDimColumn())),
empty(firstNonNull(d == null ? null : d.getCaption(), conformedDimension == null ? null : conformedDimension.getCaption())),
empty(firstNonNull(d == null ? null : d.getDimension(), conformedDimension == null ? null : conformedDimension.getDimension())),
empty(f == null ? null : f.getCaption()),
empty(f == null ? null : f.getFacttable())
);
writer.println(attributeLine);
}
writer.println("|}");
System.out.println("Written to file " + filepathAttributes);
}
for(MetaFact fact : importer.getAllFactTables()) {
if("all".equals(facttable) || fact.getFacttable().equals(facttable)) {
@ -446,8 +408,7 @@ public class BiAnalysisCLI { @@ -446,8 +408,7 @@ public class BiAnalysisCLI {
for(MetaDimensionAttribute a : attributes) {
String caption = a.getCaption() == null ? a.getConfDimAttrRef().getCaption() : a.getCaption();
String isHidden = a.isHidden() ? " (Standardmäßig ausgeblendet)" : "";
writer.println("*"+caption + isHidden);
writer.println("*"+caption);
try {
String desc = a.getDescription() == null ? a.getConfDimAttrRef().getDescription() : a.getDescription();
if(!desc.equals("null")) {
@ -466,10 +427,6 @@ public class BiAnalysisCLI { @@ -466,10 +427,6 @@ public class BiAnalysisCLI {
}
private static String getEmptyStringIfNull(String value) {
return value == null ? "" : value;
}
private static void generateYmlForJsonFile(CommandLine parsedArgs) {
String[] dirs = parsedArgs.getOptionValues("c");
String filename = parsedArgs.getOptionValue("y");
@ -604,13 +561,12 @@ public class BiAnalysisCLI { @@ -604,13 +561,12 @@ public class BiAnalysisCLI {
private static void addMissingIdsInMetadataDir(CommandLine parsedArgs) {
String[] files = parsedArgs.getOptionValues("i");
BasicConfigurator.configure(); // initializes console logging to stdout
String nextReleaseBranch = getNextReleaseBranch();
try {
MetadataImporter metaImporter = new MetadataImporter();
metaImporter.setShouldReadYMLDoc(false);
metaImporter.deserializeMetadataFromJsonFiles(files);
List<Identifier> allIds = metaImporter.getAllIds();
for (MetaJson meta : metaImporter.getMetaJsons()) {
List<Identifier> allIds = meta.getIds();
boolean isFileUpdateNecessary = false;
for (MetaObject obj : meta.getMetaObjects()) {
if(obj.getId() == null && obj.getNamespace() != null) {
@ -620,34 +576,9 @@ public class BiAnalysisCLI { @@ -620,34 +576,9 @@ public class BiAnalysisCLI {
isFileUpdateNecessary = true;
}
if(obj.getDefaultRelease() == null) {
obj.setDefaultRelease(nextReleaseBranch);
obj.setDefaultRelease(DEFAULT_RELEASE_BRANCH);
isFileUpdateNecessary = true;
}
if (obj instanceof MetaFact) {
List<MetaDimension> dimensions = ((MetaFact) obj).getDimensions();
if (dimensions != null) {
for (int i = 0; i < dimensions.size(); i++) {
MetaDimension dimension = dimensions.get(i);
if (!Objects.equals(dimension.getPosition(), Integer.valueOf(i+ 1))) {
dimension.setPosition(Integer.valueOf(i + 1));
isFileUpdateNecessary = true;
}
}
}
}
if (obj instanceof MetaDimension) {
List<MetaDimensionAttribute> attributes =
((MetaDimension) obj).getAttributes();
for (int i = 0; i < attributes.size(); i++) {
MetaDimensionAttribute attribute = attributes.get(i);
if (!Objects.equals(attribute.getPosition(), Integer.valueOf(i + 1))) {
attribute.setPosition(Integer.valueOf(i + 1));
isFileUpdateNecessary = true;
}
}
}
}
if(isFileUpdateNecessary) {
writeMetaImportToFile(meta);
@ -664,25 +595,6 @@ public class BiAnalysisCLI { @@ -664,25 +595,6 @@ public class BiAnalysisCLI {
}
}
private static String getNextReleaseBranch() {
try {
Process process = new ProcessBuilder("git", "branch", "--format=%(refname:short)").start();
String latest;
try (BufferedReader reader = process.inputReader()) {
latest = reader.lines()
.filter(branch -> branch.matches("RELEASE_\\d{4}_(06|12)"))
.max(String::compareTo)
.orElseThrow(() ->
new IllegalStateException("No release branch found"));
}
int year = Integer.parseInt(latest.substring(8, 12));
return latest.endsWith("_06") ? year + "_12" : (year + 1) + "_06";
} catch (Exception e) {
e.printStackTrace();
return "UNKNOWN";
}
}
private static void convertJsonFilesToSql() {
SuperXManager.setWEB_INFPfad(PathAndFileUtils.getWebinfPath());
String filePath = PathAndFileUtils.getReportGeneratorDir("hisinone");
@ -705,11 +617,6 @@ public class BiAnalysisCLI { @@ -705,11 +617,6 @@ public class BiAnalysisCLI {
MetadataImporter importer = new MetadataImporter(ymlPath);
importer.deserializeMetadataFromJsonFiles(filePath);
out += String.join("\n", importer.getAllUpsertStrings(false));
// check for double positions
for (MetaImport metaImport : importer.getMetaImports()) {
System.out.println(importer.checkPositionsForUniqueness(metaImport));
}
if(!importer.errorMessages.isEmpty()) {
System.out.println(importer.getPrintableErrorMessages());
@ -857,14 +764,5 @@ public class BiAnalysisCLI { @@ -857,14 +764,5 @@ public class BiAnalysisCLI {
public static boolean isNullOrEmpty(List<?> list) {
return list == null || list.isEmpty();
}
private static String firstNonNull(String value, String fallback) {
return value != null ? value : fallback;
}
private static String empty(String value) {
return value == null ? "" : value;
}
}

3
src/de/superx/bianalysis/jasper/JasperReportJson.java

@ -105,9 +105,6 @@ public class JasperReportJson { @@ -105,9 +105,6 @@ public class JasperReportJson {
for (Map<String, Object> cell : cells) {
Map<String, Object> newRow = new HashMap<>();
for (Map.Entry<String, Object> entry : cell.entrySet()) {
if(entry.getKey().endsWith("_sorting")) {
break;
}
String fieldCaptionWithoutBrackets = fieldCaptionMap.get(entry.getKey())
.replace("[", "_")
.replace("]", "_")

5
src/de/superx/bianalysis/metadata/Identifier.java

@ -23,11 +23,8 @@ public class Identifier { @@ -23,11 +23,8 @@ public class Identifier {
if(composedId == null || composedId.isBlank()) {
return;
}
String[] result = composedId.split(ID_SEPARATOR);
if(!result[0].matches("^[a-zA-Z_]+$")) {
return;
}
this.composedId = composedId;
String[] result = composedId.split(ID_SEPARATOR);
this.namespace = result[0];
this.value = Integer.valueOf(result[1]);
}

47
src/de/superx/bianalysis/metadata/MetadataImporter.java

@ -9,13 +9,9 @@ import java.sql.ResultSet; @@ -9,13 +9,9 @@ import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import java.util.TreeMap;
import java.util.stream.Collectors;
import javax.sql.DataSource;
@ -55,7 +51,7 @@ import de.superx.util.PathAndFileUtils; @@ -55,7 +51,7 @@ import de.superx.util.PathAndFileUtils;
* dimension.
*
* To learn more about the metadata concept for the BIAnalysis Tool see:
* doc\bi_analysis\metadaten.adoc
* doc\bi_analysis\report_wizard\metadaten.adoc
*
*/
public final class MetadataImporter {
@ -221,7 +217,6 @@ public final class MetadataImporter { @@ -221,7 +217,6 @@ public final class MetadataImporter {
.withIntCol("id", Integer.valueOf(report.id))
.withStringCol("name", report.name)
.withStringCol("definition", report.definition)
.withStringCol("description", report.description)
.withIntCol("show_total_column", Integer.valueOf(report.showTotalColumn));
result.add(builder.build(true));
} catch (JsonMappingException e) {
@ -410,7 +405,7 @@ public final class MetadataImporter { @@ -410,7 +405,7 @@ public final class MetadataImporter {
}
public void updateMetadataForH2Database(DataSource dataSource) throws Exception {
String metaFilesDir = String.join(File.separator, new String[] {"test", "resources", "db", "fixtures", "bianalysis", "metadata"});
String metaFilesDir = String.join(File.separator, new String[] {"test", "resources", "db", "fixtures", "reportwizard", "metadata"});
deserializeMetadataFromJsonFiles(metaFilesDir);
JdbcTemplate jt = new JdbcTemplate(dataSource);
String upserts = String.join("\n", getAllUpsertStrings(false).toString());
@ -476,7 +471,6 @@ public final class MetadataImporter { @@ -476,7 +471,6 @@ public final class MetadataImporter {
attribute.setCaption(rs.getString("caption"));
attribute.setDimColumn(rs.getString("dim_column"));
attribute.setDefaultRelease(DbMetaAdapter.getCustomDefaultReleaseForCurrentDate());
attribute.setPosition(Integer.valueOf(numAttributes));
// create a new 'on the fly' identifier for the new metadata
// attribute
@ -659,7 +653,7 @@ public final class MetadataImporter { @@ -659,7 +653,7 @@ public final class MetadataImporter {
public void setShouldReadYMLDoc(boolean shouldReadYMLDoc) {
this.shouldReadYMLDoc = shouldReadYMLDoc;
}
public List<Identifier> getAllIds() {
return metaImports.stream()
.map(meta -> meta.getIds())
@ -667,40 +661,5 @@ public final class MetadataImporter { @@ -667,40 +661,5 @@ public final class MetadataImporter {
.collect(Collectors.toList());
}
public static String checkPositionsForUniqueness(MetaImport meta) {
List<String> warnings = new ArrayList<>();
for (MetaFact fact : meta.facts) {
Set<Integer> dimensions = new HashSet<>();
for (MetaDimension dim : fact.getDimensions()) {
Integer pos = dim.getPosition();
if (pos == null && dim.getConformedDimension() != null) {
pos = dim.getConformedDimension().getPosition();
}
if (pos != null && !dimensions.add(pos)) {
warnings.add("Fact '" + fact.getCaption()
+ "': duplicate dimension position " + pos
+ " at '" + dim.getCaption() + "'.");
}
Set<Integer> attributes = new HashSet<>();
for (MetaDimensionAttribute attr : dim.getAttributes()) {
pos = attr.getPosition();
if (pos == null && attr.getConfDimAttrRef() != null) {
pos = attr.getConfDimAttrRef().getPosition();
}
if (pos != null && !attributes.add(pos)) {
warnings.add("Fact '" + fact.getCaption()
+ "', dimension '" + dim.getCaption()
+ "': duplicate attribute position " + pos
+ " at '" + attr.getCaption() + "'.");
}
}
}
}
return String.join(System.lineSeparator(), warnings);
}
}

10
src/de/superx/bianalysis/metadata/models/json/MetaDimension.java

@ -140,10 +140,11 @@ public class MetaDimension extends MetaObject { @@ -140,10 +140,11 @@ public class MetaDimension extends MetaObject {
builder = builder.withStringCol("is_historical", String.valueOf(conformedDimension.isHistorical));
}
//if(this.isRestricted) {
//} else {
// builder = builder.withStringCol("is_restricted", String.valueOf(conformedDimension.isRestricted));
//}
if(this.isRestricted) {
builder = builder.withStringCol("is_restricted", String.valueOf(isRestricted));
} else {
builder = builder.withStringCol("is_restricted", String.valueOf(conformedDimension.isRestricted));
}
if(this.dimension != null && !this.dimension.isBlank()) {
builder = builder.withStringCol("tablename", this.dimension);
@ -152,7 +153,6 @@ public class MetaDimension extends MetaObject { @@ -152,7 +153,6 @@ public class MetaDimension extends MetaObject {
}
builder = builder.withStringCol("is_restricted", String.valueOf(isRestricted));
builder = builder.withIdCol("conformed", this.conformedDimension.id);
}

2
src/de/superx/bianalysis/metadata/models/json/MetaDimensionAttribute.java

@ -140,7 +140,7 @@ public class MetaDimensionAttribute extends MetaObject { @@ -140,7 +140,7 @@ public class MetaDimensionAttribute extends MetaObject {
String newColumnName = this.caption.toLowerCase()
.replaceAll("\\s+", "_")
.replaceAll("[^a-z0-9-]", "_");
builder = builder.withStringCol("columnname", "custom_" + newColumnName);
builder = builder.withStringCol("columnname", "ind_" + newColumnName);
}
if(confDimAttrRef != null && confDimAttrRef.hierarchicalFilter) {

11
src/de/superx/bianalysis/models/Filter.java

@ -1,12 +1,9 @@ @@ -1,12 +1,9 @@
package de.superx.bianalysis.models;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.StringJoiner;
import org.postgresql.core.Utils;
import com.fasterxml.jackson.annotation.JsonIgnore;
import de.superx.bianalysis.ReportMetadata;
@ -85,13 +82,7 @@ public class Filter { @@ -85,13 +82,7 @@ public class Filter {
}
StringJoiner joiner = new StringJoiner(", ");
for (String value : filterValues) {
try {
String escaped = Utils.escapeLiteral(null, value, false).toString();
joiner.add("'" + escaped + "'");
} catch (SQLException e) {
throw new IllegalArgumentException(
"Cannot create SQL list: invalid filter value", e);
}
joiner.add("'"+value+"'");
}
return joiner.toString();
}

4
src/de/superx/bianalysis/models/Right.java

@ -4,9 +4,7 @@ public enum Right { @@ -4,9 +4,7 @@ public enum Right {
VIEW_REPORT("RIGHT_CS_BIA_ANALYSIS_VIEW_ANALYSIS_TABLE"),
CREATE_ANALYSIS("RIGHT_CS_BIA_ANALYSIS_CREATE_ANALYSIS"),
DELETE_ANALYSIS("RIGHT_CS_BIA_ANALYSIS_DELETE_ANALYSIS"),
VIEW_ANALYSIS_EMBEDDED("RIGHT_CS_BIA_ANALYSIS_VIEW_ANALYSIS_EMBEDDED"),
EDIT_ANALYSIS_TABLE("RIGHT_CS_BIA_ANALYSIS_EDIT_ANALYSIS_TABLE");
DELETE_ANALYSIS("RIGHT_CS_BIA_ANALYSIS_DELETE_ANALYSIS");
private String string;

3
src/de/superx/bianalysis/models/RightParam.java

@ -4,8 +4,7 @@ public enum RightParam { @@ -4,8 +4,7 @@ public enum RightParam {
TOPIC_AREA("bianalysis.topic_area"),
TOPIC("bianalysis.topic"),
ORGUNIT("bianalysis.orgunit"),
PROJECT("bianalysis.project");
ORGUNIT("bianalysis.orgunit");
private String string;

32
src/de/superx/bianalysis/models/StoredReportRequest.java

@ -1,32 +0,0 @@ @@ -1,32 +0,0 @@
package de.superx.bianalysis.models;
import java.util.List;
public class StoredReportRequest {
private int id;
private List<Filter> additionalFilters;
public StoredReportRequest() { }
public StoredReportRequest(int storedReportId) {
this.id = storedReportId;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public List<Filter> getAdditionalFilters() {
return additionalFilters;
}
public void setAdditionalFilters(List<Filter> additionalFilters) {
this.additionalFilters = additionalFilters;
}
}

4
src/de/superx/bianalysis/repository/dto/AttributeDto.java

@ -52,7 +52,7 @@ public class AttributeDto extends EntityBase { @@ -52,7 +52,7 @@ public class AttributeDto extends EntityBase {
@Column(value = "sort_order_column")
public String sortOrderColumn;
@DynamicFieldType(label="Filter-Auswahl", readOnly = false, visibleInSimplifiedForm = false)
@DynamicFieldType(label="Filter-Auswahl", readOnly = true, visibleInSimplifiedForm = false)
@Column(value = "filter_selection")
public String filterSelection;
@ -147,7 +147,7 @@ public class AttributeDto extends EntityBase { @@ -147,7 +147,7 @@ public class AttributeDto extends EntityBase {
String newColumnName = caption.toLowerCase()
.replaceAll("\\s+", "_")
.replaceAll("[^a-z0-9]", "_");
return "custom_" + newColumnName;
return "ind_" + newColumnName;
}

21
src/de/superx/bianalysis/rest/BiAnalysisAdminApi.java

@ -16,10 +16,8 @@ import de.superx.bianalysis.models.Dimension; @@ -16,10 +16,8 @@ import de.superx.bianalysis.models.Dimension;
import de.superx.bianalysis.models.FactTable;
import de.superx.bianalysis.models.Measure;
import de.superx.bianalysis.repository.dto.AttributeDto;
import de.superx.bianalysis.repository.dto.DimensionDto;
import de.superx.bianalysis.service.BiAnalysisRightService;
import de.superx.bianalysis.service.DbMetaAdapter;
import de.superx.bianalysis.service.IllegalMetaDataOperation;
import de.superx.common.NotYetImplementedException;
import de.superx.rest.RestControllerBase;
@ -57,7 +55,7 @@ public class BiAnalysisAdminApi extends RestControllerBase { @@ -57,7 +55,7 @@ public class BiAnalysisAdminApi extends RestControllerBase {
}
@RequestMapping(method = RequestMethod.PUT, path = "/attribute-group")
public Identifier saveAttributeGroup(@RequestBody final AttributeDto attributeGroup, @RequestParam(value = "dimension_id") Identifier dimensionId) throws IllegalMetaDataOperation {
public Identifier saveAttributeGroup(@RequestBody final AttributeDto attributeGroup, @RequestParam(value = "dimension_id") Identifier dimensionId) {
if(attributeGroup.id != null && attributeGroup.id.composedId != null && !attributeGroup.id.composedId.isBlank()) {
dbAdapter.deleteColumnForAttributeGroup(attributeGroup.id, dimensionId);
}
@ -77,11 +75,6 @@ public class BiAnalysisAdminApi extends RestControllerBase { @@ -77,11 +75,6 @@ public class BiAnalysisAdminApi extends RestControllerBase {
return savedAttribute.id;
}
@RequestMapping(method = RequestMethod.PUT, path = "/dimension")
public DimensionDto saveDimension(@RequestBody final DimensionDto dimension) {
return dbAdapter.saveExistingDimensionAndOverrideFields(dimension);
}
@RequestMapping(method = RequestMethod.PUT, path = "/attribute")
public AttributeDto saveAttribute(@RequestBody final AttributeDto attribute, @RequestParam(value = "dimension_id") Identifier dimensionId) {
attribute.isCustom = Boolean.TRUE;
@ -94,7 +87,7 @@ public class BiAnalysisAdminApi extends RestControllerBase { @@ -94,7 +87,7 @@ public class BiAnalysisAdminApi extends RestControllerBase {
}
@RequestMapping(method = RequestMethod.DELETE, path = "/attribute-group")
public void deleteAttributeGroup(@RequestParam(value = "attribute_group_id") Identifier attributeGroupId) throws IllegalMetaDataOperation {
public void deleteAttributeGroup(@RequestParam(value = "attribute_group_id") Identifier attributeGroupId) {
dbAdapter.deleteAttributeGroupById(attributeGroupId);
}
@ -114,22 +107,20 @@ public class BiAnalysisAdminApi extends RestControllerBase { @@ -114,22 +107,20 @@ public class BiAnalysisAdminApi extends RestControllerBase {
@RequestMapping(method = RequestMethod.GET, path = "/filterDimensionAttributeValues")
public List<DimensionAttributeLabel> listAttributeValues (@RequestParam(value = "attribute_id") Identifier id,
@RequestParam(value = "q") String q,
// l is not used because its fix to 100 values in sys component
@RequestParam(value = "l") int limit,
@RequestParam(value = "count") int count) {
return dbAdapter.getFilteredValuesForAttribute(id, q, count)
@RequestParam(value = "l") int length) {
return dbAdapter.getFilteredValuesForAttribute(id, q, length)
.stream()
.map(DimensionAttributeLabel::new)
.toList();
}
@RequestMapping(method = RequestMethod.PUT, path = "/hideAttribute")
public void hideAttribute (@RequestBody final Boolean hide, @RequestParam(value = "attribute_id") Identifier id) throws IllegalMetaDataOperation {
public void hideAttribute (@RequestBody final Boolean hide, @RequestParam(value = "attribute_id") Identifier id) {
dbAdapter.hideAttributeById(id, hide);
}
@RequestMapping(method = RequestMethod.PUT, path = "/hideDimension")
public void hideDimension (@RequestBody final Boolean hide, @RequestParam(value = "dimension_id") Identifier id) throws IllegalMetaDataOperation {
public void hideDimension (@RequestBody final Boolean hide, @RequestParam(value = "dimension_id") Identifier id) {
dbAdapter.hideDimensionById(id, hide);
}

76
src/de/superx/bianalysis/rest/BiAnalysisApi.java

@ -18,7 +18,6 @@ import org.springframework.web.bind.annotation.RequestParam; @@ -18,7 +18,6 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import de.superx.bianalysis.ExcelSheetBuilder;
import de.superx.bianalysis.FaultyMetadataException;
import de.superx.bianalysis.ReportDefinition;
import de.superx.bianalysis.StoredReport;
import de.superx.bianalysis.jasper.JasperReportJsonWrapper;
@ -26,10 +25,8 @@ import de.superx.bianalysis.metadata.Identifier; @@ -26,10 +25,8 @@ import de.superx.bianalysis.metadata.Identifier;
import de.superx.bianalysis.models.Dimension;
import de.superx.bianalysis.models.DimensionAttribute;
import de.superx.bianalysis.models.FactTable;
import de.superx.bianalysis.models.Filter;
import de.superx.bianalysis.models.Measure;
import de.superx.bianalysis.models.Right;
import de.superx.bianalysis.models.StoredReportRequest;
import de.superx.bianalysis.repository.dto.MeasureDto;
import de.superx.bianalysis.service.BiAnalysisManager;
import de.superx.bianalysis.service.BiAnalysisRightService;
@ -43,7 +40,7 @@ import de.superx.rest.model.ResultType; @@ -43,7 +40,7 @@ import de.superx.rest.model.ResultType;
import de.superx.rest.model.Row;
@RestController
@RequestMapping("/api/bianalysis")
@RequestMapping("/api/reportwizard")
public class BiAnalysisApi extends RestControllerBase {
/* Autor: Robin Wübbeling
@ -113,28 +110,21 @@ public class BiAnalysisApi extends RestControllerBase { @@ -113,28 +110,21 @@ public class BiAnalysisApi extends RestControllerBase {
@RequestParam(value = "title") Optional<String> title,
@RequestParam(value = "sach") Optional<Integer> sach,
@RequestParam(value = "facts") Optional<List<String>> facts) {
rightsService.checkCreateOrViewRights();
rightsService.checkCreateRights();
return dbAdapter.findStoredReports(title, sach, facts);
}
@RequestMapping(method = RequestMethod.POST, path = "/getStoredReport")
public StoredReport getStoredReport(@RequestBody StoredReportRequest storedReportRequest) {
Optional<StoredReport> storedReportOpt = dbAdapter.findById(storedReportRequest.getId());
@RequestMapping(method = RequestMethod.GET, path = "/getStoredReport")
public StoredReport getStoredReport(@RequestParam(value = "id") int id) {
Optional<StoredReport> storedReportOpt = dbAdapter.findById(id);
if(storedReportOpt.isPresent()) {
StoredReport storedReport = storedReportOpt.get();
Identifier factTableId = storedReport.reportDefinition.factTableId;
checkIfSachgebieteAndFactTableIsAllowed(factTableId,
Right.CREATE_ANALYSIS, Right.VIEW_REPORT, Right.VIEW_ANALYSIS_EMBEDDED);
checkCreateOrViewRightForFactTables(storedReport.reportDefinition.factTableIds);
try {
List<Filter> filterBefore = new ArrayList<>(storedReport.reportDefinition.filters);
if(storedReportRequest.getAdditionalFilters() != null && storedReportRequest.getAdditionalFilters().size() > 0) {
storedReport.reportDefinition.filters.addAll(storedReportRequest.getAdditionalFilters());
}
storedReport.exportedResult = biAnalysisManager.createResult(storedReport.reportDefinition, dbAdapter);
storedReport.reportDefinition.filters = filterBefore;
storedReport.exportedResult = biAnalysisManager.createResult(storedReport.reportDefinition, dbAdapter);
} catch (Exception e) {
logger.error("Couldn't create report", e);
throw new RuntimeException(e);
e.printStackTrace();
}
storedReport.isReadOnly = Boolean.valueOf(!this.rightsService.isCreateRight());
return storedReport;
@ -144,22 +134,22 @@ public class BiAnalysisApi extends RestControllerBase { @@ -144,22 +134,22 @@ public class BiAnalysisApi extends RestControllerBase {
@RequestMapping(method = RequestMethod.POST, path = "/report")
public Result getReport(@RequestBody final ReportDefinition reportDefinition) throws Exception {
Identifier factTableId = reportDefinition.factTableId;
checkCreateRightForLeadingFactTable(factTableId);
List<Identifier> factTableIds = reportDefinition.factTableIds;
checkCreateRightForFactTables(factTableIds);
return biAnalysisManager.createResult(reportDefinition, dbAdapter);
}
@RequestMapping(method = RequestMethod.POST, path = "/persistReportDefinition")
public int persistReportDefinition(@RequestBody final StoredReport storedReport) throws Exception {
StoredReport.setReportDefinitionJson(storedReport);
Identifier factTableId = (Identifier) storedReport.reportDefinition.factTableId;
checkCreateRightForLeadingFactTable(factTableId);
List<Identifier> factTableIds = storedReport.reportDefinition.factTableIds;
checkCreateRightForFactTables(factTableIds);
return dbAdapter.saveReportDefinition(storedReport);
}
@RequestMapping(value = "/report/download", method = RequestMethod.POST)
public Download getFile(@RequestBody final StoredReport storedReport) throws Exception {
checkCreateOrViewRightForLeadingFactTable(storedReport.reportDefinition.factTableId);
checkCreateOrViewRightForFactTables(storedReport.reportDefinition.factTableIds);
Date date = new Date();
String fileName = "BI-Analyse_";
if(storedReport.id != 0) {
@ -195,7 +185,7 @@ public class BiAnalysisApi extends RestControllerBase { @@ -195,7 +185,7 @@ public class BiAnalysisApi extends RestControllerBase {
if(reportOpt.isEmpty()) {
throw new Exception("FEHLER: Berichtskonfiguration konnte nicht gefunden werden.");
}
checkCreateRightForLeadingFactTable(reportOpt.get().reportDefinition.factTableId);
checkCreateRightForFactTables(reportOpt.get().reportDefinition.factTableIds);
rightsService.checkDeleteRights();
dbAdapter.deleteById(id);
return true;
@ -220,48 +210,38 @@ public class BiAnalysisApi extends RestControllerBase { @@ -220,48 +210,38 @@ public class BiAnalysisApi extends RestControllerBase {
}
return storedReports;
}
// Use the first right the user has. If that right restricts access, enforce its restrictions.
// Do not try a later right when access is denied.
private void checkIfSachgebieteAndFactTableIsAllowed(Identifier factTableId, Right... rights) {
int sachgebiet = dbAdapter.getSachgebietByFactTableId(factTableId.composedId);
rightsService.checkSachgebiet(sachgebiet, rights);
rightsService.checkFactTable(factTableId, rights);
}
private void checkCreateOrViewRightForLeadingFactTable(Identifier factTableId) {
int sachgebiet = dbAdapter.getSachgebietByFactTableId(factTableId.composedId);
rightsService.checkSachgebiet(sachgebiet, Right.CREATE_ANALYSIS, Right.VIEW_REPORT, Right.VIEW_ANALYSIS_EMBEDDED);
rightsService.checkFactTable(factTableId, Right.CREATE_ANALYSIS, Right.VIEW_REPORT, Right.VIEW_ANALYSIS_EMBEDDED);
private void checkCreateOrViewRightForFactTables(List<Identifier> factTableIds) {
for (Identifier factId : factTableIds) {
int sachgebiet = dbAdapter.getSachgebietByFactTableId(factId.composedId);
rightsService.checkSachgebiet(sachgebiet, Right.CREATE_ANALYSIS, Right.VIEW_REPORT);
rightsService.checkFactTable(factId, Right.CREATE_ANALYSIS, Right.VIEW_REPORT);
}
}
private void checkCreateRightForLeadingFactTable(Identifier factTableId) {
int sachgebiet = dbAdapter.getSachgebietByFactTableId(factTableId.composedId);
rightsService.checkSachgebiet(sachgebiet, Right.CREATE_ANALYSIS);
rightsService.checkFactTable(factTableId, Right.CREATE_ANALYSIS);
private void checkCreateRightForFactTables(List<Identifier> factTableIds) {
for (Identifier factId : factTableIds) {
int sachgebiet = dbAdapter.getSachgebietByFactTableId(factId.composedId);
rightsService.checkSachgebiet(sachgebiet, Right.CREATE_ANALYSIS);
rightsService.checkFactTable(factId, Right.CREATE_ANALYSIS);
}
}
@RequestMapping(method = RequestMethod.GET, path = "/jasper/datasource")
public JasperReportJsonWrapper getJasperJsonDatasource(@RequestParam(value = "stored_report_id") int storedReportId) throws Exception {
StoredReport storedReport = getStoredReport(new StoredReportRequest(storedReportId));
StoredReport storedReport = getStoredReport(storedReportId);
return jasperReportExport.getJasperReportJsonWrapper(storedReport);
}
@RequestMapping(method = RequestMethod.GET, path = "/jasper/template")
public Download getJasperTemplate(@RequestParam(value = "stored_report_id") int storedReportId) throws Exception {
StoredReport storedReport = getStoredReport(new StoredReportRequest(storedReportId));
StoredReport storedReport = getStoredReport(storedReportId);
jasperReportExport.createJson(storedReport);
jasperReportExport.createJasperReport(storedReport);
Download export = jasperReportExport.createZip();
return export;
}
@RequestMapping(method = RequestMethod.POST, path = "/invalidIds")
public List<Identifier> findInvalidIds(@RequestBody List<Identifier> ids) {
return dbAdapter.getInvalidIds(ids);
}
}

19
src/de/superx/bianalysis/service/BiAnalysisManager.java

@ -52,13 +52,13 @@ public class BiAnalysisManager { @@ -52,13 +52,13 @@ public class BiAnalysisManager {
public Result createResult(ReportDefinition reportDefinition, DbMetaAdapter dbAdapter) throws Exception {
if(reportDefinition.leftDimensionAttributeIds.isEmpty()) {
throw new IllegalMetaDataOperation("Bei einer BI-Analyse muss mindestens ein Zeilenattribut angegeben werden.");
if(reportDefinition.factTableIds.size() > 1) {
throw new IllegalArgumentException("Only one facttable per report definition allowed.");
}
try {
biAnalysisRightService.checkCreateOrViewRights();
ReportMetadata metadata = new ReportMetadata(reportDefinition, reportDefinition.factTableId, dbAdapter);
ReportMetadata metadata = new ReportMetadata(reportDefinition, reportDefinition.factTableIds.get(0), dbAdapter);
checkColLimit(reportDefinition, dbAdapter, metadata);
Result result = getReportData(metadata, dbAdapter, reportDefinition);
return result;
@ -80,8 +80,8 @@ public class BiAnalysisManager { @@ -80,8 +80,8 @@ public class BiAnalysisManager {
}
}
public Result getReportData(ReportMetadata metadata, DbMetaAdapter dbAdapter, ReportDefinition definition) throws Exception {
String reportSql = getSqlStatement(metadata);
private Result getReportData(ReportMetadata metadata, DbMetaAdapter dbAdapter, ReportDefinition definition) throws Exception {
String reportSql = getSqlStatement(definition, dbAdapter);
String totalsColumnSql = getTotalsColumnSqlStatement(definition, dbAdapter);
List<Item> sqlStatements = new ArrayList<>();
@ -138,11 +138,11 @@ public class BiAnalysisManager { @@ -138,11 +138,11 @@ public class BiAnalysisManager {
return "";
}
String sql = "";
ReportMetadata metadata = new ReportMetadata(definition, definition.factTableId, dbAdapter);
ReportMetadata metadata = new ReportMetadata(definition, definition.factTableIds.get(0), dbAdapter);
if(metadata.hasOuter()) {
ReportDefinition definitionTotals = definition.toTotalsDefinition();
metadata = new ReportMetadata(definitionTotals, definitionTotals.factTableId, dbAdapter);
metadata = new ReportMetadata(definitionTotals, definitionTotals.factTableIds.get(0), dbAdapter);
HashMap<String, ReportMetadata> metadatas = metadata.buildReportMetadatasForDrillAcross();
SQLGeneratorDrillAcross sqlGeneratorDrillAcross
@ -155,14 +155,15 @@ public class BiAnalysisManager { @@ -155,14 +155,15 @@ public class BiAnalysisManager {
return sql;
}
public static String getSqlStatement(ReportMetadata metadata) {
public static String getSqlStatement(ReportDefinition definition, DbMetaAdapter dbAdapter) {
String sql = "";
ReportMetadata metadata = definition.getReportMetadata(dbAdapter, definition.factTableIds.get(0));
if(metadata.hasOuter()) {
HashMap<String, ReportMetadata> metadatas = metadata.buildReportMetadatasForDrillAcross();
SQLGeneratorDrillAcross sqlGeneratorDrillAcross
= new SQLGeneratorDrillAcross(metadata.factTable.getId(), metadatas);
= new SQLGeneratorDrillAcross(definition.factTableIds.get(0), metadatas);
sql = sqlGeneratorDrillAcross.buildFormattedSqlStatement();
} else {

10
src/de/superx/bianalysis/service/BiAnalysisRightService.java

@ -27,16 +27,14 @@ public class BiAnalysisRightService { @@ -27,16 +27,14 @@ public class BiAnalysisRightService {
public void checkCreateRights() {
SxUser user = (SxUser) userService.currentUserDetails();
if ( user != null && !user.getHis1Rights().contains("RIGHT_CS_BIA_ANALYSIS_CREATE_ANALYSIS") &&
!user.getHis1Rights().contains("RIGHT_CS_BIA_ANALYSIS_EDIT_ANALYSIS_TABLE")) {
if ( user != null && !user.getHis1Rights().contains("RIGHT_CS_BIA_ANALYSIS_CREATE_ANALYSIS") ) {
throw new AccessDeniedException("No right to access Create functions");
}
}
public boolean isCreateRight() {
SxUser user = (SxUser) userService.currentUserDetails();
if ( user != null && !user.getHis1Rights().contains("RIGHT_CS_BIA_ANALYSIS_CREATE_ANALYSIS") &&
!user.getHis1Rights().contains("RIGHT_CS_BIA_ANALYSIS_EDIT_ANALYSIS_TABLE")) {
if ( user != null && !user.getHis1Rights().contains("RIGHT_CS_BIA_ANALYSIS_CREATE_ANALYSIS") ) {
return false;
}
return true;
@ -45,9 +43,7 @@ public class BiAnalysisRightService { @@ -45,9 +43,7 @@ public class BiAnalysisRightService {
public void checkCreateOrViewRights() {
SxUser user = (SxUser) userService.currentUserDetails();
if ( user != null && !user.getHis1Rights().contains("RIGHT_CS_BIA_ANALYSIS_CREATE_ANALYSIS") &&
!user.getHis1Rights().contains("RIGHT_CS_BIA_ANALYSIS_VIEW_ANALYSIS_TABLE") &&
!user.getHis1Rights().contains("RIGHT_CS_BIA_ANALYSIS_VIEW_ANALYSIS_EMBEDDED") &&
!user.getHis1Rights().contains("RIGHT_CS_BIA_ANALYSIS_EDIT_ANALYSIS_TABLE") ) {
!user.getHis1Rights().contains("RIGHT_CS_BIA_ANALYSIS_VIEW_ANALYSIS_TABLE") ) {
throw new AccessDeniedException("No right to access Create and View functions");
}
}

3069
src/de/superx/bianalysis/service/DbMetaAdapter.java

File diff suppressed because it is too large Load Diff

11
src/de/superx/bianalysis/service/IllegalMetaDataOperation.java

@ -1,11 +0,0 @@ @@ -1,11 +0,0 @@
package de.superx.bianalysis.service;
public class IllegalMetaDataOperation extends Exception {
private static final long serialVersionUID = 1L;
public IllegalMetaDataOperation(String message) {
super(message);
}
}

2
src/de/superx/bianalysis/service/JasperReportExport.java

@ -39,7 +39,7 @@ public class JasperReportExport { @@ -39,7 +39,7 @@ public class JasperReportExport {
@Autowired
SxCaptionsRepository sxCaptionsRepository;
public static String DATASOURCE_URL = "/api/bianalysis/template/datasource/storedReport?";
public static String DATASOURCE_URL = "/api/reportwizard/template/datasource/storedReport?";
private static String DATA_ADAPTER_JSON_FILE = "JsonDataAdapter.jrdax";
public static String DATA_ADAPTER_REST = "JsonDataAdapterRest.jrdax";
public static String MAIN_REPORT = "MainReport.jrxml";

212
src/de/superx/bianalysis/service/UserRestrictionService.java

@ -55,37 +55,6 @@ public class UserRestrictionService { @@ -55,37 +55,6 @@ public class UserRestrictionService {
this.user = user;
this.dataSource = dataSource;
this.jt = new JdbcTemplate(dataSource);
ensureAuthDbStructures();
}
private void ensureAuthDbStructures() {
/* 'view_rechte' wird angepasst:
* Einschränkungen werden als Listen von IDs von Dimensionseinträgen gespeichert.
* Einschränkungen von Faktentabellen ergeben sich daraus anhand der Metadaten. */
jt.execute("DROP TABLE IF EXISTS view_rechte;");
String[] sqlCols = new String[] {
"user_id integer NOT NULL",
"user_name character varying(255)",
"role_name character varying(255)",
"orgunit_lid integer",
"schema_name character varying(255)",
"table_name character varying(255)",
"join_column character varying(255)",
"granted_ids text",
"external_entry smallint DEFAULT 0",
"is_restricted BOOLEAN DEFAULT FALSE",
"is_custom BOOLEAN DEFAULT FALSE"
};
String sqlCreate = "CREATE TABLE IF NOT EXISTS public.user_dimension_grants (\n" + String.join(",\n", sqlCols) + "\n);";
jt.execute(sqlCreate);
for (String colDef : sqlCols) {
String sql = "ALTER TABLE public.user_dimension_grants ADD COLUMN IF NOT EXISTS " + colDef + ";";
jt.execute(sql);
}
}
public void applyMetadataRestrictions() {
@ -97,46 +66,18 @@ public class UserRestrictionService { @@ -97,46 +66,18 @@ public class UserRestrictionService {
for (String tableName : tables) {
String resultSql = buildMetadataTableRestriction(tableName);
if(!resultSql.isBlank()) {
insertRightsViewRestriction(dataSource, "metadata", tableName , "id", resultSql, user.getHisInOneOrgUnitLidOfRole().intValue());
}
}
}
public String buildOrgunitGrantedIds(Integer userOrgunitLid) {
List<Integer> allowedOrgunitLids = new ArrayList<>();
allowedOrgunitLids.add(userOrgunitLid);
allowedOrgunitLids.add(Integer.valueOf(-1));
List<String> params = getRightParamValues
(RightParam.ORGUNIT, Right.CREATE_ANALYSIS, Right.VIEW_REPORT);
if(!params.isEmpty()) {
for (String lid : params) {
allowedOrgunitLids.add(Integer.valueOf(lid));
}
}
Set<Integer> allowedOrgunitsWithChildren = new HashSet<>();
for (Integer lid : allowedOrgunitLids) {
allowedOrgunitsWithChildren.add(lid);
allowedOrgunitsWithChildren.addAll(fetchOrgunitChildren(lid));
insertRightsViewRestriction(dataSource, "metadata", tableName , resultSql,
user.getHisInOneOrgUnitLidOfRole().intValue());
}
String lidsAsString = allowedOrgunitsWithChildren.stream()
.map(String::valueOf)
.collect(Collectors.joining(","));
return lidsAsString;
}
public void applyOrgunitRestrictions() {
public void applyOrgunitRestrictions(Integer userOrgunitLid) {
String tableJoinColSql = """
SELECT DISTINCT ft.tablename, d.joincolumn
FROM metadata.dimension d
LEFT JOIN metadata.facttable ft ON ft.id = d.facttable_id
WHERE (d.tablename = 'dim_orgunit' OR d.tablename = 'dim_orgunit_flat')
WHERE d.tablename = 'dim_orgunit'
OR d.tablename = 'dim_orgunit_flat'
and d.is_restricted = true
""";
@ -153,10 +94,10 @@ public class UserRestrictionService { @@ -153,10 +94,10 @@ public class UserRestrictionService {
continue;
}
String joinColumn = tableJoinColMap.get(tableName);
String restriction = buildOrgunitRestriction(user.getHisInOneOrgUnitLidOfRole(), joinColumn);
//if(!restriction.isEmpty()) {
insertRightsViewRestriction(dataSource, "presentation", tableName, joinColumn, restriction, user.getHisInOneOrgUnitLidOfRole().intValue());
//}
String restriction = buildOrgunitRestriction(userOrgunitLid, joinColumn);
if(!restriction.isEmpty()) {
insertRightsViewRestriction(dataSource, "presentation", tableName, restriction, userOrgunitLid.intValue());
}
}
}
@ -171,16 +112,9 @@ public class UserRestrictionService { @@ -171,16 +112,9 @@ public class UserRestrictionService {
String baseSql = BASE_QUERIES.get(tableName);
String conditions = "";
conditions = buildConditionsForFacttable(topicAreaIds, topicIds);
resultSql = baseSql
resultSql = "WHERE id IN " + baseSql
+ (!conditions.isEmpty() ? " WHERE " + conditions : "") + ")";
List<Map<String, Object>> rows = jt.queryForList(resultSql);
String result = rows.stream()
.map(row -> row.get("id") != null ? row.get("id").toString() : "")
.filter(s -> !s.isEmpty())
.map( id -> "'" + id + "'")
.collect(Collectors.joining(","));
return result;
return resultSql;
}
return "";
}
@ -211,8 +145,7 @@ public class UserRestrictionService { @@ -211,8 +145,7 @@ public class UserRestrictionService {
String restriction = "";
if(!allowedOrgunitsWithChildren.isEmpty()) {
//restriction = "WHERE " + joinColumn + " IN (" + lidsAsString + ")";
restriction = lidsAsString;
restriction = "WHERE " + joinColumn + " IN (" + lidsAsString + ")";
}
return restriction;
}
@ -289,29 +222,28 @@ public class UserRestrictionService { @@ -289,29 +222,28 @@ public class UserRestrictionService {
return whereClause.toString();
}
public void insertRightsViewRestriction(DataSource ds, String schema, String tableName, String joinColumn, String grantedIds, int orgunitLid) {
private void insertRightsViewRestriction(DataSource ds, String schema, String table, String restriction, int orgunitLid) {
String userName = user.getName();
String roleName = user.getRole();
int userId = user.getUserIdAsInt();
try (Connection conn = ds.getConnection();
Statement stmt = conn.createStatement()) {
String sql = "INSERT INTO public.user_dimension_grants(user_id, user_name, "
+ "role_name, orgunit_lid, schema_name, table_name, join_column, granted_ids, external_entry) " +
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
String sql = "INSERT INTO public.view_rechte(user_id, user_name, "
+ "role_name, orgunit_lid, schema_name, table_name, restriction, external_entry) " +
"VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
try (PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setInt(1, userId);
pstmt.setString(2, userName);
pstmt.setString(3, roleName);
pstmt.setInt(4, orgunitLid);
pstmt.setString(5, schema);
pstmt.setString(6, tableName);
pstmt.setString(7, joinColumn);
pstmt.setString(8, grantedIds);
pstmt.setInt(9, 1);
pstmt.setString(6, table);
pstmt.setString(7, restriction);
pstmt.setInt(8, 1);
pstmt.execute();
}
} catch (SQLException e) {
throw new RuntimeException(e);
e.printStackTrace();
}
}
@ -325,7 +257,6 @@ public class UserRestrictionService { @@ -325,7 +257,6 @@ public class UserRestrictionService {
public List<String> getRightParamValues(RightParam param, Right... rights) {
if (user == null) return List.of();
// Recht Rechteparameter, Wert des Rechteparameters
Map<String, Map<String, String>> rightsMap = user.getRightsMap();
Map<String, String> rightParams = findFirstValidRight(rightsMap, rights);
@ -338,24 +269,12 @@ public class UserRestrictionService { @@ -338,24 +269,12 @@ public class UserRestrictionService {
}
private static Map<String, String> findFirstValidRight(Map<String, Map<String, String>> rightsMap, Right... rights) {
List<Right> setRights = Arrays.stream(rights)
.filter(right -> rightsMap.get(right.getString()) != null)
.toList();
if (setRights.size() > 1) {
String setRightsString = setRights.stream()
.map(Right::getString)
.collect(Collectors.joining(", "));
String exceptionMessage = "More than one of the supplied rights is set: " + setRightsString;
throw new IllegalStateException(exceptionMessage);
}
if (setRights.isEmpty()) {
return null;
}
return rightsMap.get(setRights.get(0).getString());
return Arrays.stream(rights)
.map(Right::getString)
.map(rightsMap::get)
.filter(Objects::nonNull)
.findFirst()
.orElse(null);
}
public static String quoteAndJoin(List<String> strings) {
@ -367,88 +286,11 @@ public class UserRestrictionService { @@ -367,88 +286,11 @@ public class UserRestrictionService {
public void clearRestrictions() throws SQLException {
try(Connection dbConnection = dataSource.getConnection()){
Statement stmt = dbConnection.createStatement();
String sql = "DELETE FROM public.user_dimension_grants WHERE user_name = '"
String sql = "DELETE FROM public.view_rechte WHERE user_name = '"
+ user.getUsername() + "' AND role_name = '" + user.getRole()
+ "' AND external_entry = 1 AND orgunit_lid = " + user.getHisInOneOrgUnitLidOfRole().intValue();
stmt.execute(sql);
}
}
/*
* Die BI-Dimensionstabellen werden Nutzerbezogen zugriffsbeschränkt.
* Die Beschränkungen ergeben sich idR aus der Rollen-/Rechtekonfiguration in HISinOne.
* Diese Methode "übersetzt" dazwischen:
* Die aus HISinOne ausgelesenen Rechte werden in Listen von Dimensions-IDs pro
* Nutzer/Rolle/Tabelle überführt; das passiert idR beim Login des jeweiligen Nutzers
* (resp. Rollenwechsel) - evtl. kann es später noch weitere Auslöser geben.
* Durchgesetzt werden sie aktuell durch einsetzen der Listen in WHERE-Klauseln,
* die ins generierte SQL eingefügt werden umf die referenzierten DimensionIds in der
* Faktentabelle zu filtern.
* siehe Klasse DbSqlRestrictionProvider */
public void calculateDimensionRestrictions(Integer userPersonId) {
if(userPersonId == null) {
// user is not a h1 user, e.g 'gast'
return;
}
// default ist: meine projekte
//
List<String> params = getRightParamValues
(RightParam.PROJECT, Right.CREATE_ANALYSIS, Right.VIEW_REPORT);
if(params.size() > 1) {
// TODO check if that is even possible using HI1 technology
throw new IllegalArgumentException("Es sollte nur einen Wert für den Rechteparameter 'bianalysis.project' geben.");
}
// 1 - für meine Projekte
// 2 - für alle Projekte
if(!params.isEmpty() && params.get(0).equals("2")) {
// keine restriction für Projekte
return;
}
String tableJoinColSql = """
SELECT DISTINCT ft.tablename, d.joincolumn
FROM metadata.dimension d
LEFT JOIN metadata.facttable ft ON ft.id = d.facttable_id
WHERE d.tablename = 'dim_project'
and d.is_restricted = true
""";
List<Map<String, Object>> rows = jt.queryForList(tableJoinColSql);
Map<String, String> tableJoinColMap = rows.stream()
.collect(Collectors.toMap(
row -> (String) row.get("tablename"),
row -> (String) row.get("joincolumn"),
(existing, replacement) -> existing));
for (String tableName : tableJoinColMap.keySet()) {
if(tableName == null) {
continue;
}
String joinColumn = tableJoinColMap.get(tableName);
String sql = """
SELECT pp.project_id
FROM staging.project_person AS pp
JOIN staging.project_person_position AS ppp
ON pp.id = ppp.project_person_id
JOIN staging.k_project_person_position AS kppp
ON ppp.k_project_person_position_id = kppp.id
WHERE kppp.hiskey_id = 1
AND pp.person_id = ?
""";
List<Integer> grantedProjectIds = jt.queryForList(sql, Integer.class, userPersonId);
String restriction = grantedProjectIds.stream()
.map(String::valueOf)
.collect(Collectors.joining(","));
insertRightsViewRestriction(dataSource, "presentation", tableName, joinColumn, restriction, user.getHisInOneOrgUnitLidOfRole().intValue());
}
}
}

33
src/de/superx/bianalysis/sqlgeneration/SQLGenerator.java

@ -14,9 +14,6 @@ import de.superx.bianalysis.models.DimensionAttribute; @@ -14,9 +14,6 @@ import de.superx.bianalysis.models.DimensionAttribute;
import de.superx.bianalysis.models.FactTable;
import de.superx.bianalysis.models.Filter;
import de.superx.bianalysis.models.Measure;
import net.sf.jsqlparser.JSQLParserException;
import net.sf.jsqlparser.parser.CCJSqlParserUtil;
import net.sf.jsqlparser.statement.Statements;
/**
* Lets consider the following example for the SQL Generation:
@ -141,15 +138,6 @@ public class SQLGenerator { @@ -141,15 +138,6 @@ public class SQLGenerator {
statement.append(buildFilterSection());
statement.append(buildGroupBySection());
statement.append(buildOrderBySection());
String result = statement.toString();
try {
Statements statements = CCJSqlParserUtil.parseStatements(result);
if (statements.size() > 1) {
throw new RuntimeException("Only single sql statement allowed");
}
} catch (JSQLParserException e) {
throw new RuntimeException("Couldn't parse sql", e);
}
return statement.toString();
}
@ -406,21 +394,20 @@ public class SQLGenerator { @@ -406,21 +394,20 @@ public class SQLGenerator {
if(reportMetadata.leftDimensionAttributes == null || reportMetadata.leftDimensionAttributes.size() <= 0) {
return "";
}
List<DimensionAttribute> validAttributes = new ArrayList<>();
for (DimensionAttribute attr : reportMetadata.leftDimensionAttributes) {
if (!attr.isNullAttribute()) {
validAttributes.add(attr);
}
}
StringBuilder statement = new StringBuilder("GROUP BY GROUPING SETS (");
StringJoiner groups = new StringJoiner(", ");
for (int i = 0; i < validAttributes.size(); i++) {
for (int i = 0; i < reportMetadata.leftDimensionAttributes.size(); i++) {
DimensionAttribute a = reportMetadata.leftDimensionAttributes.get(i);
if(a.isNullAttribute()) {
continue;
}
StringJoiner group = new StringJoiner(", ");
for (int j = 0; j < validAttributes.size() - i; j++) {
DimensionAttribute attr = validAttributes.get(j);
for (int j = 0; j < reportMetadata.leftDimensionAttributes.size() - i; j++) {
DimensionAttribute attr = reportMetadata.leftDimensionAttributes.get(j);
if(attr.isNullAttribute()) {
continue;
}
group.add(attr.getDimensionTableAlias() + "." + attr.getColumnname());
if(attr.getSortOrderColumn() != null) {
group.add(attr.getDimensionTableAlias() + "." + attr.getSortOrderColumn());

11
src/de/superx/bianalysis/sqlgeneration/SQLGeneratorTotals.java

@ -1,11 +1,8 @@ @@ -1,11 +1,8 @@
package de.superx.bianalysis.sqlgeneration;
import java.sql.SQLException;
import java.util.List;
import java.util.StringJoiner;
import org.postgresql.core.Utils;
import de.superx.bianalysis.ReportMetadata;
import de.superx.bianalysis.models.DimensionAttribute;
import de.superx.bianalysis.models.Filter;
@ -66,13 +63,7 @@ public class SQLGeneratorTotals { @@ -66,13 +63,7 @@ public class SQLGeneratorTotals {
}
StringJoiner joiner = new StringJoiner(", ");
for (String value : values) {
try {
String escaped = Utils.escapeLiteral(null, value, false).toString();
joiner.add("'" + escaped + "'");
} catch (SQLException e) {
throw new IllegalArgumentException(
"Cannot create SQL list: invalid filter value", e);
}
joiner.add("'"+value+"'");
}
return joiner.toString();
}

6
src/de/superx/bin/ComponentAdminCLI.java

@ -32,11 +32,11 @@ import de.superx.rest.model.job.Component; @@ -32,11 +32,11 @@ import de.superx.rest.model.job.Component;
import de.superx.rest.model.job.JobExecutionStatus;
import de.superx.servlet.SuperXManager;
import de.superx.servlet.SxPools;
import de.superx.spring.AppConfig;
import de.superx.spring.HisInOneConfiguration;
import de.superx.spring.batch.His1DataSources;
import de.superx.spring.batch.tasklet.ExecuteSqlScriptTasklet;
import de.superx.spring.cli.config.CLIConfig;
import de.superx.spring.config.BatchConfig;
import de.superx.spring.config.DataJdbcConfiguration;
import de.superx.spring.config.ServiceConfig;
import de.superx.spring.service.BatchJobDescriptionAdapter;
@ -56,7 +56,7 @@ import de.superx.util.PathAndFileUtils; @@ -56,7 +56,7 @@ import de.superx.util.PathAndFileUtils;
* The class is just meant to be a frontend, so it uses the same implementation as the web application
* (which happens to be the "EtlJobApi" bean)
* However, there are to be some things to be considered:
* - The "jobLauncher" bean from the "AppConfig" class works asynchronously, which is fine for the
* - The "jobLauncher" bean from the "BatchConfig" class works asynchronously, which is fine for the
* web application context, but in the CLI context, it is overridden by a synchronous implementation
* (in fact the tweaks to get the configurations ready for the CLI context, are placed in the
* "CLIConfig" class).
@ -409,7 +409,7 @@ public class ComponentAdminCLI { @@ -409,7 +409,7 @@ public class ComponentAdminCLI {
* - so it's alright to override some beans via "CLIConfig"
*/
if (APPLICATION_CONTEXT == null) {
APPLICATION_CONTEXT = new AnnotationConfigApplicationContext(AppConfig.class, DataJdbcConfiguration.class, CLIConfig.class, ServiceConfig.class);
APPLICATION_CONTEXT = new AnnotationConfigApplicationContext(BatchConfig.class, DataJdbcConfiguration.class, CLIConfig.class, ServiceConfig.class);
HisInOneConfiguration.configSuperXDbformsXML("pg", SuperXManager.getWEB_INFPfad() + File.separator + "..");
}
// Override the JobDescriptionSource Bean if the -f flag is passed.

4
src/de/superx/bin/DataProfiler.java

@ -45,9 +45,9 @@ import org.springframework.jdbc.core.RowMapper; @@ -45,9 +45,9 @@ import org.springframework.jdbc.core.RowMapper;
import de.superx.servlet.SuperXManager;
import de.superx.servlet.SxPools;
import de.superx.spring.AppConfig;
import de.superx.spring.batch.His1DataSources;
import de.superx.spring.cli.config.CLIConfig;
import de.superx.spring.config.BatchConfig;
import de.superx.spring.config.DataJdbcConfiguration;
import de.superx.spring.config.ServiceConfig;
@ -591,7 +591,7 @@ public class DataProfiler { @@ -591,7 +591,7 @@ public class DataProfiler {
* - so it's alright to override some beans via "CLIConfig"
*/
if (APPLICATION_CONTEXT == null) {
APPLICATION_CONTEXT = new AnnotationConfigApplicationContext(AppConfig.class, DataJdbcConfiguration.class, CLIConfig.class, ServiceConfig.class);
APPLICATION_CONTEXT = new AnnotationConfigApplicationContext(BatchConfig.class, DataJdbcConfiguration.class, CLIConfig.class, ServiceConfig.class);
}
return APPLICATION_CONTEXT;
}

4
src/de/superx/bin/EtlFuzzer.java

@ -43,9 +43,9 @@ import de.superx.rest.model.job.JobExecutionStatus; @@ -43,9 +43,9 @@ import de.superx.rest.model.job.JobExecutionStatus;
import de.superx.rest.model.job.StepExecutionStatus;
import de.superx.servlet.SuperXManager;
import de.superx.servlet.SxPools;
import de.superx.spring.AppConfig;
import de.superx.spring.batch.His1DataSources;
import de.superx.spring.cli.config.CLIConfig;
import de.superx.spring.config.BatchConfig;
import de.superx.spring.config.DataJdbcConfiguration;
@ -270,7 +270,7 @@ public class EtlFuzzer { @@ -270,7 +270,7 @@ public class EtlFuzzer {
* - so it's alright to override some beans via "CLIConfig"
*/
if (APPLICATION_CONTEXT == null) {
APPLICATION_CONTEXT = new AnnotationConfigApplicationContext(AppConfig.class, DataJdbcConfiguration.class, CLIConfig.class);
APPLICATION_CONTEXT = new AnnotationConfigApplicationContext(BatchConfig.class, DataJdbcConfiguration.class, CLIConfig.class);
}
return APPLICATION_CONTEXT;
}

12
src/de/superx/bin/ExecuteMask.java

@ -4,6 +4,8 @@ import static de.superx.servlet.ServletBasics.getParamChecked; @@ -4,6 +4,8 @@ import static de.superx.servlet.ServletBasics.getParamChecked;
import static de.superx.servlet.SxSQL_Server.DEFAULT_MANDANTEN_ID;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.net.URISyntaxException;
@ -17,9 +19,11 @@ import java.util.LinkedList; @@ -17,9 +19,11 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Locale;
import java.util.StringTokenizer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.GenericApplicationContext;
import org.springframework.mock.web.MockHttpServletRequest;
@ -45,12 +49,10 @@ import de.superx.servlet.SuperXManager; @@ -45,12 +49,10 @@ import de.superx.servlet.SuperXManager;
import de.superx.servlet.SxPools;
import de.superx.servlet.UserInitializer;
import de.superx.servlet.XmlTransformer;
import de.superx.spring.AppConfig;
import de.superx.spring.cli.config.CLIConfig;
import de.superx.spring.config.BatchConfig;
import de.superx.spring.config.DataJdbcConfiguration;
import de.superx.spring.config.ServiceConfig;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import net.sf.jasperreports.engine.JRException;
public class ExecuteMask {
@ -534,7 +536,7 @@ public class ExecuteMask { @@ -534,7 +536,7 @@ public class ExecuteMask {
* - so it's alright to override some beans via "CLIConfig"
*/
if (APPLICATION_CONTEXT == null) {
APPLICATION_CONTEXT = new AnnotationConfigApplicationContext(AppConfig.class, DataJdbcConfiguration.class, CLIConfig.class, ServiceConfig.class);
APPLICATION_CONTEXT = new AnnotationConfigApplicationContext(BatchConfig.class, DataJdbcConfiguration.class, CLIConfig.class, ServiceConfig.class);
}
return APPLICATION_CONTEXT;
}

11
src/de/superx/bin/FMParser.java

@ -44,7 +44,7 @@ public class FMParser extends TemplateProcessor { @@ -44,7 +44,7 @@ public class FMParser extends TemplateProcessor {
private Statement stm;
private String isSimpleParser;
private String myParams="";
private static String sqlDialect;
public FMParser(String mandantenId, Connection con) throws SQLException {
@ -65,16 +65,7 @@ public class FMParser extends TemplateProcessor { @@ -65,16 +65,7 @@ public class FMParser extends TemplateProcessor {
outfile = GetOpts.getValue(Options.opt_out);
if (GetOpts.isPresent(Options.opt_simpPars))
isSimpleParser = GetOpts.getValue(Options.opt_simpPars);
if (GetOpts.isPresent(Options.opt_params))
myParams = GetOpts.getValue(Options.opt_params);
String input = StringUtils.readFile(new File(infile));
if(myParams !="")
{
String paramName = "<<" +myParams.substring(0, myParams.indexOf("="))+">>";
String paramVal = "'"+myParams.substring(myParams.indexOf("=") + 1)+"'";
input=de.memtext.util.StringUtils.replace(input, paramName, paramVal);
}
String output = "";
if (isSimpleParser != null && isSimpleParser.equalsIgnoreCase("true")) {
output = simpleParser(dbprop, input);

3
src/de/superx/bin/fm/EtlStarter.java

@ -39,7 +39,6 @@ import org.pentaho.metastore.stores.memory.MemoryMetaStore; @@ -39,7 +39,6 @@ import org.pentaho.metastore.stores.memory.MemoryMetaStore;
import de.superx.servlet.SuperXManager;
import de.superx.servlet.SxPools;
import de.superx.spring.batch.His1DataSources;
import de.superx.spring.service.ApplicationContextHolder;
import freemarker.template.SimpleScalar;
import freemarker.template.TemplateModelException;
import freemarker.template.TemplateTransformModel;
@ -196,7 +195,7 @@ public class EtlStarter implements TemplateTransformModel { @@ -196,7 +195,7 @@ public class EtlStarter implements TemplateTransformModel {
* get all db connections configured in databases.xml as
* DataSource's by name
*/
His1DataSources dataSources = ApplicationContextHolder.getBean("dataSources", His1DataSources.class);
His1DataSources dataSources = SuperXManager.getBean("dataSources", His1DataSources.class);
// if no dataSources defined, at least try eduetl
Set<String> dbNames = dataSources != null ? dataSources.getKeys() : Set.of("eduetl");
for (String dbName : dbNames) {

4
src/de/superx/bin/fm/SqlVarsDirective.java

@ -18,7 +18,7 @@ import org.springframework.jdbc.core.ResultSetExtractor; @@ -18,7 +18,7 @@ import org.springframework.jdbc.core.ResultSetExtractor;
import org.springframework.jdbc.support.rowset.SqlRowSet;
import de.superx.common.TemplateProcessor.SqlVarType;
import de.superx.spring.service.ApplicationContextHolder;
import de.superx.servlet.SuperXManager;
import freemarker.core.Environment;
import freemarker.template.ObjectWrapper;
import freemarker.template.Template;
@ -74,7 +74,7 @@ public class SqlVarsDirective implements TemplateDirectiveModel { @@ -74,7 +74,7 @@ public class SqlVarsDirective implements TemplateDirectiveModel {
}
JdbcTemplate jt = new JdbcTemplate();
DataSource dataSource = ApplicationContextHolder.getBean("dataSource", DataSource.class);
DataSource dataSource = SuperXManager.getBean("dataSource", DataSource.class);
jt.setDataSource(dataSource);
Object result = null;

14
src/de/superx/common/FieldXmlEncoder.java

@ -1,7 +1,6 @@ @@ -1,7 +1,6 @@
package de.superx.common;
import java.util.Enumeration;
import java.util.List;
import javax.swing.tree.TreeNode;
import javax.swing.tree.TreePath;
@ -17,20 +16,11 @@ public class FieldXmlEncoder { @@ -17,20 +16,11 @@ public class FieldXmlEncoder {
*
* @return
*/
public static String toXml(Field f, boolean isFullXMLRequired, int rownr,
List<String> dependentOnFields) {
public static String toXml(Field f, boolean isFullXMLRequired, int rownr) {
StringBuffer result = new StringBuffer("<feld " + dynamic(f) + ">\n");
result.append(getBasics(f));
appendSichtgruppe(f, result);
appendRelation(f, isFullXMLRequired, result);
if(dependentOnFields!=null && dependentOnFields.size()>0)
{
result.append("<dependentOn>\n");
for (int i = 0; i < dependentOnFields.size(); ++i) {
result.append("<fieldname>"+dependentOnFields.get(i)+"</fieldname>");
}
result.append("</dependentOn>");
}
// result.append(" <maskenname>Nutzungsprotokolle (intern)</maskenname>
result.append("<rownr>" + rownr + "</rownr>\n");
result.append("</feld>\n");
@ -54,7 +44,7 @@ public class FieldXmlEncoder { @@ -54,7 +44,7 @@ public class FieldXmlEncoder {
if (param == null) throw new IllegalArgumentException("Param null");
StringBuffer result = new StringBuffer();
if (param.equalsIgnoreCase("!all"))
result.append(toXml(f, true, 0,null));// bei Ajax-nachladen wird rownr
result.append(toXml(f, true, 0));// bei Ajax-nachladen wird rownr
// nicht benötigt
else {
result.append("<feld " + dynamic(f) + ">\n<relation>");

63
src/de/superx/common/Maske.java

@ -12,7 +12,6 @@ import java.io.StringReader; @@ -12,7 +12,6 @@ import java.io.StringReader;
import java.io.StringWriter;
import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.text.DateFormat;
import java.text.ParseException;
@ -982,13 +981,11 @@ public class Maske extends NamedIdObject { @@ -982,13 +981,11 @@ public class Maske extends NamedIdObject {
}
result.append("<felder>");
for (Iterator it = individualFields.iterator(); it.hasNext();) {
Field feld = (Field) it.next();
List<String> dependentOnFields=getDependentOnFields(feld);
if (feld.getY() == 0) rownr++;
result.append(FieldXmlEncoder.toXml(feld, isFullXMLRequired, rownr,dependentOnFields));
result.append(FieldXmlEncoder.toXml(feld, isFullXMLRequired, rownr));
}
result.append("<rownr>" + rownr + "</rownr></felder>\n");
// derzeit wird nur das erste Stylesheet zur Liste hinzugefügt
@ -1004,25 +1001,6 @@ public class Maske extends NamedIdObject { @@ -1004,25 +1001,6 @@ public class Maske extends NamedIdObject {
return result;
}
/* Feldabhängigkeiten pro Maske abfragen, also ob ein Maskenfeld in der Spalte "relation"
* auf ein anderes Maskenfeld verweist.
* Wird nachher im XML-Strom im Element <dependentOn> abgelegt */
private List<String> getDependentOnFields(Field fld)
{
List<String> dependentOnFields = new ArrayList();
String relation=fld.getRelation();
if(relation !=null) {
for (Iterator it = individualFields.iterator(); it.hasNext();) {
Field feld = (Field) it.next();
if(relation.indexOf("<<"+feld.getName()+">>")>-1)
{
dependentOnFields.add(feld.getName());
}
}
}
return dependentOnFields;
}
/**
* Bereitet aus der Maske in XML-Format einen HTML-String vor, der
* zurückgeliefert werden kann. Oder aktualisiert diesen.
@ -1102,10 +1080,6 @@ public class Maske extends NamedIdObject { @@ -1102,10 +1080,6 @@ public class Maske extends NamedIdObject {
sharedData.setErgebnisElementOrdNr(0);
HashMap map = new HashMap();
map.putAll(user.getBasicMap());
if (SxPools.get(mandantenID).getRepository().containsKey("K_Nutzungsstatistiken")&&SxPools.get(mandantenID).getRepository().get("K_Nutzungsstatistiken").toString().equals("2"))
{
insertIntoMaskenProtokoll(user,dbCon);
}
if (!isReuseResult()) {
String keyfieldsused = ServletHelper.getParameter(request, RequestParameter.keyfieldsused);
if (EqualsUtil.areEqual(keyfieldsused, "true")) {
@ -1189,22 +1163,7 @@ public class Maske extends NamedIdObject { @@ -1189,22 +1163,7 @@ public class Maske extends NamedIdObject {
return resultstr;
}
private void insertIntoMaskenProtokoll(SxUser user, Connection dbCon) throws SQLException {
Connection con=dbCon;
boolean conUebergeben=true;
if (dbCon==null)
{
conUebergeben=false;
con=SxPools.get(mandantenID).getConnection();
}
PreparedStatement pst=con.prepareStatement("insert into masken_protokoll (maskeninfo_id,user_id,zeitpunkt) values (?,?,now());");
pst.setInt(1, Integer.parseInt(this.getId().toString()));
pst.setInt(2, Integer.parseInt(user.getId().toString()));
pst.executeUpdate();
pst.close();
if (!conUebergeben) {con.close();}
}
// MB 17.8.2011 Defaultsicht setzen falls gewünscht
public void setFieldsDefaultSichten(SxUser user, HttpServletRequest request) throws SQLException, DBServletException, KeyParentEqualException, CloneNotSupportedException,
@ -2042,22 +2001,6 @@ public class Maske extends NamedIdObject { @@ -2042,22 +2001,6 @@ public class Maske extends NamedIdObject {
Logger.getLogger("superx_" + mandantenID + "_xml").log(Level.DEBUG, "Hinzufügen von " + key + ":\n " + customadd + DateUtils.getNowString());
result.append(customadd);
}
if (key.startsWith("CUSTOM_CSS")) {
String customcss = ((RepositoryItemCollection) SxPools.get(mandantenID).getRepository().get(key))
.get("content").toString();
if(customcss!=null && !customcss.trim().equals(""))
{
result.append("<custom_css><style type=\"text/css\"><![CDATA["+customcss+"]]></style></custom_css>");
}
}
if (key.startsWith("CUSTOM_JS")) {
String customjs = ((RepositoryItemCollection) SxPools.get(mandantenID).getRepository().get(key))
.get("content").toString();
if(customjs!=null && !customjs.trim().equals(""))
{
result.append("<custom_js><script language=\"javascript\"><![CDATA["+customjs+"]]></script></custom_js>");
}
}
}
}

254
src/de/superx/common/SxUser.java

@ -32,21 +32,18 @@ import de.memtext.rights.Rights; @@ -32,21 +32,18 @@ import de.memtext.rights.Rights;
import de.memtext.util.CryptUtils;
import de.memtext.util.DateUtils;
import de.superx.servlet.ServletUtils;
import de.superx.servlet.SuperXManager;
import de.superx.servlet.SxSQL_Server;
import de.superx.servlet.Themenbaum;
import de.superx.util.PathAndFileUtils;
import freemarker.template.TemplateBooleanModel;
public class SxUser extends User implements Serializable, UserDetails, GrantedAuthoritiesContainer {
public static final String USER_ROLE_PLACEHOLDER = "UserRole";
public static final String USER_ROLE_PLACEHOLDER = "UserRole";
public static final String USER_ROLE_ID_PLACEHOLDER = "UserRoleId";
public static final String USER_HISINONE_ORGUNIT_LID_PLACEHOLDER = "UserHISinOneOrgunitLid";
private final UUID uuid = UUID.randomUUID();
private final UUID uuid = UUID.randomUUID();
private Themenbaum themenbaum = new Themenbaum();
private String mandantenID = DEFAULT_MANDANTEN_ID;
private Sichten sichten = new Sichten();
@ -55,16 +52,16 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu @@ -55,16 +52,16 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu
private Collection groupnames = new LinkedList();
private Collection sachgebiete = new LinkedList();
private String[] oldShas = new String[7];
private String currentSha = "";
private String currentSha="";
private SxFinRechte finRechte = new SxFinRechte();
private HashMap basicMap = new HashMap();
private SelectionBuffer sb = new SelectionBuffer();
// private Set<String> maskenEditRights = new HashSet<>();
private boolean hasMaskenEditRights = false;
private Collection hiddenFields = new LinkedList();
private Map<String, Map<String, String>> rightsMap = new HashMap<String, Map<String, String>>();
private String role = "";
private String role="";
private Integer roleId;
private Integer userPersonId;
private Integer hisInOneOrgUnitLidOfRole;
private Set<OrgUnit> allowedOrgUnits = new TreeSet<OrgUnit>();
private Set<OrgUnit> implicitlyAllowedOrgUnits = new TreeSet<OrgUnit>();
@ -88,15 +85,15 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu @@ -88,15 +85,15 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu
public SxUser(String username, Integer userid) throws SQLException, DBServletException, TransformerException {
super(username, userid);
init();
}
public SxUser(String username, Integer userid, String mandantenId)
throws SQLException, DBServletException, TransformerException {
public SxUser(String username, Integer userid, String mandantenId) throws SQLException, DBServletException, TransformerException {
super(username, userid);
this.mandantenID = mandantenId;
init();
}
/**
* Nur für Testfälle - bei Echtbetrieb wird ID benötigt!!
*
@ -110,6 +107,7 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu @@ -110,6 +107,7 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu
sichten.setUser(this);
basicMap.put("SxFinRechte", finRechte);
basicMap.put("SxKontierungsrechte", sxKontierungsrechte);
basicMap.put("Username", getName());
basicMap.put("today", DateUtils.getTodayString());
basicMap.put("yeartoday", DateUtils.getYear(new java.sql.Date(new java.util.Date().getTime())));
@ -133,6 +131,8 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu @@ -133,6 +131,8 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu
return ((Integer) getId()).intValue();
}
public SelectionBuffer getSelectionBuffer() {
return sb;
}
@ -154,7 +154,8 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu @@ -154,7 +154,8 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu
return basicMap;
}
public Themenbaum getThemenbaum() {
public Themenbaum getThemenbaum()
{
return themenbaum;
}
@ -165,20 +166,12 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu @@ -165,20 +166,12 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu
public void setUserid(Integer id) {
super.setId(id);
}
public void setRoleId(Integer id) {
this.roleId = id;
basicMap.put(USER_ROLE_ID_PLACEHOLDER, roleId);
}
public void setUserPersonId(Integer id) {
this.userPersonId = id;
}
public Integer getUserPersonId() {
return userPersonId;
}
public String getRole() {
return role != null ? role : "";
}
@ -194,7 +187,7 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu @@ -194,7 +187,7 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu
public void clearCache() {
sichten.clear();
}
public void initErlaubteMasken(List<Integer> maskenTids) {
erlaubteMaskenTids.addAll(maskenTids);
basicMap.put("UserMaskRights", getMaskRights());
@ -215,24 +208,21 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu @@ -215,24 +208,21 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu
* geworfen
*/
public void checkAuthentificationForMask(String tidStr) {
if (tidStr == null) {
throw new IllegalStateException("Kann Maske nicht öffnen DETAILS:tid parameter war null");
}
if (!isMaskAllowed(tidStr)) {
throw new IllegalArgumentException("Sie haben keine Berechtigung für Maske mit ID-Nummer " + tidStr);
}
if (tidStr == null) throw new IllegalStateException("Kann Maske nicht öffnen DETAILS:tid parameter war null");
if (!isMaskAllowed(tidStr)) throw new IllegalArgumentException("Sie haben keine Berechtigung für Maske mit ID-Nummer " + tidStr);
}
boolean isMaskAllowed(String tidStr) {
boolean result = false;
if (isAdmin()) {
if (isAdmin())
result = true;
} else {
else
try {
result = erlaubteMaskenTids.contains(Integer.valueOf(tidStr));
} catch (Exception e) {
}
}
return result;
}
@ -245,9 +235,7 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu @@ -245,9 +235,7 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu
String sha1 = CryptUtils.encodeSHA(check);
String sha2 = CryptUtils.encodeSHA(check + CryptUtils.geheimnis1);
for (int i = 0; i < 7; i++) {
if (oldShas[i] != null && (sha1.equals(oldShas[i]) || sha2.equals(oldShas[i]))) {
result = true;
}
if (oldShas[i] != null && (sha1.equals(oldShas[i]) || sha2.equals(oldShas[i]))) result = true;
}
return result;
}
@ -255,9 +243,7 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu @@ -255,9 +243,7 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu
public boolean isPWSHAUsedBefore(String sha) {
boolean result = false;
for (int i = 0; i < 7; i++) {
if (oldShas[i] != null && sha.equals(oldShas[i])) {
result = true;
}
if (oldShas[i] != null && sha.equals(oldShas[i])) result = true;
}
return result;
}
@ -289,20 +275,17 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu @@ -289,20 +275,17 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu
public String getUser_PW_Command(int gueltigkeit) {
String gueltig = "'1.1.3000'";
if (gueltigkeit > 0) {
gueltig = "'"
+ DateUtils.formatGerman(
DateUtils.makeFutureDate(new java.sql.Date(new java.util.Date().getTime()), gueltigkeit))
+ "'";
gueltig = "'" + DateUtils.formatGerman(DateUtils.makeFutureDate(new java.sql.Date(new java.util.Date().getTime()), gueltigkeit)) + "'";
}
String result = "delete from user_pw where userinfo_id='" + this.getId()
+ "'; insert into user_pw (userinfo_id,pw_gueltig_bis,old_sha1,old_sha2,old_sha3,old_sha4,old_sha5,old_sha6,old_sha7) values ('"
+ getId() + "',date_val(" + gueltig + ")";
+ "'; insert into user_pw (userinfo_id,pw_gueltig_bis,old_sha1,old_sha2,old_sha3,old_sha4,old_sha5,old_sha6,old_sha7) values ('" + getId() + "',date_val("
+ gueltig + ")";
for (int i = 0; i < 7; i++)
if (oldShas[i] == null) {
if (oldShas[i] == null)
result += ",null";
} else {
else
result += ",'" + oldShas[i] + "'";
}
result += ")";
return result;
}
@ -315,24 +298,26 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu @@ -315,24 +298,26 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu
this.currentSha = sha;
}
public void initFinRechte(SxResultSet rs, int finRightVariant, SxResultSet rsProjToInst, boolean is0FINJoker,
HashMap repository) {
public void initFinRechte(SxResultSet rs, int finRightVariant, SxResultSet rsProjToInst, boolean is0FINJoker, HashMap repository) {
finRechte.setVariant(finRightVariant);
finRechte.setRepository(repository);
finRechte.set0FINJoker(is0FINJoker);
if (isAdmin()) {
finRechte.setHasAllRights(true);
}
if (isAdmin()) finRechte.setHasAllRights(true);
for (Iterator it = rs.iterator(); it.hasNext();) {
SxResultRow row = (SxResultRow) it.next();
finRechte.createAndAddEntry(row);
}
for (Iterator it = rsProjToInst.iterator(); it.hasNext();) {
SxResultRow row = (SxResultRow) it.next();
finRechte.addProj((String) row.get(0));
}
}
public void addGruppe(String groupid, String groupname) {
groups.add(groupid);
groupnames.add(groupname);
@ -347,6 +332,7 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu @@ -347,6 +332,7 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu
basicMap.put("IsUserInGroup", new IsUserInGroup(this));
basicMap.put("IsUserInGroupWithName", new IsUserInGroupWithName(this));
basicMap.put("IsUserInAtLeastOneGroup", new IsUserInAtLeastOneGroup(this));
}
public String getSachgebiete() {
@ -356,7 +342,7 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu @@ -356,7 +342,7 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu
}
return result.toString();
}
public String getSachgebieteIn() {
StringBuffer result = new StringBuffer();
for (Iterator it = sachgebiete.iterator(); it.hasNext();) {
@ -385,6 +371,7 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu @@ -385,6 +371,7 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu
}
public boolean isInGroup(String group) {
return groups.contains(group);
}
@ -403,17 +390,22 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu @@ -403,17 +390,22 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu
hiddenFields.add(row.get(0));
}
}
public void setMaskenEditRights(SxResultSet rs) {
// for (Iterator it = rs.iterator(); it.hasNext();) {
// SxResultRow row = (SxResultRow) it.next();
// maskenEditRights.add((String)row.get(0));
// }
Iterator it = rs.iterator();
if (it.hasNext()) {
SxResultRow row = (SxResultRow) it.next();
Object o = row.get(0);
this.hasMaskenEditRights = ((Number) o).intValue() > 0;
this.hasMaskenEditRights = ((Number)o).intValue() > 0;
}
}
public boolean isFieldHidingWanted(Object id) {
// System.out.println(id+":"+hiddenFields.contains(id));
return hiddenFields.contains(id);
}
@ -494,7 +486,7 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu @@ -494,7 +486,7 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu
return SxUser.this.role;
}
});
// add rights
for (String right : rightsMap.keySet()) {
authorities.add(new GrantedAuthority() {
@ -504,6 +496,7 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu @@ -504,6 +496,7 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu
}
});
}
return authorities;
}
@ -517,28 +510,29 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu @@ -517,28 +510,29 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu
});
}
private String getRoleString() {
String rolle = "standard"; // ohne HisInOne
if (getRoles().size() > 0) {
rolle = StringUtils.join(this.getRoles(), ", ");
}
private String getRoleString()
{
String rolle="standard"; //ohne HisInOne
if (getRoles().size()>0)
rolle=StringUtils.join(this.getRoles(), ", ");
return rolle;
}
public void initKontierungsrechte() throws SQLException, DBServletException {
if (isAdmin()) {
if (isAdmin())
sxKontierungsrechte.setHasAllRights(true);
} else {
else {
sxKontierungsrechte.clearAll();
SxResultSet rs = ServletUtils
.executeALL_el(null, null, "Einlesen von Kontierungsrechten für Benutzer " + getId(),
SxKontierungsrechte.readingSQL + getId(), getMandantenID(), true)
.getResultSet();
.executeALL_el(null, null, "Einlesen von Kontierungsrechten für Benutzer " + getId(), SxKontierungsrechte.readingSQL + getId(), getMandantenID(), true)
.getResultSet();
for (Iterator it = rs.iterator(); it.hasNext();) {
SxResultRow row = (SxResultRow) it.next();
sxKontierungsrechte.createAndAddEntry(row);
}
}
}
public Integer getHisInOneOrgUnitLidOfRole() {
@ -547,8 +541,7 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu @@ -547,8 +541,7 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu
public void setHisInOneOrgUnitLidOfRole(Integer lid) {
this.hisInOneOrgUnitLidOfRole = lid;
// remove if 'null': behaves as if 'unset' in Freemarker an homebrew variable
// replacement
// remove if 'null': behaves as if 'unset' in Freemarker an homebrew variable replacement
basicMap.remove(USER_HISINONE_ORGUNIT_LID_PLACEHOLDER);
if (lid != null) {
basicMap.put(USER_HISINONE_ORGUNIT_LID_PLACEHOLDER, lid.toString());
@ -560,9 +553,7 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu @@ -560,9 +553,7 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu
}
/**
* Saiku braucht alle Schlüssel einzeln sowie explizit Unbekannt und Leer falls
* Berechtigung da
*
* Saiku braucht alle Schlüssel einzeln sowie explizit Unbekannt und Leer falls Berechtigung da
* @return
*/
public Set<String> getAllAllowedOrgUnitsForSaiku() {
@ -573,25 +564,25 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu @@ -573,25 +564,25 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu
orgUnitRights.addLiveMappingRights(optionalLogMessages, mandantenID);
if (hasAllOrgUnitRights()) { // Berechtigung auf alle orgunits -> Leer/Unbekannt hinzufügen siehe #121106
orgUnitRights.add("Unbekannt");
orgUnitRights.add("-999990"); // "Leer"
orgUnitRights.add("-999990"); //"Leer"
}
return orgUnitRights.getAllRightKeys();
}
public String getUUID() {
return uuid.toString();
public String getUUID()
{
return uuid.toString();
}
@Override
public int hashCode() {
return uuid.hashCode();
}
return uuid.hashCode();
}
@Override
public boolean equals(Object o) {
return hashCode() == o.hashCode();
public boolean equals(Object o)
{
return hashCode()==o.hashCode();
}
@Override
public String toString() {
return super.toString() + " (" + getRoleString() + ")";
@ -619,108 +610,27 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu @@ -619,108 +610,27 @@ public class SxUser extends User implements Serializable, UserDetails, GrantedAu
public boolean hasAllOrgUnitRights() {
boolean result = false;
if (isAdmin()) {
if (isAdmin())
result = true;
} else {
else {
for (OrgUnit ou : allowedOrgUnits) {
if (ou.getApnr().contentEquals("0")) {
result = true;
}
if (ou.getApnr().contentEquals("0")) result = true;
}
}
return result;
}
/*
* Es kann wohl passieren, dass im Betrieb die Komponentenupgrades nicht gemacht werden.
* Diese sind aber notwendig für die korrekte Zuordnung von dbforms zu Sachgebieten und
* somit auch für die korrekte Autorisierung.
* Mit dieser Methode kann geprüft werden, ob die Komponente, zu der ein dbForms gehört,
* aktuell ist.
*/
private boolean isModuleUpdated(String dbFormName) {
String lookUpSql = """
SELECT
dv.his_system,
trim(df.name) AS dbforms_name,
trim(df.form_path) AS dbforms_path,
trim(st.name) AS table_name,
dv.version_hash
FROM
db_forms AS df
JOIN sx_tables st ON df.tablename = st.name
JOIN db_version dv ON st.systeminfo_id = dv.systeminfo_id
WHERE trim(df.name) = '""" + dbFormName + "';";
try {
SxResultSet result = ServletUtils.execute("Berechtigungsprüfung", lookUpSql,
SxSQL_Server.DEFAULT_MANDANTEN_ID);
for (Iterator it = result.iterator(); it.hasNext();) {
SxResultRow row = (SxResultRow) it.next();
String hisSystem = (String)row.get(0);
String dbVersionHash = (String)row.get(4);
String fileVersionHash = PathAndFileUtils.getModuleHash(hisSystem);
if (dbVersionHash.equals(fileVersionHash)) {
return true;
}
}
return false;
} catch (Exception e) {
return false;
}
}
/*
* Prüft die Autorisierung für die jsp-Seiten unter "superx/edit"; diese wird durch die Zuordnung in
* der Datenbank ermittelt; das SQL, welches diese schreibt, wird aus der Modul-XML generiert
* - aus den Einträge unter "/module/dbforms/form".
* Aus denselben Einträgen werden idR auch die zugehörigen dbForms-jep-Seiten generiert,
* sodass es normal eine Zuordnung in der DB für eine jsp-Seite gibt.
* Es gibt aber einen Sonderfall: Es gibt auch jsp-Seiten, die nicht generiert werden (meist welche,
* die aus der Kopie einer generierten erzeugt wurden).
* Für diese gibt es demzufolge auch keine explizite Zuordnung in der DB.
* Hier gilt:
* Sie gehören per 'dbFormName' zu einer _Gruppe_ aus dbForms-jsps, von denen mindestens eine
* generiert sein muss und somit eine Zuordnung in der DB hat.
*/
public boolean hasDbFormRight(String dbFormName) {
if (isAdmin()) {
return true;
}
// ist die Komponente nicht aktuell, wird der Zugriff für nicht-Admins verweigert, weil evtl.
// Zurodnungen veraltet und somit keine korrekte Autorisierung gewährleistet ist
if (!isModuleUpdated(dbFormName)) {
return false;
}
String checkSql = """
SELECT sg.*
FROM
sachgebiete sg
JOIN sachgeb_dbform_bez sdb ON sg.tid = sdb.sachgebiete_id
JOIN db_forms df ON df.tid = dbform_id
JOIN user_sachgeb_bez usb ON sg.tid = usb.sachgebiete_id
WHERE df.name = '""" + dbFormName + "' AND usb.userinfo_id = " + this.getId() + "\n"
+ """
union SELECT sg.*
FROM sachgebiete sg
JOIN sachgeb_dbform_bez sdb ON sg.tid = sdb.sachgebiete_id
JOIN db_forms df ON df.tid = dbform_id
JOIN group_sachgeb_bez gsb ON sg.tid = gsb.sachgebiete_id
JOIN user_group_bez ugb on ugb.groupinfo_id=gsb.groupinfo_id
WHERE df.name = '""" + dbFormName + "' AND ugb.userinfo_id = " + this.getId() + ";";
try {
SxResultSet result = ServletUtils.execute("Berechtigungsprüfung", checkSql,
SxSQL_Server.DEFAULT_MANDANTEN_ID);
return result.iterator().hasNext();
} catch (Exception e) {
return false;
if (!isAdmin()) {
// return maskenEditRights.contains(dbFormName);
return hasMaskenEditRights;
}
return true;
}
public void initThemenbaum()
throws SQLException, DBServletException, TransformerException, NichtAngemeldetException {
public void initThemenbaum() throws SQLException, DBServletException, TransformerException, NichtAngemeldetException {
themenbaum.init((Integer) getId(), getName(), this.isAdmin(), getMandantenID());
}
}
// Created on 06.12.2004 at 14:48:11

4
src/de/superx/db/SpringBeanConnectionProvider.java

@ -7,7 +7,7 @@ import javax.sql.DataSource; @@ -7,7 +7,7 @@ import javax.sql.DataSource;
import org.dbforms.conprovider.ConnectionProvider;
import de.superx.spring.service.ApplicationContextHolder;
import de.superx.servlet.SuperXManager;
public class SpringBeanConnectionProvider extends ConnectionProvider {
@ -24,7 +24,7 @@ public class SpringBeanConnectionProvider extends ConnectionProvider { @@ -24,7 +24,7 @@ public class SpringBeanConnectionProvider extends ConnectionProvider {
@Override
protected void init() throws Exception {
this.dataSource = ApplicationContextHolder.getBean("dataSource", DataSource.class);
this.dataSource = SuperXManager.getBean("dataSource", DataSource.class);
}
}

21
src/de/superx/db/export/ExportConfigReader.java

@ -77,30 +77,13 @@ public class ExportConfigReader { @@ -77,30 +77,13 @@ public class ExportConfigReader {
}
}
// Parse tables with optional per-table column, source, columns, and orderBy overrides
// Parse tables with optional per-table column override
List<ExportTableConfig> tableConfigs = new ArrayList<>();
for (Element tableEl : groupEl.getChildren("table")) {
String tableName = tableEl.getTextTrim();
if (!tableName.isEmpty()) {
String colOverride = tableEl.getAttributeValue("column");
String sourceOverride = tableEl.getAttributeValue("source");
String columnsAttr = tableEl.getAttributeValue("columns");
String orderByAttr = tableEl.getAttributeValue("orderBy");
List<String> columnsList = null;
if (columnsAttr != null && !columnsAttr.isBlank()) {
columnsList = new ArrayList<>();
for (String col : columnsAttr.split(",")) {
String trimmed = col.trim();
if (!trimmed.isEmpty()) {
columnsList.add(trimmed);
}
}
}
tableConfigs.add(new ExportTableConfig(
tableName, colOverride, sourceOverride,
columnsList, orderByAttr));
tableConfigs.add(new ExportTableConfig(tableName, colOverride));
}
}

110
src/de/superx/db/export/ExportConfigWriter.java

@ -1,110 +0,0 @@ @@ -1,110 +0,0 @@
package de.superx.db.export;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.List;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;
import org.springframework.stereotype.Component;
/**
* Writes an {@link ExportConfig} to XML, producing the same format
* that {@link ExportConfigReader} can parse.
*
* <p>Example output:
* <pre>{@code
* <export-config>
* <group name="my_group" schema="staging">
* <filter column="tid" source="SELECT tid FROM organigramm"/>
* <table column="id" columns="id, name" orderBy="name ASC">my_table</table>
* </group>
* </export-config>
* }</pre>
*/
@Component
public class ExportConfigWriter {
/**
* Write the config to a file.
*/
public void write(ExportConfig config, File outputFile) throws IOException {
try (FileOutputStream fos = new FileOutputStream(outputFile)) {
write(config, fos);
}
}
/**
* Write the config to an output stream.
*/
public void write(ExportConfig config, OutputStream out) throws IOException {
Document doc = buildDocument(config);
XMLOutputter outputter = new XMLOutputter(
Format.getPrettyFormat().setEncoding("UTF-8"));
outputter.output(doc, out);
}
/**
* Build the JDOM2 Document representing the config.
*/
public Document buildDocument(ExportConfig config) {
Document doc = new Document();
Element root = new Element("export-config");
doc.setRootElement(root);
for (ExportGroup group : config.getGroups()) {
root.addContent(buildGroupElement(group));
}
return doc;
}
private Element buildGroupElement(ExportGroup group) {
Element groupEl = new Element("group");
groupEl.setAttribute("name", group.getName());
if (group.getSchema() != null) {
groupEl.setAttribute("schema", group.getSchema());
}
if (group.hasFilter()) {
Element filterEl = new Element("filter");
filterEl.setAttribute("column", group.getFilterColumn());
filterEl.setAttribute("source", group.getFilterSource());
groupEl.addContent(filterEl);
}
for (ExportTableConfig tableConfig : group.getTableConfigs()) {
groupEl.addContent(buildTableElement(tableConfig));
}
return groupEl;
}
private Element buildTableElement(ExportTableConfig tableConfig) {
Element tableEl = new Element("table");
tableEl.setText(tableConfig.getTableName());
if (tableConfig.getFilterColumn() != null) {
tableEl.setAttribute("column", tableConfig.getFilterColumn());
}
if (tableConfig.hasFilterSource()) {
tableEl.setAttribute("source", tableConfig.getFilterSource());
}
if (tableConfig.hasColumns()) {
tableEl.setAttribute("columns", String.join(", ", tableConfig.getColumns()));
}
if (tableConfig.hasOrderBy()) {
tableEl.setAttribute("orderBy", tableConfig.getOrderBy());
}
return tableEl;
}
}

111
src/de/superx/db/export/ExportTableConfig.java

@ -1,57 +1,26 @@ @@ -1,57 +1,26 @@
package de.superx.db.export;
import java.util.Collections;
import java.util.List;
/**
* Configuration for a single table within an export group.
* Holds the table name and optional overrides for the filter column,
* filter source, column selection, and ordering.
* Holds the table name and an optional override for the filter column.
*/
public class ExportTableConfig {
private final String tableName;
private final String filterColumn;
private final String filterSource;
private final List<String> columns;
private final String orderBy;
/**
* @param tableName the database table name
* @param filterColumn optional override for the group-level filter column;
* null means use the group default
* @param filterSource optional override for the group-level filter source;
* may contain {@code {filter}} as a placeholder that will be
* replaced with the group-level filter expression
* (i.e. "groupColumn IN (groupSource)"). Null means use
* the group-level filter directly.
* @param columns optional list of column names to export; null or empty
* means export all columns (SELECT *)
* @param orderBy optional ORDER BY expression (without the "ORDER BY" keyword);
* null means no ordering
*/
public ExportTableConfig(String tableName, String filterColumn,
String filterSource, List<String> columns,
String orderBy) {
public ExportTableConfig(String tableName, String filterColumn) {
this.tableName = tableName;
this.filterColumn = filterColumn;
this.filterSource = filterSource;
this.columns = columns != null && !columns.isEmpty()
? Collections.unmodifiableList(columns) : null;
this.orderBy = orderBy;
}
public ExportTableConfig(String tableName, String filterColumn,
String filterSource) {
this(tableName, filterColumn, filterSource, null, null);
}
public ExportTableConfig(String tableName, String filterColumn) {
this(tableName, filterColumn, null, null, null);
}
public ExportTableConfig(String tableName) {
this(tableName, null, null, null, null);
this(tableName, null);
}
public String getTableName() {
@ -66,14 +35,6 @@ public class ExportTableConfig { @@ -66,14 +35,6 @@ public class ExportTableConfig {
return filterColumn;
}
/**
* @return the per-table filter source SQL, or null to use the group default.
* May contain {@code {filter}} placeholder.
*/
public String getFilterSource() {
return filterSource;
}
/**
* Returns the effective filter column: this table's override if set,
* otherwise the provided group default.
@ -82,71 +43,11 @@ public class ExportTableConfig { @@ -82,71 +43,11 @@ public class ExportTableConfig {
return filterColumn != null ? filterColumn : groupDefault;
}
/**
* Whether this table has its own filter source override.
*/
public boolean hasFilterSource() {
return filterSource != null;
}
/**
* @return the list of columns to export, or null if all columns
* should be exported
*/
public List<String> getColumns() {
return columns;
}
/**
* Whether this table has a column selection configured.
*/
public boolean hasColumns() {
return columns != null;
}
/**
* @return the ORDER BY expression (without the keyword), or null
* if no ordering is specified
*/
public String getOrderBy() {
return orderBy;
}
/**
* Whether this table has an ORDER BY expression configured.
*/
public boolean hasOrderBy() {
return orderBy != null;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder(tableName);
boolean hasExtra = filterColumn != null || filterSource != null
|| columns != null || orderBy != null;
if (hasExtra) {
sb.append(" (");
boolean first = true;
if (filterColumn != null) {
sb.append("column=").append(filterColumn);
first = false;
}
if (filterSource != null) {
if (!first) sb.append(", ");
sb.append("source=").append(filterSource);
first = false;
}
if (columns != null) {
if (!first) sb.append(", ");
sb.append("columns=").append(columns);
first = false;
}
if (orderBy != null) {
if (!first) sb.append(", ");
sb.append("orderBy=").append(orderBy);
}
sb.append(")");
if (filterColumn != null) {
return tableName + " (column=" + filterColumn + ")";
}
return sb.toString();
return tableName;
}
}

8
src/de/superx/db/export/ImportMode.java

@ -15,11 +15,5 @@ public enum ImportMode { @@ -15,11 +15,5 @@ public enum ImportMode {
CREATE_INSERT,
/** Drop and recreate the table from the XML structure, then insert. */
RECREATE,
/** Insert new rows or update existing ones based on primary key. Table must already exist. */
UPSERT,
/** Only update existing rows based on primary key. Rows without a match are skipped. Table must already exist. */
UPDATE
RECREATE
}

11
src/de/superx/dbt/DbtAction.java

@ -1,11 +0,0 @@ @@ -1,11 +0,0 @@
package de.superx.dbt;
public enum DbtAction {
BUILD,
TEST,
GENERATE_DOCS,
STAGING_TABLES,
SQLFLUFF_LINT,
NODE_COUNT_BUILD,
NODE_COUNT_TEST
}

8
src/de/superx/dbt/DbtExecutionState.java

@ -1,8 +0,0 @@ @@ -1,8 +0,0 @@
package de.superx.dbt;
public enum DbtExecutionState {
ACTIVE, // dbt-Lauf ist noch nicht beendet - evtl. braucht es mehr als nur "active"!?
SUCCESS, // dbt-Lauf wurde erfolgreich abgeschlossen
FAILURE, // dbt-Lauf endete in einem Fehler
TIMEOUT
}

59
src/de/superx/dbt/DbtMetrics.java

@ -0,0 +1,59 @@ @@ -0,0 +1,59 @@
package de.superx.dbt;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class DbtMetrics {
private static final String METRICS_LINE = "Found (\\d+) models, (\\d+) snapshots, (\\d+) data tests, (\\d+) seeds,"
+ " (\\d+) sources, (\\d+) macros";
private static final Pattern METRICS_PATTERN = Pattern.compile(METRICS_LINE);
private int models;
private int snapshots;
private int tests;
private int seeds;
private int sources;
private int macros;
public DbtMetrics(String metricLine) {
Matcher metricsMatcher = METRICS_PATTERN.matcher(metricLine);
if (metricsMatcher.find()) {
models = Integer.parseInt(metricsMatcher.group(1));
snapshots = Integer.parseInt(metricsMatcher.group(2));
tests = Integer.parseInt(metricsMatcher.group(3));
seeds = Integer.parseInt(metricsMatcher.group(4));
sources = Integer.parseInt(metricsMatcher.group(5));
macros = Integer.parseInt(metricsMatcher.group(6));
}
}
public int getExecCount(boolean isTests) {
return isTests ? tests : models + snapshots + seeds;
}
public int getModels() {
return models;
}
public int getSnapshots() {
return snapshots;
}
public int getTests() {
return tests;
}
public int getSeeds() {
return seeds;
}
public int getSources() {
return sources;
}
public int getMacros() {
return macros;
}
}

7
src/de/superx/dbt/DbtPermissionException.java

@ -1,7 +0,0 @@ @@ -1,7 +0,0 @@
package de.superx.dbt;
public class DbtPermissionException extends Exception {
DbtPermissionException(String message, Throwable cause) {
super(message, cause);
}
}

443
src/de/superx/dbt/DbtRun.java

@ -1,443 +0,0 @@ @@ -1,443 +0,0 @@
package de.superx.dbt;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.Callable;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;
import org.apache.commons.lang.SystemUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
public final class DbtRun implements Callable<DbtRunResult> {
static Logger logger = LoggerFactory.getLogger(DbtRun.class);
private static final boolean isLinux = SystemUtils.IS_OS_LINUX;
private final DbtRunRequest request;
private final Map<String, String> environment;
private final Path projectPath;
public Process process;
DbtRun(DbtRunRequest request, Map<String, String> environment, Path projectPath) {
this.request = request;
this.environment = environment;
this.projectPath = projectPath;
}
@Override
public DbtRunResult call() throws Exception {
return execute();
}
private DbtRunResult execute() {
return switch (request.action()) {
case BUILD -> runDbtCommand(createBuildCommand());
case TEST -> runDbtCommand(createTestCommand());
case NODE_COUNT_BUILD -> nodeCount(true);
case NODE_COUNT_TEST -> nodeCount(false);
case GENERATE_DOCS -> generateDocs();
case STAGING_TABLES -> findDbtStagingTablesForSelection();
case SQLFLUFF_LINT -> lintDbtModelsUsingSQLFluff();
};
}
private List<String> createTestCommand() {
List<String> baseCommand = new ArrayList<>(DbtUtils.getDbtCommandBase());
baseCommand.addAll(Arrays.asList( "--log-format", "json", "--no-use-colors", "test"));
if(request.select() != null && !request.select().isBlank()) {
baseCommand.add("--select");
baseCommand.add(request.select());
}
return baseCommand;
}
private List<String> createBuildCommand() {
List<String> baseCommand = new ArrayList<>(DbtUtils.getDbtCommandBase());
baseCommand.addAll(Arrays.asList(
"--log-format", "json",
"--no-use-colors",
"build",
"--resource-types",
"snapshot",
"seed",
"model"
));
if(request.select() != null && !request.select().isBlank()) {
baseCommand.add("--select");
baseCommand.add(request.select());
}
return baseCommand;
}
public DbtRunResult runDbtCommand(List<String> pbCommand) {
DbtRunResult result = new DbtRunResult();
logger.info(Arrays.toString(pbCommand.toArray()));
ProcessBuilder p = new ProcessBuilder(pbCommand).directory(projectPath.toFile());
p.environment().putAll(this.environment);
p.redirectErrorStream(false);
List<JsonNode> dbtLog = new ArrayList<>();
JsonNode stats = null;
try {
int progress = 0;
process = p.start();
logger.info("ProcessBuilder start");
logger.info("PYTHONUSERBASE: " + p.environment().get("PYTHONUSERBASE"));
logger.info("PATH: " + p.environment().get((isLinux) ? "PATH" : "Path"));
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
CompletableFuture<String> errFuture = readOutStream(process.getErrorStream());
var line = "";
ObjectMapper objectMapper = new ObjectMapper();
while ((line = reader.readLine()) != null) {
JsonNode node = objectMapper.readTree(line.getBytes());
logger.info(node.get("info").get("msg").asText());
JsonNode data = node.get("data");
if (data.get("stats") != null) {
stats = node;
} else {
if (data.has("index")) {
progress = Math.max(progress, data.get("index").asInt());
if(request.progressCallback() != null) {
request.progressCallback().accept(Integer.valueOf(progress));
}
}
dbtLog.add(node);
}
}
int exitCode = process.waitFor();
String error = errFuture.join();
result.setErrorMessages(getErrorMessages(dbtLog, error));
result.setState(getExecutionState(stats));
result.setExitCode(Integer.valueOf(exitCode));
} catch (Exception e) {
logger.error("Couldn't start dbt run!", e);
result.setErrorMessages(List.of(e.getMessage()));
result.setState(DbtExecutionState.FAILURE);
}
return result;
}
public DbtRunResult generateDocs() {
DbtRunResult result = new DbtRunResult();
try {
List<String> pbCommand = new ArrayList<>(DbtUtils.getDbtCommandBase());
pbCommand.addAll(Arrays.asList("--no-use-colors", "docs", "generate"));
if(request.select() != null && !request.select().isBlank()) {
pbCommand.add("--select");
pbCommand.add(request.select());
}
ProcessBuilder pb = new ProcessBuilder(pbCommand).directory(projectPath.toFile());
pb.environment().putAll(environment);
pb.redirectErrorStream(true);
Process p = pb.start();
final InputStream stdoutInputStream = p.getInputStream();
final BufferedReader stdoutReader =
new BufferedReader(new InputStreamReader(stdoutInputStream));
String line = null;
while ((line = stdoutReader.readLine()) != null) {
logger.info(line);
}
result.setState(DbtExecutionState.SUCCESS);
} catch (Exception iox) {
String message = "Couldn't run dbt generate docs ";
logger.error(message, iox);
result.setState(DbtExecutionState.FAILURE);
result.setErrorMessages(List.of(message));
}
return result;
}
public DbtRunResult nodeCount(boolean test) {
DbtRunResult result = new DbtRunResult();
int lineNr = 0;
try {
List<String> pbCommand = new ArrayList<>(DbtUtils.getDbtCommandBase());
pbCommand.addAll(Arrays.asList("ls", "--resource-types"));
if(test) {
pbCommand.add("test");
} else {
pbCommand.addAll(Arrays.asList(
"snapshot",
"seed",
"model"
));
}
if(request.select() != null && !request.select().isBlank()) {
pbCommand.add("--select");
pbCommand.add(request.select());
}
ProcessBuilder pb = new ProcessBuilder(pbCommand).directory(projectPath.toFile());
pb.environment().putAll(environment);
pb.redirectErrorStream(true);
Process p = pb.start();
final InputStream stdoutInputStream = p.getInputStream();
final BufferedReader stdoutReader =
new BufferedReader(new InputStreamReader(stdoutInputStream));
String line = "";
while ((line = stdoutReader.readLine()) != null) {
if (!line.matches("(\\w+\\.)+\\w+$")) {
continue;
}
lineNr += 1;
logger.info(line);
}
result.setNodeCount(lineNr);
result.setState(DbtExecutionState.SUCCESS);
} catch (Exception iox) {
String message = "Couldn't run dbt ls ";
logger.error(message, iox);
result.setErrorMessages(List.of(message));
result.setState(DbtExecutionState.FAILURE);
}
return result;
}
private static CompletableFuture<String> readOutStream(InputStream is) {
return CompletableFuture.supplyAsync(() -> {
try (
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
) {
StringBuilder res = new StringBuilder();
String inputLine;
while ((inputLine = br.readLine()) != null) {
res.append(inputLine).append(System.lineSeparator());
}
return res.toString();
} catch (Throwable e) {
throw new RuntimeException("problem with executing program", e);
}
});
}
/**
* Finds staging tables for a dbt selection by running {@code dbt ls}.
* <p>
* Matches models from staging schemas such as {@code staging},
* {@code staging_xyz}, or {@code staging_vmpostgres}, and returns only the
* table name without the schema prefix.
*
* @param selectOption the dbt selector to inspect
* @return
* @return staging table names without schema prefix
*/
public DbtRunResult findDbtStagingTablesForSelection() {
DbtRunResult result = new DbtRunResult();
logger.info("Finding dbt staging tables for selection: {}", request.select());
try {
List<String> command = new ArrayList<>(DbtUtils.getDbtCommandBase());
command.addAll(Arrays.asList(
"ls",
"--select", request.select(),
"--output", "name"
));
logger.info("Dbt transform Dir: {}", projectPath);
logger.info("Command: {}", String.join(" ", command));
ProcessBuilder builder = new ProcessBuilder(command)
.directory(projectPath.toFile());
builder.environment().putAll(environment);
this.process = builder.start();
CompletableFuture<String> errFuture = readOutStream(process.getErrorStream());
List<String> results;
try (BufferedReader reader = new BufferedReader(
new InputStreamReader(process.getInputStream())
)) {
results = reader.lines().collect(Collectors.toList());
}
int exitCode = process.waitFor();
String error = errFuture.join();
String output = String.join(System.lineSeparator(), results);
if (exitCode != 0) {
String message = "dbt ls failed for selection '" + request.select() + "' with exit code " + exitCode
+ "\n\nstdout:\n" + output
+ "\n\nstderr:\n" + error;
result.setState(DbtExecutionState.FAILURE);
result.setErrorMessages(List.of(message));
return result;
}
if (!error.isBlank()) {
logger.debug("dbt ls stderr for selection '{}': {}", request.select(), error);
}
List<String> tables = new ArrayList<>();
for (String model : results) {
int dotIndex = model.indexOf(".");
if (dotIndex > 0 && model.substring(0, dotIndex).startsWith("staging")) {
tables.add(model.substring(dotIndex + 1));
}
}
logger.info(
"Found {} dbt staging table(s) for selection '{}': {}",
new Object[] { Integer.valueOf(tables.size()), request.select(), tables }
);
result.setOutputMessages(tables);
result.setExitCode(Integer.valueOf(exitCode));
if(!error.isBlank()) {
result.setErrorMessages(List.of(error));
result.setState(DbtExecutionState.FAILURE);
} else {
result.setState(DbtExecutionState.SUCCESS);
}
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
String message = "Interrupted while running dbt ls for selection: " + request.select();
logger.error(message, e);
result.setState(DbtExecutionState.FAILURE);
result.setErrorMessages(List.of(message));
} catch (IOException e) {
String message = "Could not start dbt ls for selection: " + request.select();
logger.error(message , e);
result.setState(DbtExecutionState.FAILURE);
result.setErrorMessages(List.of(message));
}
return result;
}
public DbtRunResult lintDbtModelsUsingSQLFluff() {
DbtRunResult result = new DbtRunResult();
List<String> command = new ArrayList<>(DbtUtils.getSqlFluffCommandBase());
command.addAll(Arrays.asList(
"lint",
"--verbose",
"--nocolor",
"--disable-progress-bar"
));
logger.info("sqlfluff command: " + command);
ProcessBuilder builder = new ProcessBuilder(command)
.directory(projectPath.toFile());
builder.environment().putAll(environment);
try {
this.process = builder.start();
// read stdout
List<String> lintingErrors = new ArrayList<String>();
int progress = 0;
try (BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()))){
String line;
while((line = reader.readLine()) != null) {
logger.info(line);
if(line.contains(".sql")) {
if (line.contains("FAIL")) {
lintingErrors.add(line);
}
if(request.progressCallback() != null) {
request.progressCallback().accept(Integer.valueOf(progress++));
}
}
}
}
List<String> errorsFromErrorStream = new ArrayList<String>();
// read stderr
try (InputStream es = process.getErrorStream();
InputStreamReader esr = new InputStreamReader(es);
BufferedReader errReader = new BufferedReader(esr)) {
String line;
while ((line = errReader.readLine()) != null) {
logger.error(line);
errorsFromErrorStream.add(line);
}
}
// SQLFluff exit codes: 0 = clean, 1 = linting issues found, 2 = execution failed.
int exitCode = process.waitFor();
result.setExitCode(Integer.valueOf(exitCode));
if(exitCode == 0) {
result.setState(DbtExecutionState.SUCCESS);
} else if(exitCode == 1) {
result.setErrorMessages(lintingErrors);
result.setState(DbtExecutionState.FAILURE);
} else {
result.setErrorMessages(errorsFromErrorStream);
result.setState(DbtExecutionState.FAILURE);
}
return result;
} catch (Exception e) {
logger.error("Failed running sqlfluff.", e);
result.setErrorMessages(List.of(e.getMessage()));
result.setState(DbtExecutionState.FAILURE);
return result;
}
}
public DbtExecutionState getExecutionState(JsonNode stats) {
if (stats == null) {
return DbtExecutionState.ACTIVE;
}
if (stats.get("data").get("stats").get("error").asInt() == 0) {
return DbtExecutionState.SUCCESS;
}
return DbtExecutionState.FAILURE;
}
private List<String> getErrorMessages(List<JsonNode> dbtLog, String errors) {
var result = new ArrayList<String>();
if(errors == null) {
return result;
}
if (!errors.isEmpty()) {
// stderr was not empty!
result.add(errors);
} else {
// "regular" errors during dbt execution
for (var node : dbtLog) {
var level = findFirstOccurence("level", node);
if (level.isPresent() && "error".equals(level.get().asText())) {
var msg = findFirstOccurence("msg", node);
if (msg.isPresent()) {
result.add(msg.get().asText());
} else {
logger.warn("No msg property found in dbt log " + node);
}
} else {
logger.warn("No level property found in dbt log " + node);
}
}
}
return result;
}
private static Optional<JsonNode> findFirstOccurence(String name, JsonNode searchNode) {
JsonNode parent = searchNode.findParent(name);
JsonNode result = parent != null ? parent.get(name) : null;
return Optional.of(result);
}
}

24
src/de/superx/dbt/DbtRunRequest.java

@ -1,24 +0,0 @@ @@ -1,24 +0,0 @@
package de.superx.dbt;
import java.util.function.Consumer;
public record DbtRunRequest(
DbtAction action,
String project,
String select,
long timeoutMillis,
Consumer<Integer> progressCallback
) {
public DbtRunRequest(DbtAction action, String project, String select, long timeoutMillis) {
this(action, project, select, timeoutMillis, null);
}
public DbtRunRequest(DbtAction action, String project, Consumer<Integer> progressCallback) {
this(action, project, null, 0, progressCallback);
}
public DbtRunRequest(DbtAction action, String project, String select) {
this(action, project, select, 0, null);
}
}

65
src/de/superx/dbt/DbtRunResult.java

@ -1,65 +0,0 @@ @@ -1,65 +0,0 @@
package de.superx.dbt;
import java.util.List;
public class DbtRunResult {
private Integer exitCode;
private DbtExecutionState state;
private List<String> outputMessages;
private List<String> errorMessages;
private int nodeCount; // used for DbtAction.NODE_COUNT*
// private List<String> stagingTables;// used for DbtAction.STAGING_TABLES
public Integer getExitCode() {
return exitCode;
}
public void setExitCode(Integer exitCode) {
if (exitCode.intValue() != 0) {
this.state = DbtExecutionState.FAILURE;
}
this.exitCode = exitCode;
}
public DbtExecutionState getState() {
return state;
}
public void setState(DbtExecutionState state) {
this.state = state;
}
public List<String> getErrorMessages() {
return errorMessages;
}
public void setErrorMessages(List<String> errorMessages) {
this.errorMessages = errorMessages;
}
public int getNodeCount() {
return nodeCount;
}
public void setNodeCount(int nodeCount) {
this.nodeCount = nodeCount;
}
//public List<String> getStagingTables() {
// return stagingTables;
//}
//public void setStagingTables(List<String> stagingTables) {
// this.stagingTables = stagingTables;
//}
public List<String> getOutputMessages() {
return outputMessages;
}
public void setOutputMessages(List<String> outputMessages) {
this.outputMessages = outputMessages;
}
}

146
src/de/superx/dbt/DbtUtils.java

@ -1,7 +1,6 @@ @@ -1,7 +1,6 @@
package de.superx.dbt;
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import java.nio.file.Files;
import java.nio.file.Path;
@ -10,23 +9,14 @@ import java.util.List; @@ -10,23 +9,14 @@ import java.util.List;
import java.util.StringJoiner;
import java.util.stream.Collectors;
import javax.sql.DataSource;
import org.apache.commons.lang3.SystemUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
import de.superx.servlet.SuperXManager;
import de.superx.spring.batch.tasklet.ExecuteDbtTasklet;
import de.superx.util.PathAndFileUtils;
public class DbtUtils {
static Logger logger = LoggerFactory.getLogger(DbtUtils.class);
private final static boolean isLinux = SystemUtils.IS_OS_LINUX;
public static boolean isTestRun = false;
public static String getPythonVersion() {
return getPythonVersionForExecutable(getPython3ExecutableName());
@ -46,7 +36,7 @@ public class DbtUtils { @@ -46,7 +36,7 @@ public class DbtUtils {
}
throw new RuntimeException("No Python 3 installation found in PATH!");
}
public static String getPythonVersionForExecutable(String executable) {
try {
ProcessBuilder p = new ProcessBuilder(executable, "--version");
@ -63,59 +53,27 @@ public class DbtUtils { @@ -63,59 +53,27 @@ public class DbtUtils {
}
}
private static Path getDbtFolderBinary() {
return Path.of(SuperXManager.getWEB_INFPfad(), "..", "dbt");
}
private static Path getDbtFolder() {
if(isTestRun) {
return Path.of(String.join(File.separator, "test", "resources", "dbt" ));
}
return Path.of(SuperXManager.getWEB_INFPfad(), "..", "dbt");
}
private static Path getDbtInstallLib() {
return Path.of(getDbtFolderBinary().toString(), "dbt_linux", "lib");
return Path.of(getDbtFolder().toString(), "dbt_linux", "lib");
}
public static Path getDbtModelsDirectory(String project) {
Path modelsPath = getDbtProjectDirectory(project).resolve("models");
if (!modelsPath.toFile().isDirectory()) {
throw new RuntimeException(modelsPath.toAbsolutePath() + " is no directory!");
}
return modelsPath.toAbsolutePath().normalize();
}
public static Path getDbtProjectDirectory(String project) {
Path projectPath = Path.of(getDbtFolder().toString(), "projects", project, "transform");
if (!projectPath.toFile().isDirectory()) {
throw new RuntimeException(projectPath.toAbsolutePath() + " is no directory!");
}
File projectFile = Path.of(projectPath.toString(), "dbt_project.yml").toFile();
if (!projectFile.exists()) {
throw new RuntimeException(projectPath + " is no dbt project directory (no dbt_project.yml found)!");
}
File profilesFile = Path.of(projectPath.toString(), "profiles.yml").toFile();
if (!profilesFile.exists()) {
throw new RuntimeException(projectPath + " is no dbt project directory (no profiles.yml found)!");
}
return projectPath.toAbsolutePath().normalize();
public static Path getDbtProjectDirectory() {
return Path.of(getDbtFolder().toString(), "projects", "hisinone", "transform");
}
public static Path getBiAnalysisMetadataFolder(String project) {
return Path.of(getDbtFolder().toString(), "projects", project, "bianalysis_metadata");
public static Path getBiAnalysisMetadataFolder() {
return Path.of(getDbtFolder().toString(), "projects", "hisinone", "bianalysis_metadata");
}
public static Path getVirtualEnvPath() {
if(isLinux) {
return Path.of(getDbtFolderBinary().toString(), "dbt_env_linux");
return Path.of(getDbtFolder().toString(), "dbt_env_linux");
}
return Path.of(getDbtFolderBinary().toString(), "dbt_env_windows");
return Path.of(getDbtFolder().toString(), "dbt_env_windows");
}
public static Path getDbtInstallDir() {
@ -126,7 +84,7 @@ public class DbtUtils { @@ -126,7 +84,7 @@ public class DbtUtils {
if(isLinux) {
folder = "dbt_linux";
}
return Path.of(getDbtFolderBinary().toString(), folder);
return Path.of(getDbtFolder().toString(), folder);
}
public static boolean isVirtualEnvInstalled() {
@ -154,53 +112,17 @@ public class DbtUtils { @@ -154,53 +112,17 @@ public class DbtUtils {
return Path.of(getDbtBinaryFolder().toString(), bin);
}
private static Path getDbtBinaryPath(String bin) {
if(!(bin.equals("dbt") || bin.equals("sqlfluff"))) {
throw new IllegalArgumentException("binary not allowed: " + bin);
}
public static Path getDbtBinaryPath() {
if(isLinux) {
return Path.of(getDbtBinaryFolder().toString(), bin);
return Path.of(getDbtBinaryFolder().toString(), "dbt");
}
return Path.of(getDbtBinaryFolder().toString(), bin + ".exe");
}
public static List<String> getDbtCommandBase() {
return getCommandBase("dbt");
return Path.of(getDbtBinaryFolder().toString(), "dbt.exe");
}
public static List<String> getSqlFluffCommandBase() {
return getCommandBase("sqlfluff");
}
public static List<String> getCommandBase(String bin) {
List<String> command = new ArrayList<>();
String pythonExecutable = getPython3ExecutableName();
if (!isLinux && DbtUtils.isVirtualEnvInstalled()) {
// On Windows, when using a virtual environment, we must run the dbt
// executable directly without invoking it through the python interpreter
pythonExecutable = "";
}
if (pythonExecutable != null && !pythonExecutable.isBlank()) {
command.add(pythonExecutable);
}
command.add(getDbtBinaryPath(bin).toString());
return command;
}
public static void checkPythonCompatibility() throws UnsupportedPythonVersionException{
public static void checkPythonCompatability() throws UnsupportedPythonVersionException{
try {
String pythonVersion = getPythonVersion();
if (isVirtualEnvInstalled()) {
logger.info("Not checking python version, because using virtual env! version in env is " + pythonVersion);
return;
}
Path dbtInstallLib = getDbtInstallLib();
List<Path> files = Files
@ -235,46 +157,20 @@ public class DbtUtils { @@ -235,46 +157,20 @@ public class DbtUtils {
}
public static void checkDbtSchemaPermissions(DataSource dataSource) throws DbtPermissionException {
final List<String> DBT_SCHEMAS = List.of(
"staging",
"core",
"presentation",
"metadata"
);
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
for (String schema : DBT_SCHEMAS) {
String fullTableName = schema + ".__dbt_permission_check";
try {
jdbcTemplate.execute("CREATE TABLE " + fullTableName + " (permission_check integer)");
jdbcTemplate.execute("DROP TABLE " + fullTableName);
} catch (DataAccessException e) {
String errorMessage = """
dbt permission check failed for schema '%s'.
Could not create/drop table '%s'.
Grant likely needed:
GRANT USAGE, CREATE ON SCHEMA %s TO <dbt_user>;
""".formatted( schema, fullTableName, schema);
throw new DbtPermissionException(errorMessage, e);
}
}
}
public static void main(String[] args) {
SuperXManager.setWEB_INFPfad(PathAndFileUtils.getWebinfPath());
DbtWrapper.getStagingTables("+fact_application");
System.out.println(getPythonVersion());
System.out.println(getPython3ExecutableName());
System.out.println(getDbtFolder());
System.out.println(getDbtProjectDirectory("hisinone"));
System.out.println(getDbtProjectDirectory());
System.out.println(getDbtBinaryFolder());
System.out.println(getDbtCommandBase());
//BasicConfigurator.configure();
//DbtWrapper dbtWrapper = new DbtWrapper();
//dbtWrapper.init("hisinone", "+fact_application");
//System.out.println(dbtWrapper.findDbtStagingTablesForSelection());
System.out.println(getDbtBinaryPath());
}
}

464
src/de/superx/dbt/DbtWrapper.java

@ -1,20 +1,28 @@ @@ -1,20 +1,28 @@
package de.superx.dbt;
import java.sql.ResultSet;
import static java.util.Map.entry;
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URI;
import java.nio.file.Path;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import java.util.Optional;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;
import javax.sql.DataSource;
import org.apache.commons.lang3.SystemUtils;
import org.jfree.util.Log;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -24,72 +32,172 @@ import org.springframework.jdbc.core.JdbcTemplate; @@ -24,72 +32,172 @@ import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.ResultSetExtractor;
import org.springframework.stereotype.Service;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.zaxxer.hikari.HikariDataSource;
import de.superx.access.SqlAccessRestrictor;
import de.superx.access.SqlAccessRestrictor.Rechtekonzept;
import de.superx.rest.EtlJobApi;
import de.superx.rest.model.job.Component;
import de.superx.spring.service.ApplicationContextHolder;
import de.superx.servlet.SuperXManager;
@Service
public class DbtWrapper {
public class DbtWrapper implements Runnable {
public enum DbParamsSource {
FROM_PRESETS,
FROM_FILE
}
public enum ExecutionState {
ACTIVE, // dbt-Lauf ist noch nicht beendet - evtl. braucht es mehr als nur "active"!?
SUCCESS, // dbt-Lauf wurde erfolgreich abgeschlossen
FAILURE // dbt-Lauf endete in einem Fehler
}
@Autowired
EtlJobApi etlJobApi;
@Autowired
DataSource dataSource;
static Logger logger = LoggerFactory.getLogger(DbtWrapper.class);
@Autowired
Map<String, String> dbtProfile;
private final boolean isLinux = SystemUtils.IS_OS_LINUX;
private Path dbtInstallDir;
private String pythonExecutable = "python";
private String user = "postgres";
private String password = "postgres";
private String host = "localhost";
private String port = "5432";
private String db = "eduetl";
private Process process;
private int modelCount = 0;
private String runtimeErrors = "";
private String select;
private boolean test;
private Path projectPath;
static Logger logger = LoggerFactory.getLogger(DbtWrapper.class);
private List<JsonNode> dbtLog = new ArrayList<>();
private JsonNode stats;
private boolean shouldGenerateDoc = true;
public void init(final Path projectPath, String select) {
init(projectPath, select, DbParamsSource.FROM_FILE, false);
}
public static final String DBT_THREAD_NAME_PREFIX = "DBT-";
public void init(final Path projectPath, String select, boolean test) {
init(projectPath, select, DbParamsSource.FROM_FILE, test);
}
public DbtRunResult execute(DbtRunRequest request) {
DbtRun run = new DbtRun(
request,
getEnvironment(), // TODO: costly, reuse for multiple calls ?
DbtUtils.getDbtProjectDirectory(request.project())
);
public void init(final Path projectPath, String select, DbParamsSource dbParamsSource, boolean test) {
if (!projectPath.toFile().isDirectory()) {
throw new RuntimeException(projectPath.toAbsolutePath() + " is no directory!");
}
File projectFile = Path.of(projectPath.toString(), "dbt_project.yml").toFile();
if (!projectFile.exists()) {
throw new RuntimeException(projectPath + " is no dbt project directory (no dbt_project.yml found)!");
}
File profilesFile = Path.of(projectPath.toString(), "profiles.yml").toFile();
if (!profilesFile.exists()) {
throw new RuntimeException(projectPath + " is no dbt project directory (no profiles.yml found)!");
}
this.projectPath = projectPath.toAbsolutePath().normalize();
this.dbtInstallDir = DbtUtils.getDbtInstallDir();
this.pythonExecutable = DbtUtils.getPython3ExecutableName();
this.select = select;
this.test = test;
// reset state members
this.process = null;
this.dbtLog = new ArrayList<>();
this.runtimeErrors = "";
this.modelCount = 0;
this.stats = null;
ExecutorService executor = Executors.newSingleThreadExecutor(r -> {
Thread t = new Thread(r);
// name the thread so that the logging to file and frontend works
// see class: BiJobLoggingListener
t.setName(DBT_THREAD_NAME_PREFIX + System.currentTimeMillis());
return t;
});
Future<DbtRunResult> future = executor.submit(run);
if(this.test) {
this.shouldGenerateDoc = false;
}
try {
return request.timeoutMillis() <= 0
? future.get() : future.get(request.timeoutMillis(), TimeUnit.MILLISECONDS);
// TODO: there has to be a better way
// -> Ja, wie wäre es, wenn die ganzen Parameter für die Datenbankverbindung "injiziert" würden?
if (dbParamsSource == DbParamsSource.FROM_FILE) {
try {
} catch (TimeoutException e) {
logger.error("dbt command timed out after {} milliseconds", Long.valueOf(request.timeoutMillis()));
HikariDataSource eduetl = dataSource.unwrap(HikariDataSource.class);
String jdbcUrl = eduetl.getJdbcUrl();
if (run.process != null && run.process.isAlive()) {
run.process.destroyForcibly();
String cleanUrl = jdbcUrl.substring(5); // remove "jdbc:"
URI uri = URI.create(cleanUrl);
String eduetlHost = uri.getHost();
int eduetlPort = uri.getPort(); // returns -1 if no port specified
String eduetlFinalPort = String.valueOf(eduetlPort != -1 ? Integer.valueOf(port) : "5432");
String eduetlUsername = "";
String eduetlDbName = "";
try(Connection con = dataSource.getConnection()){
eduetlUsername = con.getMetaData().getUserName();
eduetlDbName = con.getCatalog();
}
this.user = eduetlUsername;
this.password = eduetl.getPassword();
this.host = eduetlHost;
this.port = eduetlFinalPort;
this.db = eduetlDbName;
} catch (Exception e) {
throw new RuntimeException("Couldn't get connection info for eduetl", e);
}
}
future.cancel(true);
}
private List<String> buildDbtCommand() {
String dbt = DbtUtils.getDbtBinaryPath().toString();
logger.info("Project path: "+ projectPath.toString());
logger.info("dbt_bin: "+ dbt.toString());
List<String> baseCommand = new ArrayList<String>(Arrays.asList(
pythonExecutable,
dbt,
"--log-format",
"json",
"--no-use-colors"
));
DbtRunResult result = new DbtRunResult();
result.setState(DbtExecutionState.TIMEOUT);
result.setErrorMessages(Arrays.asList("DBT run timeout!"));
return result;
if(!isLinux && DbtUtils.isVirtualEnvInstalled()) {
// On Windows, when using a virtual environment, we must run the dbt
// executable directly without invoking it through the python interpreter
baseCommand.remove(0);
}
} catch (Exception e) {
logger.error("Failed with error: ", e);
DbtRunResult result = new DbtRunResult();
result.setState(DbtExecutionState.FAILURE);
result.setErrorMessages(Arrays.asList(e.getMessage()));
return result;
if(this.test) {
baseCommand.add("test");
} else {
baseCommand.addAll(Arrays.asList(
"build",
"--resource-types",
"snapshot",
"seed",
"model"
));
}
}
private Map<String, String> getEnvironment(){
if(select != null && !select.isBlank()) {
baseCommand.add("--select");
baseCommand.add(select);
}
return baseCommand;
}
@Override
public void run() {
List<String> pbCommand = buildDbtCommand();
logger.info(Arrays.toString(pbCommand.toArray()));
ProcessBuilder p = new ProcessBuilder(pbCommand).directory(projectPath.toFile());
Map<String,String> env = getComponentStatus();
env.putAll(getDbtEnvironment());
env.putAll(getUnloadParams());
@ -97,9 +205,223 @@ public class DbtWrapper { @@ -97,9 +205,223 @@ public class DbtWrapper {
Map<String, String> rls_env_var = Map.of("ROW_LEVEL_SECURITY", "true");
env.putAll(rls_env_var);
}
p.environment().putAll(env);
p.redirectErrorStream(false);
dbtLog = new ArrayList<>();
try {
modelCount = 0;
process = p.start();
logger.info("ProcessBuilder start");
logger.info("PYTHONUSERBASE: " + p.environment().get("PYTHONUSERBASE"));
String pathVar = "PATH";
if(!this.isLinux) {
pathVar = "Path";
}
logger.info("PATH: " + p.environment().get(pathVar));
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
CompletableFuture<String> errFuture = readOutStream(process.getErrorStream());
errFuture.thenAccept( (error) ->{
checkStdError(error);
});
var line = "";
ObjectMapper objectMapper = new ObjectMapper();
while((line = reader.readLine()) != null) {
JsonNode node = objectMapper.readTree(line.getBytes());
logger.info(node.get("info").get("msg").asText());
JsonNode data = node.get("data");
if (data.get("stats") != null) {
stats = node;
} else {
if (data.has("index")) {
modelCount = Math.max(modelCount, data.get("index").asInt());
}
dbtLog.add(node);
}
}
} catch (Exception e) {
logger.error("Couldn't start dbt run!", e);
this.runtimeErrors = ("Couldn't start dbt run!\n" + e.getMessage());
} finally {
if(this.shouldGenerateDoc) {
generateDocs(env);
}
}
}
private Map<String,String> getComponentStatus() {
Map<String,String> result = new HashMap<>();
EtlJobApi api = etlJobApi == null ? SuperXManager.getBean(null, EtlJobApi.class) : etlJobApi;
List<Component> components = api.getInstallJobs();
for (Component comp : components) {
result.put("COMP_" + comp.getAbbreviation().toUpperCase() + "_INSTALLED", comp.isInstalled() ? "TRUE" : "FALSE");
}
return result;
}
public int getModelCount() {
return modelCount;
}
public List<String> getErrorMessages() {
var result = new ArrayList<String>();
if (!this.runtimeErrors.isEmpty()) {
// stderr was not empty!
result.add(runtimeErrors);
} else {
// "regular" errors during dbt execution
for (var node : dbtLog) {
var level = findFirstOccurence("level", node);
if (level.isPresent() && "error".equals(level.get().asText())) {
var msg = findFirstOccurence("msg", node);
if (msg.isPresent()) {
result.add(msg.get().asText());
} else {
logger.warn("No msg property found in dbt log " + node);
}
} else {
logger.warn("No level property found in dbt log " + node);
}
}
}
return result;
}
public Process getProcess() {
return this.process;
}
public ExecutionState getExecutionState() {
if (this.stats == null) {
return ExecutionState.ACTIVE;
}
if (this.stats.get("data").get("stats").get("error").asInt() == 0) {
return ExecutionState.SUCCESS;
}
return ExecutionState.FAILURE;
}
public void generateDocs(Map<String,String> env) {
try {
Path dbt = DbtUtils.getDbtBinaryPath();
List<String> pbCommand = new ArrayList<String>(Arrays.asList(pythonExecutable, dbt.toString(), "--no-use-colors", "docs", "generate"));
if(select != null && !select.isBlank()) {
pbCommand.add("--select");
pbCommand.add(select);
}
ProcessBuilder pb = new ProcessBuilder(pbCommand).directory(projectPath.toFile());
pb.environment().putAll(env);
pb.redirectErrorStream(true);
Process p = pb.start();
final InputStream stdoutInputStream = p.getInputStream();
final BufferedReader stdoutReader =
new BufferedReader(new InputStreamReader(stdoutInputStream));
String line = null;
while ((line = stdoutReader.readLine()) != null) {
logger.info(line);
}
} catch (Exception iox) {
throw new RuntimeException("Couldn't run dbt generate docs ", iox);
}
}
public int getNodeCount() {
int lineNr = 0;
try {
Path dbt = DbtUtils.getDbtBinaryPath();
List<String> pbCommand = new ArrayList<String>(Arrays.asList(
pythonExecutable, dbt.toString(),
"ls",
"--resource-types"
));
if(this.test) {
pbCommand.add("test");
} else {
pbCommand.addAll(Arrays.asList(
"snapshot",
"seed",
"model"
));
}
if(select != null && !select.isBlank()) {
pbCommand.add("--select");
pbCommand.add(select);
}
ProcessBuilder pb = new ProcessBuilder(pbCommand).directory(projectPath.toFile());
Map<String,String> env = getComponentStatus();
env.putAll(getDbtEnvironment());
pb.environment().putAll(env);
pb.redirectErrorStream(true);
Process p = pb.start();
final InputStream stdoutInputStream = p.getInputStream();
final BufferedReader stdoutReader =
new BufferedReader(new InputStreamReader(stdoutInputStream));
String line = "";
while ((line = stdoutReader.readLine()) != null) {
if (!line.matches("(\\w+\\.)+\\w+$")) {
continue;
}
lineNr += 1;
logger.info(line);
}
} catch (Exception iox) {
throw new RuntimeException("Couldn't run dbt ls ", iox);
}
return lineNr;
}
public Map<String,String> getDbtEnvironment() {
Map<String,String> env = Map.ofEntries(
entry("PYTHONUSERBASE", dbtInstallDir.toString()),
// entry("DBT_TARGET_PATH", SuperXManager.getWEB_INFPfad() + File.separator + "dbt_target"),
entry("DBT_HOST", host),
entry("DBT_PORT", port.toString()),
entry("DBT_USER", user),
entry("DBT_ENV_SECRET_PW", password),
entry("DBT_DB", db)
);
return env;
}
public List<JsonNode> getDbtLog() {
return List.copyOf(this.dbtLog);
}
private static Optional<JsonNode> findFirstOccurence(String name, JsonNode searchNode) {
JsonNode parent = searchNode.findParent(name);
JsonNode result = parent != null ? parent.get(name) : null;
return Optional.of(result);
}
private boolean checkStdError(String errorString) {
boolean error = false;
if (errorString.length() > 0) {
this.runtimeErrors = "Error starting dbt: \n" + errorString;
logger.error(runtimeErrors);
error = true;
}
return error;
}
private static CompletableFuture<String> readOutStream(InputStream is) {
return CompletableFuture.supplyAsync(() -> {
try (
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
) {
StringBuilder res = new StringBuilder();
String inputLine;
while ((inputLine = br.readLine()) != null) {
res.append(inputLine).append(System.lineSeparator());
}
return res.toString();
} catch (Throwable e) {
throw new RuntimeException("problem with executing program", e);
}
});
}
private Map<String,String> getUnloadParams() {
Map<String,String> result = new HashMap<>();
if (dataSource != null) {
@ -120,32 +442,46 @@ public class DbtWrapper { @@ -120,32 +442,46 @@ public class DbtWrapper {
}
return params;
}
});
}
return result;
}
private Map<String,String> getComponentStatus() {
Map<String,String> result = new HashMap<>();
EtlJobApi api = etlJobApi == null ? ApplicationContextHolder.getBean(null, EtlJobApi.class) : etlJobApi;
List<Component> components = api.getInstallables();
for (Component comp : components) {
result.put("COMP_" + comp.getAbbreviation().toUpperCase() + "_INSTALLED", comp.isInstalled() ? "TRUE" : "FALSE");
public static List<String> getStagingTables(String select) {
try {
Path dbtProjectDir = Path.of(SuperXManager.getWEB_INFPfad(), "..", "dbt", "projects", "hisinone", "transform");
ProcessBuilder builder = new ProcessBuilder(DbtUtils.getPython3ExecutableName(), DbtUtils.getDbtBinaryPath().toString(), "ls", "--select", select, "--output", "name").directory(dbtProjectDir.toFile());
Map<String, String> env = builder.environment();
env.put("COMP_RES_INSTALLED", "true");
env.put("DBT_DB", "eduetl");
env.put("PYTHONUSERBASE", DbtUtils.getDbtInstallDir().toString());
Process process = builder.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
CompletableFuture<String> errFuture = readOutStream(process.getErrorStream());
errFuture.thenAccept( (error) ->{
if (error.length() > 0) {
logger.warn("WARNING: could not get staging tables for select: " + select);
logger.warn(error);
}
});
List<String> results = reader.lines().collect(Collectors.toList());
List<String> tables = new ArrayList<String>();
for (String model : results) {
if(model.startsWith("staging.")) {
tables.add(model.split("staging.")[1]);
}
}
return tables;
} catch (Exception e) {
e.printStackTrace();
}
return result;
return null;
}
private Map<String,String> getDbtEnvironment() {
Map<String,String> env = Map.ofEntries(
entry("PYTHONUSERBASE", DbtUtils.getDbtInstallDir().toString()),
entry("DBT_HOST", dbtProfile.get("DBT_HOST")),
entry("DBT_PORT", dbtProfile.get("DBT_PORT")),
entry("DBT_USER", dbtProfile.get("DBT_USER")),
entry("DBT_ENV_SECRET_PW", dbtProfile.get("DBT_ENV_SECRET_PW")),
entry("DBT_DB", dbtProfile.get("DBT_DB"))
);
return env;
public void setShouldGenerateDoc(boolean shouldGenerateDoc) {
this.shouldGenerateDoc = shouldGenerateDoc;
}
}

15
src/de/superx/etl/biad/DBSource.java

@ -2,12 +2,15 @@ package de.superx.etl.biad; @@ -2,12 +2,15 @@ package de.superx.etl.biad;
import java.util.List;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import de.superx.job.ExtractAction;
public class DBSource {
private String name;
private String schema;
private String database;
private List<SourceTable> tables;
public DBSource(String name, String schema, String database, List<SourceTable> tables) {
@ -46,18 +49,10 @@ public class DBSource { @@ -46,18 +49,10 @@ public class DBSource {
public String getDatabase() {
return database;
}
public void setDatabase(String database) {
this.database = database;
}
public String getSrcDatabase() {
int indexUnderscore = schema.indexOf('_');
if (indexUnderscore != -1) {
return schema.substring(indexUnderscore + 1);
}
return "hisinone";
}
public List<SourceTable> getTables() {
return tables;

4
src/de/superx/jdbc/entity/Cif.java

@ -33,7 +33,7 @@ public class Cif extends EntityBase { @@ -33,7 +33,7 @@ public class Cif extends EntityBase {
@DynamicFieldType(label = "Gültig bis", editControlType = FieldType.DatePicker, columnType = ColumnType.DateColumn, visibleInSimplifiedForm = false)
public Date d_akt_bis;
@DynamicFieldType(label = "Kurztext")
@DynamicFieldType(label = "Kurzbeschreibung")
public String kurz;
@DynamicFieldType(label = "Drucktext")
@ -48,7 +48,7 @@ public class Cif extends EntityBase { @@ -48,7 +48,7 @@ public class Cif extends EntityBase {
@DynamicFieldType(label = "Langbesch. 3", visibleInSimplifiedForm = false)
public String lang_3;
@DynamicFieldType(label = "Schlüssel (uniquename)")
@DynamicFieldType(label = "Eindeutiger Name")
public String uniquename;
@DynamicFieldType(label = "sort1", visibleInSimplifiedForm = false)

4
src/de/superx/jdbc/entity/Cifx.java

@ -34,7 +34,7 @@ public class Cifx extends EntityBase { @@ -34,7 +34,7 @@ public class Cifx extends EntityBase {
@DynamicFieldType(label = "Gültig bis", editControlType = FieldType.DatePicker, columnType = ColumnType.DateColumn, visibleInSimplifiedForm = false)
public Date d_akt_bis;
@DynamicFieldType(label = "Kurztext")
@DynamicFieldType(label = "Kurzbeschreibung")
public String kurz;
@DynamicFieldType(label = "Drucktext")
@ -73,7 +73,7 @@ public class Cifx extends EntityBase { @@ -73,7 +73,7 @@ public class Cifx extends EntityBase {
@DynamicFieldType(label = "HIS-KEY")
public String hiskey_id;
@DynamicFieldType(label = "Schlüssel (uniquename)")
@DynamicFieldType(label = "Eindeutiger Name")
public String uniquename;
// wird nicht verwendet

45
src/de/superx/jdbc/entity/CifxCustomize.java

@ -1,45 +0,0 @@ @@ -1,45 +0,0 @@
package de.superx.jdbc.entity;
import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Table;
import de.superx.jdbc.model.DynamicFieldType;
import de.superx.jdbc.model.EntityDescriptor;
import de.superx.jdbc.model.TableRef;
import de.superx.rest.model.FieldType;
@Table("cifx_customize")
public class CifxCustomize extends EntityBase {
@Id
@DynamicFieldType(label = "ID", visibleInSimplifiedForm = false, readOnly = true)
public Integer tid;
@DynamicFieldType(label = "CIFX Tabelle", editControlType = FieldType.Select)
@TableRef(table = "cifx_table", keyField = "name", labelExpression = "{caption}", sortField = "name")
public String cifx_table;
@DynamicFieldType(label = "Schlüsselgruppe (key)", editControlType = FieldType.Select)
@TableRef(table = "cifx_key", keyField = "key", labelExpression = "{key} - {druck}", sortField = "druck")
public Integer key;
@EntityDescriptor
@DynamicFieldType(label = "Schlüssel (apnr)")
public String apnr;
@DynamicFieldType(label = "Kurztext")
public String kurz;
@DynamicFieldType(label = "Drucktext")
public String druck;
@DynamicFieldType(label = "Langbesch. 1", visibleInSimplifiedForm = false)
public String lang_1;
// wird nicht verwendet
// @DynamicFieldType(label = "Schlüssel (uniquename)")
// public String uniquename;
@DynamicFieldType(label = "struktur_c", visibleInSimplifiedForm = true)
public String struktur_c;
}

11
src/de/superx/jdbc/entity/CifxKey.java

@ -1,11 +0,0 @@ @@ -1,11 +0,0 @@
package de.superx.jdbc.entity;
import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Table;
@Table("cifx_key")
public class CifxKey extends EntityBase{
@Id
public Integer key;
public String druck;
}

11
src/de/superx/jdbc/entity/CifxTable.java

@ -1,11 +0,0 @@ @@ -1,11 +0,0 @@
package de.superx.jdbc.entity;
import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Table;
@Table("cifx_table")
public class CifxTable extends EntityBase{
@Id
public String name;
public String caption;
}

128
src/de/superx/jdbc/entity/Sichten.java

@ -1,12 +1,8 @@ @@ -1,12 +1,8 @@
package de.superx.jdbc.entity;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.Date;
import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Table;
import de.superx.jdbc.model.DynamicFieldType;
import de.superx.jdbc.model.EntityDescriptor;
import de.superx.jdbc.model.TableRef;
@ -19,67 +15,127 @@ public class Sichten extends EntityBase { @@ -19,67 +15,127 @@ public class Sichten extends EntityBase {
@DynamicFieldType(visibleInSimplifiedForm = false, readOnly = true)
public Integer tid;
@DynamicFieldType(label = "Komponente", editControlType = FieldType.Select, readOnly = false)
@DynamicFieldType(label = "BI-Komponente", editControlType = FieldType.Select, readOnly = false)
@TableRef(table = "systeminfo", keyField = "tid", labelExpression = "{tid} - {name}", sortField = "name")
public Integer systeminfoid;
//Achtung sonst: systeminfoId
@DynamicFieldType(label = "Sichtart")
public String art;
//bisher
// @DynamicFieldType(label = "Systeminfoid", visibleInSimplifiedForm = false)
// public Integer systeminfoid;
@DynamicFieldType(label = "Sicht-Typ", visibleInSimplifiedForm = false)
public Integer type = Integer.valueOf(0);
@DynamicFieldType(label = "Sicht-Name", editControlType = FieldType.TextArea)
public String name;
@EntityDescriptor
@DynamicFieldType(label = "Interner Name ", editControlType = FieldType.TextArea, visibleInSimplifiedForm = false)
public String nameIntern;
@DynamicFieldType(label = "Name", editControlType = FieldType.TextArea, visibleInSimplifiedForm = true)
public String name;
@DynamicFieldType(label = "Beschreibung", editControlType = FieldType.TextArea)
public String beschreibung;
@DynamicFieldType(label = "Sortiernummer", visibleInSimplifiedForm = false)
public Integer sortnr = Integer.valueOf(0);
@DynamicFieldType(label = "Sortierschlüssel", visibleInSimplifiedForm = false)
public Integer sortnr;
@DynamicFieldType(label = "Sichtart")
public String art;
@DynamicFieldType(label = "Sicht-Type", visibleInSimplifiedForm = false)
public Integer type;
@DynamicFieldType(label = "Quelle", editControlType = FieldType.TextArea, visibleInSimplifiedForm = false)
public String quelle;
@DynamicFieldType(label = "Alternat. Hierarchie ID (COB)", visibleInSimplifiedForm = false)
//Als Ja/nein Auswahl
@DynamicFieldType(label = "Aktiv", editControlType = FieldType.Select, columnType = ColumnType.BooleanColumn)
public Integer aktiv;
@DynamicFieldType(label = "Button 'Stand' anzeigen", visibleInSimplifiedForm = false)
public Integer standbutton;
@DynamicFieldType(label = "Attribut1", visibleInSimplifiedForm = false)
public String attribut1;
@DynamicFieldType(label = "Attribut2", visibleInSimplifiedForm = false)
public String attribut2;
@DynamicFieldType(label = "Attribut3", visibleInSimplifiedForm = false)
public Integer attribut3;
@DynamicFieldType(label = "Attribut4", visibleInSimplifiedForm = false)
public Integer attribut4;
@DynamicFieldType(label = "Id der alt.Hierarchie", visibleInSimplifiedForm = false)
public String altHierId;
@DynamicFieldType(label = "Alternat. Hier. Tree-Cfg (COB)", visibleInSimplifiedForm = false)
@DynamicFieldType(label = "Tabelle der alt.Hierarchie", visibleInSimplifiedForm = false)
public String treecfgtable;
@DynamicFieldType(label = "Alternat. Hierarchie Tree-ID (COB)", visibleInSimplifiedForm = false)
@DynamicFieldType(label = "Id der Tabelle der alt.Hierarchie", visibleInSimplifiedForm = false)
public String treecfgid;
@DynamicFieldType(label = "Standbutton anzeigen", visibleInSimplifiedForm = false, editControlType = FieldType.Select, columnType = ColumnType.BooleanColumn)
public Integer standbutton = Integer.valueOf(0);
@DynamicFieldType(label = "Attribut 1", visibleInSimplifiedForm = false)
public String attribut1;
@DynamicFieldType(label = "Cache xml", visibleInSimplifiedForm = false)
public String cachexml;
@DynamicFieldType(label = "Attribut 2", visibleInSimplifiedForm = false)
public String attribut2;
@DynamicFieldType(label = "Gültig von", editControlType = FieldType.DatePicker, columnType = ColumnType.DateColumn, visibleInSimplifiedForm = false)
public Date gueltigSeit;
@DynamicFieldType(label = "Attribut 3", visibleInSimplifiedForm = false)
public Integer attribut3 = Integer.valueOf(0);
@DynamicFieldType(label = "Gültig bis", editControlType = FieldType.DatePicker, columnType = ColumnType.DateColumn, visibleInSimplifiedForm = false)
public Date gueltigBis;
@DynamicFieldType(label = "Attribut 4", visibleInSimplifiedForm = false)
public Integer attribut4 = Integer.valueOf(0);
// Ausblenden von aktuell nicht verwendeten Spalten
@DynamicFieldType(label = "Sicht Caching", visibleInSimplifiedForm = false)
public String cachexml;
// @DynamicFieldType(label = "Label", visibleInSimplifiedForm = false)
// public Integer label;
// @DynamicFieldType(label = "Parent", visibleInSimplifiedForm = false)
// public String parent;
// @DynamicFieldType(label = "User Rechte", visibleInSimplifiedForm = false)
// public Integer userRechte;
//
// @DynamicFieldType(label = "Rechtequelle", visibleInSimplifiedForm = false)
// public String rechtequelle;
//
// @DynamicFieldType(label = "Sesamkey", visibleInSimplifiedForm = false)
// public String sesamkey;
//Einträge zu xml/applet, veraltet?
// @DynamicFieldType(label = "XML max. Entries", visibleInSimplifiedForm = false)
// public Integer xmlmaxentries;
// @DynamicFieldType(label = "Cache applet", visibleInSimplifiedForm = false)
// public String cacheapplet;
// @Override
// public List<Item> getCellSpecificItems(String fieldName, DataSource ds) {
// List<Item> items = new ArrayList<Item>();
// if(fieldName.equals("systeminfoid")) {
// JdbcTemplate jt = new JdbcTemplate(ds);
// String sql = """
// SELECT label, value
// FROM (
// SELECT DISTINCT
// s.systeminfoid ||
// COALESCE(' - ' || sy.name, '') AS label,
// s.systeminfoid AS value,
// sy.name
// FROM sichten s
// JOIN public.systeminfo sy
// ON sy.tid = s.systeminfoid
// ) t
// ORDER BY name ASC
// """;
// items = jt.query(sql, (rs, rowNum) -> new Item(rs.getString("label"), rs.getString("value")));
// }
// return items;
// }
//Als Ja/nein Auswahl
@DynamicFieldType(label = "Aktiv?", editControlType = FieldType.Select, columnType = ColumnType.BooleanColumn)
public Integer aktiv = Integer.valueOf(0);
@DynamicFieldType(label = "Gültig von", editControlType = FieldType.DatePicker, columnType = ColumnType.DateColumn, visibleInSimplifiedForm = false)
public Date gueltigSeit = Date.from(LocalDate.of(1900, 1, 1).atStartOfDay(ZoneId.systemDefault()).toInstant());
@DynamicFieldType(label = "Gültig bis", editControlType = FieldType.DatePicker, columnType = ColumnType.DateColumn, visibleInSimplifiedForm = false)
public Date gueltigBis = Date.from(LocalDate.of(3000, 1, 1).atStartOfDay(ZoneId.systemDefault()).toInstant());
}

9
src/de/superx/jdbc/repository/CifxCustomizeRepository.java

@ -1,9 +0,0 @@ @@ -1,9 +0,0 @@
package de.superx.jdbc.repository;
import org.springframework.data.repository.RepositoryDefinition;
import de.superx.jdbc.entity.CifxCustomize;
@RepositoryDefinition(domainClass = CifxCustomize.class, idClass = Integer.class)
public interface CifxCustomizeRepository extends BiaAdminCrudRepository<CifxCustomize> {
}

10
src/de/superx/jdbc/repository/CifxKeyRepository.java

@ -1,10 +0,0 @@ @@ -1,10 +0,0 @@
package de.superx.jdbc.repository;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.RepositoryDefinition;
import de.superx.jdbc.entity.CifxKey;
@RepositoryDefinition(domainClass = CifxKey.class, idClass = Integer.class)
public interface CifxKeyRepository extends CrudRepository<CifxKey, Integer> {
}

10
src/de/superx/jdbc/repository/CifxTableRepository.java

@ -1,10 +0,0 @@ @@ -1,10 +0,0 @@
package de.superx.jdbc.repository;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.RepositoryDefinition;
import de.superx.jdbc.entity.CifxTable;
@RepositoryDefinition(domainClass = CifxTable.class, idClass = Integer.class)
public interface CifxTableRepository extends CrudRepository<CifxTable, Integer> {
}

10
src/de/superx/job/ContainerNode.java

@ -82,12 +82,10 @@ public class ContainerNode extends ActionNode { @@ -82,12 +82,10 @@ public class ContainerNode extends ActionNode {
private Map<String,String> parameters = new HashMap<>();
private boolean ignoreErrors = false;
private JobSource source = JobSource.FILE;
private String description;
public ContainerNode(String name, String id, Integer systemInfoId) {
super(name, id, systemInfoId, true, ActionType.CONTAINER);
this.jobType = JobType.getJobTypeForName(id);
this.description = name;
}
public void add(ActionNode node) {
@ -170,14 +168,6 @@ public class ContainerNode extends ActionNode { @@ -170,14 +168,6 @@ public class ContainerNode extends ActionNode {
return source;
}
public void setDescription(String description) {
this.description = description;
}
public String getDescription() {
return this.description;
}
public void setCustom(int custom) {
this.custom = Integer.valueOf(custom);
List<ActionNode> children = this.getActions();

6
src/de/superx/job/ExecuteSQLFluffAction.java

@ -1,12 +1,8 @@ @@ -1,12 +1,8 @@
package de.superx.job;
public class ExecuteSQLFluffAction extends ActionNode {
public String dbtProject;
public ExecuteSQLFluffAction (String dbtProject, String name, String id, Integer systemInfoId, boolean active, Integer custom) {
public ExecuteSQLFluffAction (String name, String id, Integer systemInfoId, boolean active, Integer custom) {
super(name, id, systemInfoId, active, custom, ActionType.EXECUTE_SQLFLUFF);
this.dbtProject = dbtProject;
}
public ExecuteSQLFluffAction () {}

4
src/de/superx/job/ExtractAction.java

@ -35,10 +35,10 @@ public class ExtractAction extends ActionNode { @@ -35,10 +35,10 @@ public class ExtractAction extends ActionNode {
super();
}
public static ExtractAction createFromSourceTable(SourceTable table, String unlFile, String schema, String sourceSystem) {
public static ExtractAction createFromSourceTable(SourceTable table, String unlFile, String schema) {
return new ExtractAction(table.getName(), table.getName(),
table.getExtractionScript(), table.getExtractionInclude(),
schema, unlFile, sourceSystem, Integer.valueOf(440), null);
schema, unlFile, "hisinone", Integer.valueOf(440), null);
}
private static String makeName(String id, String unlFile, String dataSource) {

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save