Compare commits
735 commits
office-ale
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 97a6e86a11 | |||
| f2bd7210e6 | |||
| 3c5e5b0546 | |||
| f06adc290c | |||
| 6721c2de9b | |||
| 2d3f98c15c | |||
| cfe1edb294 | |||
| f96d1af5e7 | |||
| 8309be5b39 | |||
| e85840695c | |||
| b6782448f9 | |||
| f942231066 | |||
| 99e138e685 | |||
| 44df91da9d | |||
| 8afb45271f | |||
| 7bca17dcca | |||
| fe4ca105df | |||
| 202fe2f3a0 | |||
| 3d322152e5 | |||
| 01e0e89e14 | |||
| e14af8449f | |||
| b8d0660526 | |||
| aeba05cc19 | |||
| 020498eee7 | |||
| 6a66fd1852 | |||
| 0a459e4b48 | |||
| 49c8ea0db9 | |||
| bd0500beef | |||
| b6e56958ec | |||
| 3f15b3a11b | |||
| f758c4a6ac | |||
| 0d9c9d8615 | |||
| 2b997da394 | |||
| 092aa40ceb | |||
| 8d9de4a16a | |||
| 1086466822 | |||
| a3df1a0a77 | |||
| 68acd25778 | |||
| 4e24e6e7b4 | |||
| 53703cdf9b | |||
| 394297b31c | |||
| 6a22dc29af | |||
| 38b60d7621 | |||
| 944d72b2cf | |||
| f6fb26dcf0 | |||
| 4203572a8f | |||
| 049bf8fea9 | |||
| 69456a28a0 | |||
| 111527b407 | |||
| ba40d05c9d | |||
| 190aa023c0 | |||
| 907455fe9b | |||
| 99dd910520 | |||
| be2f8c08ac | |||
| 26114ae35c | |||
| 97935680bf | |||
| 5491c04da4 | |||
| a272c8bdb4 | |||
| f72ef5cce6 | |||
| 5b4401bb82 | |||
| 6afd6856c2 | |||
| c15efc106c | |||
| a65ae59950 | |||
| 1d91e7f809 | |||
| 0e86783324 | |||
| 7d426a0dab | |||
| 6f76b367e7 | |||
| edacbbdd6d | |||
| 04acdb4ff3 | |||
| f8c13c5b2b | |||
| 47fc7e151e | |||
| ae11393c8c | |||
| 9884a3cd00 | |||
| d11099e8a3 | |||
| 6bee49b917 | |||
| 3ebd619df4 | |||
| d7619a7c21 | |||
| 4894d11f83 | |||
| 9a3e6146ea | |||
| 28b17e957f | |||
| 2bfa7cd7e1 | |||
| d7c9682bfd | |||
| 676310ae38 | |||
| 1d7fb83710 | |||
| 1a614564a8 | |||
| fc69af8bd5 | |||
| 38b755d5c1 | |||
| d59f9f3718 | |||
| dd96aa84d0 | |||
| e2c1d9a47e | |||
| cdf6d36f8b | |||
| f90afb959a | |||
| 851519dbbd | |||
| 5f4de3e432 | |||
| 82b3771fc8 | |||
| 5b445adee0 | |||
| b3c935132b | |||
| 600f6980bd | |||
| 15b8a54360 | |||
| 5f20bc458b | |||
| e09e25766a | |||
| 78739d3517 | |||
| fecb9e8813 | |||
| 96477feb74 | |||
| a1621420e2 | |||
| e4347046b4 | |||
| 3e1e7ccef0 | |||
| 459f7808cf | |||
| 9024ee2e38 | |||
| 082f0f609d | |||
| 1ee7c82805 | |||
| 909c3f195d | |||
| dd70091057 | |||
| 6b6957e1ab | |||
| 6e65ed4468 | |||
| cca28e9414 | |||
| 616765aa0a | |||
| 53b5f69329 | |||
| c232841ed3 | |||
| f61c7feca5 | |||
| fb3f086192 | |||
| b986f8615a | |||
| 7b421e0a37 | |||
| 1897377eb3 | |||
| 1f2d3b4cd5 | |||
| 6c4e72fe82 | |||
| 1bce7db64e | |||
| cfd974ecd2 | |||
| 6d7d47772c | |||
| 1b31712ac7 | |||
| bb058306f0 | |||
| 11b28ef9c3 | |||
| 26b08eb507 | |||
| 5ead936783 | |||
| 9f6d86d328 | |||
| 7fe009c23c | |||
| e76a8dc668 | |||
| 278880a6b0 | |||
| 5e4698025a | |||
| ed3444890d | |||
| 3e96df6e9c | |||
| e322acbd0e | |||
| af03c22dd7 | |||
| 6f15bbd21f | |||
| 7ae22da078 | |||
| 62435591d7 | |||
| e50a923347 | |||
| ca630aec03 | |||
| 5aa9fba8f8 | |||
| 54fe24e8c7 | |||
| 9fa5217d59 | |||
| 98d46de37c | |||
| c7ec908f4e | |||
| 988a831200 | |||
| 15e37ff2c8 | |||
| 6c1fa2c094 | |||
| d7f2b0bc92 | |||
| 51730e3d39 | |||
| 513782b303 | |||
| 75ef221181 | |||
| 8b463d3acb | |||
| 3764a265f9 | |||
| 3df24a7bd8 | |||
| f986a9d1ba | |||
| 5d1434fa7d | |||
| d1b816d1e6 | |||
| 7e1c0e91b8 | |||
| 5a4ac8a1e6 | |||
| fef55be481 | |||
| 5e483d5517 | |||
| 863dc67603 | |||
| 4143468ea0 | |||
| d4dc59b60b | |||
| 106515d25a | |||
| 6c67a81b6f | |||
| 0ef5fff446 | |||
| e0e5bbd8f3 | |||
| c6205b9c43 | |||
| c14e1e41b3 | |||
| fbf5bf2962 | |||
| fe23ba4050 | |||
| 734fe57d09 | |||
| 3a08e83581 | |||
| 5c16f68a43 | |||
| 81db869ccd | |||
| 6f9727c4d1 | |||
| 98ad08b052 | |||
| 52ac50f204 | |||
| 6620f7ce7c | |||
| 4ae91b527c | |||
| e1145e9348 | |||
| 79504dc80a | |||
| c6e73ac111 | |||
| a44424fcf1 | |||
| b666ffdbb7 | |||
| c2c3b6e798 | |||
| 4fb35d252b | |||
| 58745c32da | |||
| 15ce9fc9bb | |||
| fce3559463 | |||
| 03e0ac275f | |||
| 7f437904c9 | |||
| 686a112c22 | |||
| c9b25c9f5e | |||
| c0073dadd7 | |||
| 550323b72f | |||
| ea5bc8d1e5 | |||
| 8fcdaa3b69 | |||
| 0d73f0f7e0 | |||
| 18ffca90fb | |||
| 22d23226e4 | |||
| 73dd3c37a5 | |||
| 291b9d4a0a | |||
| db815dea23 | |||
| 8ddf44515e | |||
| 29d584d12f | |||
| bf1d9fd37b | |||
| a152fdd461 | |||
| 9cefd51ccb | |||
| 22c1c8793b | |||
| 2725b08cf7 | |||
| 52412a7678 | |||
| 6545f76f43 | |||
| 259373053f | |||
| fd668439c8 | |||
| 60d2d90114 | |||
| 67affba4d7 | |||
| 1e698fc8bf | |||
| 04eb6ddc18 | |||
| c9c9f69bed | |||
| eb6d3d2c00 | |||
| 2bc72c0940 | |||
| 8796759bb2 | |||
| caae20029e | |||
| 049df51b89 | |||
| e81be7996e | |||
| 2cbd5d66bc | |||
| 87ef39ece4 | |||
| 22c2791fa1 | |||
| e350ece8f3 | |||
| ffb0942737 | |||
| cce4b9a6e4 | |||
| 7b283e5b03 | |||
| 7204fc43c8 | |||
| fe65ae16a4 | |||
| 9de6a9fe23 | |||
| 177d75c13a | |||
| 5105d20783 | |||
| cc7e081c78 | |||
| d4f1bd318e | |||
| 8d236df375 | |||
| f294d64e8c | |||
| ea5a43e259 | |||
| 87cd3204c2 | |||
| 93c902ab4a | |||
| f695bc63a3 | |||
| 9556c419ca | |||
| 830394c7a3 | |||
| 001787e018 | |||
| 5c7cdde0fe | |||
| 981ccfc41b | |||
| 73731c89ea | |||
| 1a82da08d5 | |||
| d4d57797a3 | |||
| 5c7f7746d6 | |||
| 7535fa975e | |||
| b8879fc300 | |||
| e987a30053 | |||
| 65a1d4f2b7 | |||
| 584d59cfbe | |||
| 6cfea74397 | |||
| 303448d766 | |||
| d948742963 | |||
| 174b230509 | |||
| 372c7887fb | |||
| db478a5b4e | |||
| c2e4df0379 | |||
| 6cd3d5d258 | |||
| 919ad796de | |||
| c1f123215a | |||
| d47518224f | |||
| 4b9da4d98a | |||
| 0f7627419a | |||
| be064fb965 | |||
| f30cc8e8fe | |||
| 72a10ddcf5 | |||
| 1ea9564e55 | |||
| 9511d7fd95 | |||
| 3a103e9a1e | |||
| 112de7e8ad | |||
| 81fb527029 | |||
| aa5f000715 | |||
| ac4127e353 | |||
| 5aa7113d7f | |||
| 595e77fc63 | |||
| 27698becf5 | |||
| 7ba7967a92 | |||
| bdf3c8ba01 | |||
| d6ba785002 | |||
| 633363aa3c | |||
| c1c1d8b520 | |||
| cbe256a962 | |||
| 27f7b2b4f6 | |||
| 39099700fe | |||
| c47a6ed4ac | |||
| a756997247 | |||
| 628d10bae9 | |||
| 703995f959 | |||
| f623ea33ff | |||
| 2c6636bfbc | |||
| d99aad1322 | |||
| 3b7742ee07 | |||
| b9084965e0 | |||
| 1db1cd756c | |||
| 84a2e87eb6 | |||
| 93263280dc | |||
| 02f24df8a3 | |||
| 042fd7bdcf | |||
| f52e76374e | |||
| 56a60a990d | |||
| 0d5aa41e4d | |||
| 0b20c10c0a | |||
| 47d90c8655 | |||
| 5da7fc866f | |||
| 216589537c | |||
| 2aa5501b03 | |||
| 647f2e9af8 | |||
| 09572730e5 | |||
| f8df34586c | |||
| bcbb60fc20 | |||
| 15fe8e14e6 | |||
| d33fed4707 | |||
| 021e7cec34 | |||
| 632f674bfa | |||
| 1acd22f334 | |||
| 90d624d585 | |||
| ccc4584f91 | |||
| 4f0f4aefd8 | |||
| dfa089ba31 | |||
| 90166229bd | |||
| 017ef6a752 | |||
| 51ccd40f18 | |||
| cde1b2a2eb | |||
| 302e4e5b08 | |||
| 73cd9a28f7 | |||
| 9a932d0f54 | |||
| d2a2d506d2 | |||
| 66b674afaf | |||
| eb6808da78 | |||
| 50f44b851f | |||
| 1cd4980ce0 | |||
| 831ace7b42 | |||
| 74ef6e17a7 | |||
| 8db4320348 | |||
| 8fad186e39 | |||
| 01cec74af6 | |||
| 947bed1ede | |||
| 07ed3a30d0 | |||
| 2fe0f4ef69 | |||
| 2e61ef39e3 | |||
| 7bdf108532 | |||
| f4b783f8af | |||
| 32d731fadd | |||
| ff832f327f | |||
| 3b5bb12c32 | |||
| a715e00a1d | |||
| 61a7fa8399 | |||
| 633bcdd3d6 | |||
| d5d4b21434 | |||
| 03d4fe241a | |||
| 11ccddb529 | |||
| a18a365898 | |||
| c34ed64445 | |||
| 6c538355d7 | |||
| 8e6f97ffa4 | |||
| ca2e72bc37 | |||
| 20c3410489 | |||
| 2e66c68e40 | |||
| aabb7ab04d | |||
| 2a12ecaf3c | |||
| 8790248d88 | |||
| 1bb65234fa | |||
| 47b925e71b | |||
| 3eecb7e90d | |||
| 4d2ce3527a | |||
| 566c32c94a | |||
| a1c3330cd3 | |||
| 8b22337548 | |||
| a6f4b68fba | |||
| 81549ab4e0 | |||
| 89865fcde1 | |||
| b7011a5cf8 | |||
| 1762c5c878 | |||
| da2fa6116f | |||
| ff8cfb44bd | |||
| 3973e1ae91 | |||
| ae7b7abf8e | |||
| e8219ca579 | |||
| f9bee7a6a8 | |||
| e2abb87845 | |||
| f862447f1a | |||
| 3f05aa98c7 | |||
| 7217b76b43 | |||
| a3609c26c9 | |||
| 23e6b5fd9d | |||
| e5110f4d04 | |||
| 77bad00696 | |||
| 13bef49e39 | |||
| 41cb1f5d3c | |||
| 4f587e1466 | |||
| b09846efbe | |||
| ec2ee8a8e9 | |||
| 8a0e3b1e26 | |||
| a5a17927ee | |||
| ac2bc4bfe8 | |||
| 00e2dde892 | |||
| a14762f784 | |||
| a682955ab5 | |||
| 05589a4249 | |||
| 1bfdee3163 | |||
| 620dbbcc28 | |||
| c6799ff6b5 | |||
| e7c3b8c147 | |||
| ab547d3dc0 | |||
| 16c91089b0 | |||
| 5cd6ba2e07 | |||
| 98a16b9840 | |||
| f1b7c04603 | |||
| b3d0efad64 | |||
| abfb0704e0 | |||
| 50e6daebff | |||
| 7d350efa65 | |||
| c7d9fcc212 | |||
| 1c310de954 | |||
| 7b52cba5cf | |||
| f211f8ad1c | |||
| 3930062f78 | |||
| eef0be91d8 | |||
| 8dd5ff5f4d | |||
| a2548ff1be | |||
| 581cc91a8f | |||
| 258d5fac3d | |||
| f012818d75 | |||
| 74b12b0032 | |||
| d41a2fb063 | |||
| e55f88c6fc | |||
| 67eb0f2b78 | |||
| c1828474fb | |||
| eb109a044f | |||
| 4e0b1b0b5f | |||
| 8558aecdaf | |||
| 5a04a70a4d | |||
| 316ea10de5 | |||
| 221181ad20 | |||
| b11a7cf3d7 | |||
| f48de5a633 | |||
| 49c01370eb | |||
| 9654b42d48 | |||
| 0d31aec3be | |||
| 81229a422c | |||
| fc7a591da7 | |||
| 74d1107c9a | |||
| 7e238d4c94 | |||
| b281eedafe | |||
| fafe6c24dd | |||
| 87b67b3705 | |||
| 967887f5c5 | |||
| 4178b8e4c4 | |||
| 625adb3aa5 | |||
| 899a6a3889 | |||
| 3d4bbb03e0 | |||
| e6a234bcb8 | |||
| fbfc141298 | |||
| b495b296d0 | |||
| 123c3a052c | |||
| 51da411232 | |||
| 995c9311aa | |||
| ddce2fcf91 | |||
| 40e971e584 | |||
| 59e195ff1e | |||
| 78be1b5139 | |||
| 25c9543bfa | |||
| 194c50eec8 | |||
| ca62a97941 | |||
| 257649e528 | |||
| b7199e22da | |||
| 841fbeb71e | |||
| 82453a5dff | |||
| 2ec5ed7988 | |||
| 90eb86f9f6 | |||
| a0bb3bed3e | |||
| b0fc228ba7 | |||
| 769c075f4d | |||
| 5710b512f7 | |||
| 5bef3697ab | |||
| b8627ca83a | |||
| 96ef6030ac | |||
| 865d87a80e | |||
| d4da6a5869 | |||
| be02345a2f | |||
| 6de7ef5921 | |||
| e3a24515f6 | |||
| 6e8d6b34ba | |||
| 86077361be | |||
| 8285b6ee70 | |||
| 9a6c7e0741 | |||
| 3631fed1c6 | |||
| 4aacbcbc31 | |||
| 4b5d007d69 | |||
| d0dc2167ff | |||
| 7a728fc298 | |||
| 2203a41d3b | |||
| f9169a184b | |||
| 7529375d6d | |||
| 219ee170ff | |||
| 7d5cf15aa1 | |||
| e44b101ec5 | |||
| a6bfd898db | |||
| 11ce4a4f11 | |||
| 8d9a0bba53 | |||
| 6bcd6ddaa8 | |||
| 545bd30d92 | |||
| c3a8957c25 | |||
| d176d3be39 | |||
| e9665bf27c | |||
| e66b3add86 | |||
| 6dc793e337 | |||
| 90e4b8147d | |||
| f76c21d1d5 | |||
| 00566bbe62 | |||
| 6307ba5526 | |||
| 77d3e1b391 | |||
| cc01330439 | |||
| 1ed2abde55 | |||
| 1e47d98896 | |||
| c89ab57bf6 | |||
| 60af5af539 | |||
| 6cafc831ec | |||
| 02c9522bbd | |||
| bb22c71a7a | |||
| 303ef23928 | |||
| de15f32f69 | |||
| 13f408dff6 | |||
| 332f940516 | |||
| 8921a096a2 | |||
| 9599dbfe55 | |||
| 011c9a64dd | |||
| f1abeea212 | |||
| 64fe94c261 | |||
| c91e14de0d | |||
| 4a6ee7ae32 | |||
| c07fb61956 | |||
| 94819cab10 | |||
| 203f239eef | |||
| ff06502000 | |||
| 43b6ca953c | |||
| 44149ca9bf | |||
| e109adde8f | |||
| ea816cf668 | |||
| 1ad63b644c | |||
| 2464753877 | |||
| 856c621cf7 | |||
| 29d0c114ac | |||
| cd76734ec7 | |||
| 637da53b05 | |||
| 3a4f14ece6 | |||
| 2d77ee846c | |||
| b87f32028d | |||
| cce2aa3f2c | |||
| 0b826b6880 | |||
| 19e334616b | |||
| 4c4b90da03 | |||
| 4bab538eaa | |||
| deb6a73984 | |||
| 3a3843fd04 | |||
| 0f1ad9e4c8 | |||
| 9f082939ba | |||
| 510493e849 | |||
| f9bb7c69dc | |||
| bcb67bd1f6 | |||
| 641181b2a5 | |||
| 5d5b7ba8cf | |||
| d8dce27b1b | |||
| 676f082bc3 | |||
| 97a65e7b6a | |||
| 7fcff8ace2 | |||
| e34df74684 | |||
| aa07be486c | |||
| 0d23051acd | |||
| a7e72af4e8 | |||
| d156379e26 | |||
| 67fe602844 | |||
| 719d86468e | |||
| f474be940c | |||
| 34be6465e9 | |||
| aa48c770c1 | |||
| 07bf3cfc21 | |||
| 2de39f4e9f | |||
| d8c87df5cf | |||
| eb0154d0d1 | |||
| 6aebef26a6 | |||
| 2be537aae4 | |||
| 9989792c63 | |||
| 038d9478bf | |||
| 2742379b37 | |||
| 520c0e996c | |||
| ff6ff80506 | |||
| ef8833dd59 | |||
| 0d7e4d40b6 | |||
| 5d913b10e0 | |||
| 3525e6fb7d | |||
| 7d481d14d0 | |||
| 29f62710a9 | |||
| b35dea70f8 | |||
| 0b8ad2a15d | |||
| d8bfc6ce39 | |||
| 7902df76a9 | |||
| f60c4784a0 | |||
| bbe247aed7 | |||
| b52faff838 | |||
| 3f54cbdf2b | |||
| ba221f51f6 | |||
|
|
9b8bc1e330 | ||
| a739c0ddac | |||
| 41c6ac7cbf | |||
| 1127211706 | |||
| 845405eed3 | |||
| f6bb14c8de | |||
| 1338d9aae8 | |||
| 7421d2dc9e | |||
| 630f85a362 | |||
| 5918074f86 | |||
| 8aca7ef7e3 | |||
| 6eeea8335f | |||
| 36dadc0763 | |||
| a8da666d77 | |||
| a877c08d9f | |||
| 18825e2994 | |||
| 1751443702 | |||
| 4fde7c5a4a | |||
| 6a07ec3c18 | |||
| 4f88884d71 | |||
| 98f3de046e | |||
| f8313b7571 | |||
| c59038ec86 | |||
| 723599dafb | |||
| 0a4254b8ae | |||
| 4507638daf | |||
| 6977228367 | |||
| 33650626e9 | |||
| 96c6c87624 | |||
| 878aced06f | |||
| 89dc8096b0 | |||
| ed0d69822b | |||
| 85154a0cd2 | |||
| 2c5695f8fc | |||
| c0c50bc178 | |||
| 146ad9a17b | |||
| 5bc6225765 | |||
|
|
d8e824f153 | ||
| ca0ec303e6 | |||
| 5d19464acc | |||
| c0646f615d | |||
| c2213ff656 | |||
| 9edadfed88 | |||
| 7cf8694694 | |||
| 54d2439a0b | |||
| e918b2097b | |||
| f24a3762e3 | |||
| e8439e392d | |||
| 700b8168f8 | |||
| 2fdd3510bc | |||
| 28fe2c02a4 | |||
| 9ecb75888c | |||
| 02187332b0 | |||
|
|
4de8d6e09a | ||
|
|
cbf950a76b | ||
| f8820be87e | |||
| 8bdd9a4a99 | |||
| a31540ce02 | |||
| 7835b685cf | |||
| 15e0d86fb7 | |||
| da9f4c7c0e | |||
| d493ec2fbd | |||
| 3d0993deab | |||
| a035998513 | |||
| 1a603847f3 | |||
| eff6aa2f42 | |||
| 77e966f387 | |||
|
|
5f02b058db | ||
| a35633b7aa | |||
|
|
9a83ccc7e1 | ||
| 75867abf64 | |||
| 7bc51dd69b | |||
| 1870d0856a | |||
| dae4560a69 | |||
| 95c3298ac9 | |||
|
|
e4357251bb | ||
| 98b623ce4a | |||
| 57a1806f48 | |||
|
|
a1c0de7c7c | ||
| 00d71f91d8 | |||
| d209958aa5 | |||
| 5df4dcc03f | |||
| 5f26b76464 | |||
| 11be0b97b1 | |||
| 1fbe223c1b | |||
| fe86360a3a | |||
| 406f0a415b | |||
| a1e44d70c3 | |||
| eb40432b74 | |||
| c124d06d74 | |||
| 45530d4be5 | |||
| e27dd87509 | |||
| 88b962b459 | |||
| c4cfcfb7f8 | |||
| a6be684b43 | |||
| 2ce2b3a7d7 | |||
| 2ebd24fe54 | |||
| c4f0e9c5d6 | |||
| 1d447da7e6 | |||
| ab05e123a2 | |||
| c660449966 | |||
|
|
60ce7a34ee | ||
| 09cb832173 | |||
| 190ef5776b | |||
| d7a570ac3e | |||
| 90beebd5c0 | |||
| eee7a96913 | |||
| 6364d3facb | |||
| 623da80710 | |||
| 600f9574e8 | |||
| c814bd46e5 | |||
| 3075e0532e | |||
| 0f648abf5a |
911 changed files with 1146336 additions and 92417 deletions
63
.gitignore
vendored
63
.gitignore
vendored
|
|
@ -13,6 +13,69 @@ target/
|
||||||
.metadata/
|
.metadata/
|
||||||
.project
|
.project
|
||||||
.classpath
|
.classpath
|
||||||
|
.env
|
||||||
|
|
||||||
# ignore docker deployments
|
# ignore docker deployments
|
||||||
docker/deployments/
|
docker/deployments/
|
||||||
|
docker/keys/imixs-llm.xml
|
||||||
|
|
||||||
|
# Sepa Report
|
||||||
|
reports/sepa/result_sepa*
|
||||||
|
reports/sepa/result_sepa02.xml
|
||||||
|
reports/sepa/result_sepa01.xml
|
||||||
|
reports/sepa/result_sepa01.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-EX-LUF-2408-012N-001-ATC400017000820248755_20240821131908357.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-EX-LUF-2408-029N-001-ATC400032730820244701_20240821131910757.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-IM-GCA-2408-040N-001-ATC401807570820244851_20240821131910106.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-IM-GCA-2408-071N-001-ATC401421700820244851_20240821131907270.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-IM-GCA-2408-073N-001-ATC401821570820244851_20240821131910196.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-IM-GCA-2408-074N-001-ATC401807190820244851_20240821131909839.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-IM-GCA-2408-075N-001-ATC401821560820244851_20240821131910295.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-IM-GCA-2408-076N-001-ATC401807180820244851_20240821131909944.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-IM-GCA-2408-077N-001-ATC401821670820244851_20240821131910382.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-IM-GCA-2408-104N-001-ATC401760200820244851_20240821131909742.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-IM-GCA-2408-104N-002-ATC401763670820244851_20240821131909643.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-IM-GCA-2408-117N-001-ATC402065440820244851_20240822094659317.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-IM-GCA-2408-134N-001-ATC402064120820244851_20240822093357914.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-IM-GCA-2408-137N-001-ATC402069260820244851_20240822101501667.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-IM-GCA-2408-147N-001-ATC401347560820244851_20240821131906718.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-IM-GCA-2408-166N-001-ATC401970490820244851_20240821174231527.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-IM-GCA-2408-182N-001-ATC400007030820248305_20240821140014070.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-IM-GCA-2408-197N-001-ATC401857360820244851_20240821131910651.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-IM-ZEL-2408-226N-001-ATC400057120820242452_20240821131909552.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-IM-ZEL-2408-227N-001-ATC400063340820242452_20240821131910559.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-IM-ZEL-2408-242N-001-ATC400063350820242452_20240821131910468.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-IM-ZEL-2408-245N-001-ATC400056040820242452_20240821131909450.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-LA-HOL-2408-008N-001-ATC400047590820242452_20240821131906940.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-LA-HOL-2408-014N-001-ATC400045030820242452_20240821131905513.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-LA-HOL-2408-019N-001-ATC400045200820242452_20240821131905815.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-LA-PAP-2408-019N-001-ATC400053590820242452_20240821131908977.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-LA-PAP-2408-019N-002-ATC400055600820242452_20240821131909068.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-LA-PAP-2408-019N-003-ATC400056650820242452_20240821131909351.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-LA-PAP-2408-019N-004-ATC400055970820242452_20240821131909155.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-LA-PAP-2408-019N-005-ATC400056290820242452_20240821131909243.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-LA-PAP-2408-024N-001-ATC400050240820242452_20240821131908139.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-LA-PAP-2408-024N-002-ATC400049740820242452_20240821131908027.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-LA-PAP-2408-024N-003-ATC400047450820242452_20240821131906347.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-LA-PAP-2408-024N-004-ATC400047870820242452_20240821131907379.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-LA-PAP-2408-024N-005-ATC400047070820242452_20240821131906099.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-LA-PAP-2408-024N-006-ATC400047700820242452_20240821131907055.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-LA-PAP-2408-024N-007-ATC400047900820242452_20240821131907589.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-LA-PAP-2408-024N-008-ATC400047880820242452_20240821131907490.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-LA-PAP-2408-024N-009-ATC400047650820242452_20240821131906833.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-LA-PAP-2408-024N-010-ATC400051260820242452_20240821131908773.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-LA-PAP-2408-024N-011-ATC400051080820242452_20240821131908667.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-LA-PAP-2408-024N-012-ATC400047370820242452_20240821131906209.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-LA-PAP-2408-024N-013-ATC400051270820242452_20240821131908881.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-LA-PAP-2408-024N-014-ATC400050470820242452_20240821131908250.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-LA-PAP-2408-024N-015-ATC400049700820242452_20240821131907912.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-LA-PAP-2408-024N-016-ATC400047460820242452_20240821131906467.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-LA-PAP-2408-024N-017-ATC400047030820242452_20240821131905952.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-LA-PAP-2408-024N-018-ATC400050780820242452_20240821131908469.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-LA-PAP-2408-024N-019-ATC400048420820242452_20240821131907701.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-LA-PAP-2408-024N-020-ATC400047710820242452_20240821131907164.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-LA-PAP-2408-024N-021-ATC400051050820242452_20240821131908575.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-LA-PAP-2408-029N-002-ATC400047480820242452_20240821131906597.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-LA-PAP-2408-029N-003-ATC400048880820242452_20240821131907809.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/Abgabenbescheid-LA-PAP-2408-038N-001-ATC400062360820242452_20240821143316787.xml
|
||||||
|
office-alexander-logistics-app/src/test/resources/cargosoft/testdaten/README.md
|
||||||
|
|
|
||||||
13
.vscode/launch.json
vendored
Normal file
13
.vscode/launch.json
vendored
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
// Wildfly Debug Configuration
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"type": "java",
|
||||||
|
"name": "Debug AGL",
|
||||||
|
"request": "attach",
|
||||||
|
"hostName": "localhost",
|
||||||
|
"port": "8787",
|
||||||
|
"projectName": "office-alexander-logistics-app"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
12
.vscode/settings.json
vendored
Normal file
12
.vscode/settings.json
vendored
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
// If one would like to add/remove/modify user preferences without modifying the content of the
|
||||||
|
// workspace settings file, then one would need to modify the `settings.json` under here:
|
||||||
|
// - Windows: %APPDATA%\Code\User\settings.json
|
||||||
|
// - Linux: $HOME/.config/Code/User/settings.json
|
||||||
|
// - Mac: $HOME/Library/Application Support/Code/User/settings.json
|
||||||
|
{
|
||||||
|
"editor.formatOnSave": true,
|
||||||
|
"editor.codeActionsOnSave": {
|
||||||
|
"source.organizeImports": "explicit"
|
||||||
|
},
|
||||||
|
"java.format.settings.url": "https://raw.githubusercontent.com/imixs/imixs-workflow/refs/heads/master/imixs-code-style.xml"
|
||||||
|
}
|
||||||
210
BPMN-KI-Test/prompt1.txt
Normal file
210
BPMN-KI-Test/prompt1.txt
Normal file
|
|
@ -0,0 +1,210 @@
|
||||||
|
Du bist Prozessberater und Spezialisiert auf die Analyse von BPMN Modellen.
|
||||||
|
Bitte beschreibe den im folgenden BPMN 2.0 Modell definierten Prozess und erstelle eine kurze Zusammenfassung:
|
||||||
|
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<bpmn2:definitions xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
|
||||||
|
xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
|
||||||
|
xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:open-bpmn="http://open-bpmn.org/XMLSchema"
|
||||||
|
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
exporter="org.openbpmn" exporterVersion="1.0.0" targetNamespace="http://open-bpmn.org"
|
||||||
|
xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL">
|
||||||
|
<bpmn2:collaboration id="collaboration_1" name="Default Collaboration">
|
||||||
|
<bpmn2:participant id="participant_TgW2JA" name="Default Process" processRef="process_1" />
|
||||||
|
<bpmn2:participant id="participant_tgRhJQ" name="Rechnungseingang" processRef="process_lYaFpg">
|
||||||
|
<bpmn2:documentation id="documentation_wSfXcQ"><![CDATA[Dieser Workflow dient dazu eingehende Rechnungen zu prüfen und zur Bezahlung weiterzuleiten. Es wird unterschieden von Sachrechnungen, die vom Sekretariat bearbeitet werden können und Cargo-Rechnungen die durch die Logistikabteilung anhand von Logistikaufträgen geprüft werden.
|
||||||
|
Nachdem die Rechnung bezahlt wurde wird der Vorgang archiviert. ]]></bpmn2:documentation>
|
||||||
|
</bpmn2:participant>
|
||||||
|
</bpmn2:collaboration>
|
||||||
|
<bpmn2:extensionElements>
|
||||||
|
<open-bpmn:auto-align>true</open-bpmn:auto-align>
|
||||||
|
</bpmn2:extensionElements>
|
||||||
|
<bpmn2:process definitionalCollaborationRef="collaboration_1" id="process_1"
|
||||||
|
name="Default Process" processType="Public">
|
||||||
|
<bpmn2:documentation id="documentation_wXazVg" />
|
||||||
|
</bpmn2:process>
|
||||||
|
<bpmn2:process definitionalCollaborationRef="collaboration_1" id="process_lYaFpg"
|
||||||
|
isExecutable="true" name="Rechnungseingang" processType="Private">
|
||||||
|
<bpmn2:laneSet id="laneset_fDygyw" name="Lane Set">
|
||||||
|
<bpmn2:lane id="lane_BgoDFg" name="Sekretariat">
|
||||||
|
<bpmn2:documentation id="documentation_hIztzA" />
|
||||||
|
<bpmn2:flowNodeRef>task_7Y3UUA</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>event_bH7Wag</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>event_oNXxgg</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>event_GEqHhQ</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>event_VJXKGg</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>task_SP75zg</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>gateway_ASbu1A</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>gateway_Vyo0Zw</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>task_xAzhzw</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>event_YH3bnw</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>event_1qR49w</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>task_fHgZBg</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>event_YnFi7A</bpmn2:flowNodeRef>
|
||||||
|
</bpmn2:lane>
|
||||||
|
<bpmn2:lane id="lane_eMP9Xw" name="Fachbereich">
|
||||||
|
<bpmn2:documentation id="documentation_6ihnmQ" />
|
||||||
|
<bpmn2:flowNodeRef>event_A1J0OA</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>task_5lS3mw</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>gateway_Hn5ZhQ</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>event_dJ89xQ</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>event_30uUNA</bpmn2:flowNodeRef>
|
||||||
|
</bpmn2:lane>
|
||||||
|
</bpmn2:laneSet>
|
||||||
|
<bpmn2:startEvent id="event_bH7Wag" name="Start">
|
||||||
|
<bpmn2:documentation id="documentation_pguolw" />
|
||||||
|
<bpmn2:outgoing>sequenceFlow_8yitUQ</bpmn2:outgoing>
|
||||||
|
</bpmn2:startEvent>
|
||||||
|
<bpmn2:task id="task_7Y3UUA" name="Rechnungsprüfung">
|
||||||
|
<bpmn2:documentation id="documentation_oKsT5Q"><![CDATA[Inhaltliche Prüufng der Rechnung]]></bpmn2:documentation>
|
||||||
|
<bpmn2:incoming>sequenceFlow_BGVbSA</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_FyAf3g</bpmn2:outgoing>
|
||||||
|
<bpmn2:incoming>sequenceFlow_hvQWmg</bpmn2:incoming>
|
||||||
|
<bpmn2:incoming>sequenceFlow_j4GDgg</bpmn2:incoming>
|
||||||
|
</bpmn2:task>
|
||||||
|
<bpmn2:endEvent id="event_oNXxgg" name="Ende">
|
||||||
|
<bpmn2:documentation id="documentation_1heF3g" />
|
||||||
|
<bpmn2:incoming>sequenceFlow_iVpj0g</bpmn2:incoming>
|
||||||
|
</bpmn2:endEvent>
|
||||||
|
<bpmn2:intermediateCatchEvent id="event_GEqHhQ" name="Import">
|
||||||
|
<bpmn2:documentation id="documentation_gR2xbw" />
|
||||||
|
<bpmn2:incoming>sequenceFlow_8yitUQ</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_BGVbSA</bpmn2:outgoing>
|
||||||
|
</bpmn2:intermediateCatchEvent>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_8yitUQ" sourceRef="event_bH7Wag" targetRef="event_GEqHhQ">
|
||||||
|
<bpmn2:documentation id="documentation_2Zd0Aw" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_BGVbSA" sourceRef="event_GEqHhQ" targetRef="task_7Y3UUA">
|
||||||
|
<bpmn2:documentation id="documentation_6k088A" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:intermediateCatchEvent id="event_VJXKGg" name="Sachrechnung">
|
||||||
|
<bpmn2:documentation id="documentation_DaDN3w"><![CDATA[Weiterleiten zur Sachprüfung]]></bpmn2:documentation>
|
||||||
|
<bpmn2:incoming>sequenceFlow_rZXh6g</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_sNlWkQ</bpmn2:outgoing>
|
||||||
|
</bpmn2:intermediateCatchEvent>
|
||||||
|
<bpmn2:task id="task_SP75zg" name="Budgetprüfung">
|
||||||
|
<bpmn2:documentation id="documentation_qP2Sew" />
|
||||||
|
<bpmn2:incoming>sequenceFlow_sNlWkQ</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_nxZ9bA</bpmn2:outgoing>
|
||||||
|
</bpmn2:task>
|
||||||
|
<bpmn2:task id="task_5lS3mw" name="Prüfung Logistik Auftrag">
|
||||||
|
<bpmn2:documentation id="documentation_zweAkw"><![CDATA[Prüfung der Rechnung und Abgleich mit Logistikauftrag]]></bpmn2:documentation>
|
||||||
|
<bpmn2:incoming>sequenceFlow_DXGQrw</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_UebylQ</bpmn2:outgoing>
|
||||||
|
</bpmn2:task>
|
||||||
|
<bpmn2:eventBasedGateway gatewayDirection="Diverging" id="gateway_ASbu1A" name="">
|
||||||
|
<bpmn2:documentation id="documentation_09gukg" />
|
||||||
|
<bpmn2:incoming>sequenceFlow_FyAf3g</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_rZXh6g</bpmn2:outgoing>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_i7cH2A</bpmn2:outgoing>
|
||||||
|
</bpmn2:eventBasedGateway>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_FyAf3g" sourceRef="task_7Y3UUA" targetRef="gateway_ASbu1A">
|
||||||
|
<bpmn2:documentation id="documentation_tv00MQ" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_rZXh6g" sourceRef="gateway_ASbu1A" targetRef="event_VJXKGg">
|
||||||
|
<bpmn2:documentation id="documentation_EPAmhQ" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_sNlWkQ" sourceRef="event_VJXKGg" targetRef="task_SP75zg">
|
||||||
|
<bpmn2:documentation id="documentation_iXrfpg" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:intermediateCatchEvent id="event_A1J0OA" name="Cargo Rechnung">
|
||||||
|
<bpmn2:documentation id="documentation_RWi6LA"><![CDATA[Weiterleitung zur Prüfung Logistikauftrag]]></bpmn2:documentation>
|
||||||
|
<bpmn2:incoming>sequenceFlow_i7cH2A</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_DXGQrw</bpmn2:outgoing>
|
||||||
|
</bpmn2:intermediateCatchEvent>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_i7cH2A" sourceRef="gateway_ASbu1A" targetRef="event_A1J0OA">
|
||||||
|
<bpmn2:documentation id="documentation_pz6J4g" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_DXGQrw" sourceRef="event_A1J0OA" targetRef="task_5lS3mw">
|
||||||
|
<bpmn2:documentation id="documentation_ngSLdQ" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:exclusiveGateway gatewayDirection="Diverging" id="gateway_Vyo0Zw" name="">
|
||||||
|
<bpmn2:documentation id="documentation_Pm90XA" />
|
||||||
|
<bpmn2:incoming>sequenceFlow_nxZ9bA</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_9tp42Q</bpmn2:outgoing>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_h4SfiQ</bpmn2:outgoing>
|
||||||
|
</bpmn2:exclusiveGateway>
|
||||||
|
<bpmn2:intermediateCatchEvent id="event_dJ89xQ" name="Freigabe">
|
||||||
|
<bpmn2:documentation id="documentation_sB06Ag"><![CDATA[Rechnung in Ordnung und freigegeben zur Bezahlung]]></bpmn2:documentation>
|
||||||
|
<bpmn2:incoming>sequenceFlow_PLk0RA</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_A0FQoA</bpmn2:outgoing>
|
||||||
|
</bpmn2:intermediateCatchEvent>
|
||||||
|
<bpmn2:exclusiveGateway gatewayDirection="Diverging" id="gateway_Hn5ZhQ" name="">
|
||||||
|
<bpmn2:documentation id="documentation_aLEQqQ" />
|
||||||
|
<bpmn2:incoming>sequenceFlow_UebylQ</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_PLk0RA</bpmn2:outgoing>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_xVEjcA</bpmn2:outgoing>
|
||||||
|
</bpmn2:exclusiveGateway>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_UebylQ" sourceRef="task_5lS3mw" targetRef="gateway_Hn5ZhQ">
|
||||||
|
<bpmn2:documentation id="documentation_MZdr7Q" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:task id="task_xAzhzw" name="Bezahlung">
|
||||||
|
<bpmn2:documentation id="documentation_zO3SRw" />
|
||||||
|
<bpmn2:incoming>sequenceFlow_9OrwEg</bpmn2:incoming>
|
||||||
|
<bpmn2:incoming>sequenceFlow_A0FQoA</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_OfKNWA</bpmn2:outgoing>
|
||||||
|
</bpmn2:task>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_nxZ9bA" sourceRef="task_SP75zg" targetRef="gateway_Vyo0Zw">
|
||||||
|
<bpmn2:documentation id="documentation_G4qmmA" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_PLk0RA" sourceRef="gateway_Hn5ZhQ" targetRef="event_dJ89xQ">
|
||||||
|
<bpmn2:documentation id="documentation_Y5qwSA" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:intermediateCatchEvent id="event_YH3bnw" name="Freigeben">
|
||||||
|
<bpmn2:documentation id="documentation_C05Bhw"><![CDATA[Rechnung in Ordnung und freigegeben zur Bezahlung]]></bpmn2:documentation>
|
||||||
|
<bpmn2:incoming>sequenceFlow_9tp42Q</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_9OrwEg</bpmn2:outgoing>
|
||||||
|
</bpmn2:intermediateCatchEvent>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_9tp42Q" sourceRef="gateway_Vyo0Zw" targetRef="event_YH3bnw">
|
||||||
|
<bpmn2:documentation id="documentation_PIQaSg" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_9OrwEg" sourceRef="event_YH3bnw" targetRef="task_xAzhzw">
|
||||||
|
<bpmn2:documentation id="documentation_0eagTw" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:intermediateCatchEvent id="event_1qR49w" name="Ablehnen">
|
||||||
|
<bpmn2:documentation id="documentation_cdpcXA" />
|
||||||
|
<bpmn2:incoming>sequenceFlow_h4SfiQ</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_hvQWmg</bpmn2:outgoing>
|
||||||
|
</bpmn2:intermediateCatchEvent>
|
||||||
|
<bpmn2:intermediateCatchEvent id="event_30uUNA" name="Ablehnen">
|
||||||
|
<bpmn2:documentation id="documentation_VazNUA" />
|
||||||
|
<bpmn2:incoming>sequenceFlow_xVEjcA</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_j4GDgg</bpmn2:outgoing>
|
||||||
|
</bpmn2:intermediateCatchEvent>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_h4SfiQ" sourceRef="gateway_Vyo0Zw" targetRef="event_1qR49w">
|
||||||
|
<bpmn2:documentation id="documentation_Q2yPDw" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_hvQWmg" sourceRef="event_1qR49w" targetRef="task_7Y3UUA">
|
||||||
|
<bpmn2:documentation id="documentation_qkneSw" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_xVEjcA" sourceRef="gateway_Hn5ZhQ" targetRef="event_30uUNA">
|
||||||
|
<bpmn2:documentation id="documentation_l9waIg" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_j4GDgg" sourceRef="event_30uUNA" targetRef="task_7Y3UUA">
|
||||||
|
<bpmn2:documentation id="documentation_4vaLww" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_A0FQoA" sourceRef="event_dJ89xQ" targetRef="task_xAzhzw">
|
||||||
|
<bpmn2:documentation id="documentation_fAB90Q" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:task id="task_fHgZBg" name="Archiviert">
|
||||||
|
<bpmn2:documentation id="documentation_Idessw"><![CDATA[Rechnungsprüfung abgeschlossen und Rechnung archiveirt.]]></bpmn2:documentation>
|
||||||
|
<bpmn2:incoming>sequenceFlow_A0FQoA</bpmn2:incoming>
|
||||||
|
<bpmn2:incoming>sequenceFlow_sUEtcA</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_iVpj0g</bpmn2:outgoing>
|
||||||
|
</bpmn2:task>
|
||||||
|
<bpmn2:intermediateCatchEvent id="event_YnFi7A" name="Bezahlt">
|
||||||
|
<bpmn2:documentation id="documentation_Jz0LKg"><![CDATA[Rechnungsbetrag wurde überwiesen]]></bpmn2:documentation>
|
||||||
|
<bpmn2:incoming>sequenceFlow_OfKNWA</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_sUEtcA</bpmn2:outgoing>
|
||||||
|
</bpmn2:intermediateCatchEvent>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_OfKNWA" sourceRef="task_xAzhzw" targetRef="event_YnFi7A">
|
||||||
|
<bpmn2:documentation id="documentation_DdJpCg" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_sUEtcA" sourceRef="event_YnFi7A" targetRef="task_fHgZBg">
|
||||||
|
<bpmn2:documentation id="documentation_uG0SGg" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_iVpj0g" sourceRef="task_fHgZBg" targetRef="event_oNXxgg">
|
||||||
|
<bpmn2:documentation id="documentation_Is0LqQ" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
</bpmn2:process>
|
||||||
|
|
||||||
|
</bpmn2:definitions>
|
||||||
11
BPMN-KI-Test/prompt2.txt
Normal file
11
BPMN-KI-Test/prompt2.txt
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
Wir haben einen Geschäftsprozess für die Eingangsrechnungsprüfung in einem Unternehmen.
|
||||||
|
|
||||||
|
Rechnungen werden importiert und dann zur "Rechnungsprüfung" geleitet. Dieser Zusstand ist in einem BPMN 2.0 Diagram als Task Element abgebildet.
|
||||||
|
Der Mitarbeiter hat nun über die beiden Aktionen "Sachrechnung" und "Cargorechnung" die Möglichkeit die Rechnung zu klassifizieren. Diese beiden Aktionen sind in einem
|
||||||
|
BPMN 2.0 Diagram als Event Elemente dargestellt. Das Event 'Sachrechnung' führt zum Status (Task) "Budgetprüfung" (die vom Sekretariat durchgeführt wird)
|
||||||
|
und das Event 'Cargorechnung' führt zum Status 'Prüfung Logistikauftrag' (die vom Fachbereich durchgeführt werden kann). In beiden Zuständen kann nun der Mitarbeiter die Rechnung
|
||||||
|
über das Event "Freigeben" zur Bezahlung freigeben (Task) oder mit "Ablehnen" zurück an die initiale "Rechnungsprüfung" zurücksenden. Nach der Bezahlung kann der Mitarbeiter
|
||||||
|
die Rechnung über die Aktion (Event) "Bezahlt" in den finalen Status (Task) 'Archiviert' senden.
|
||||||
|
In einem BPMN Diagram sind diese Verzweigungen bei den Entscheidungen mit Gateways dargestellt.
|
||||||
|
|
||||||
|
Erstelle für diesen Prozessablauf eine sehr kompakte Darstellungsform, die für ein KI Prompt Template geeignet ist.
|
||||||
389
BPMN-KI-Test/rechnung-ai-test.bpmn
Normal file
389
BPMN-KI-Test/rechnung-ai-test.bpmn
Normal file
|
|
@ -0,0 +1,389 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<bpmn2:definitions xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:open-bpmn="http://open-bpmn.org/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" exporter="org.openbpmn" exporterVersion="1.0.0" targetNamespace="http://open-bpmn.org" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL">
|
||||||
|
<bpmn2:collaboration id="collaboration_1" name="Default Collaboration">
|
||||||
|
<bpmn2:participant id="participant_TgW2JA" name="Default Process" processRef="process_1"/>
|
||||||
|
<bpmn2:participant id="participant_tgRhJQ" name="Rechnungseingang" processRef="process_lYaFpg">
|
||||||
|
<bpmn2:documentation id="documentation_wSfXcQ"><![CDATA[Dieser Workflow dient dazu eingehende Rechnungen zu prüfen und zur Bezahlung weiterzuleiten. Es wird unterschieden von Sachrechnungen, die vom Sekretariat bearbeitet werden können und Cargo-Rechnungen die durch die Logistikabteilung anhand von Logistikaufträgen geprüft werden.
|
||||||
|
Nachdem die Rechnung bezahlt wurde wird der Vorgang archiviert. ]]></bpmn2:documentation>
|
||||||
|
</bpmn2:participant>
|
||||||
|
</bpmn2:collaboration>
|
||||||
|
<bpmn2:extensionElements>
|
||||||
|
<open-bpmn:auto-align>true</open-bpmn:auto-align>
|
||||||
|
</bpmn2:extensionElements>
|
||||||
|
<bpmn2:process definitionalCollaborationRef="collaboration_1" id="process_1" name="Default Process" processType="Public">
|
||||||
|
<bpmn2:documentation id="documentation_wXazVg"/>
|
||||||
|
</bpmn2:process>
|
||||||
|
<bpmn2:process definitionalCollaborationRef="collaboration_1" id="process_lYaFpg" isExecutable="true" name="Rechnungseingang" processType="Private">
|
||||||
|
<bpmn2:laneSet id="laneset_fDygyw" name="Lane Set">
|
||||||
|
<bpmn2:lane id="lane_BgoDFg" name="Sekretariat">
|
||||||
|
<bpmn2:documentation id="documentation_hIztzA"/>
|
||||||
|
<bpmn2:flowNodeRef>task_7Y3UUA</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>event_bH7Wag</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>event_oNXxgg</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>event_GEqHhQ</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>event_VJXKGg</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>task_SP75zg</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>gateway_ASbu1A</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>gateway_Vyo0Zw</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>task_xAzhzw</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>event_YH3bnw</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>event_1qR49w</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>task_fHgZBg</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>event_YnFi7A</bpmn2:flowNodeRef>
|
||||||
|
</bpmn2:lane>
|
||||||
|
<bpmn2:lane id="lane_eMP9Xw" name="Fachbereich">
|
||||||
|
<bpmn2:documentation id="documentation_6ihnmQ"/>
|
||||||
|
<bpmn2:flowNodeRef>event_A1J0OA</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>task_5lS3mw</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>gateway_Hn5ZhQ</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>event_dJ89xQ</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>event_30uUNA</bpmn2:flowNodeRef>
|
||||||
|
</bpmn2:lane>
|
||||||
|
</bpmn2:laneSet>
|
||||||
|
<bpmn2:startEvent id="event_bH7Wag" name="Start">
|
||||||
|
<bpmn2:documentation id="documentation_pguolw"/>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_8yitUQ</bpmn2:outgoing>
|
||||||
|
</bpmn2:startEvent>
|
||||||
|
<bpmn2:task id="task_7Y3UUA" name="Rechnungsprüfung">
|
||||||
|
<bpmn2:documentation id="documentation_oKsT5Q"><![CDATA[Inhaltliche Prüufng der Rechnung]]></bpmn2:documentation>
|
||||||
|
<bpmn2:incoming>sequenceFlow_BGVbSA</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_FyAf3g</bpmn2:outgoing>
|
||||||
|
<bpmn2:incoming>sequenceFlow_hvQWmg</bpmn2:incoming>
|
||||||
|
<bpmn2:incoming>sequenceFlow_j4GDgg</bpmn2:incoming>
|
||||||
|
</bpmn2:task>
|
||||||
|
<bpmn2:endEvent id="event_oNXxgg" name="Ende">
|
||||||
|
<bpmn2:documentation id="documentation_1heF3g"/>
|
||||||
|
<bpmn2:incoming>sequenceFlow_iVpj0g</bpmn2:incoming>
|
||||||
|
</bpmn2:endEvent>
|
||||||
|
<bpmn2:intermediateCatchEvent id="event_GEqHhQ" name="Import">
|
||||||
|
<bpmn2:documentation id="documentation_gR2xbw"/>
|
||||||
|
<bpmn2:incoming>sequenceFlow_8yitUQ</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_BGVbSA</bpmn2:outgoing>
|
||||||
|
</bpmn2:intermediateCatchEvent>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_8yitUQ" sourceRef="event_bH7Wag" targetRef="event_GEqHhQ">
|
||||||
|
<bpmn2:documentation id="documentation_2Zd0Aw"/>
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_BGVbSA" sourceRef="event_GEqHhQ" targetRef="task_7Y3UUA">
|
||||||
|
<bpmn2:documentation id="documentation_6k088A"/>
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:intermediateCatchEvent id="event_VJXKGg" name="Sachrechnung">
|
||||||
|
<bpmn2:documentation id="documentation_DaDN3w"><![CDATA[Weiterleiten zur Sachprüfung]]></bpmn2:documentation>
|
||||||
|
<bpmn2:incoming>sequenceFlow_rZXh6g</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_sNlWkQ</bpmn2:outgoing>
|
||||||
|
</bpmn2:intermediateCatchEvent>
|
||||||
|
<bpmn2:task id="task_SP75zg" name="Budgetprüfung">
|
||||||
|
<bpmn2:documentation id="documentation_qP2Sew"/>
|
||||||
|
<bpmn2:incoming>sequenceFlow_sNlWkQ</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_nxZ9bA</bpmn2:outgoing>
|
||||||
|
</bpmn2:task>
|
||||||
|
<bpmn2:task id="task_5lS3mw" name="Prüfung Logistik Auftrag">
|
||||||
|
<bpmn2:documentation id="documentation_zweAkw"><![CDATA[Prüfung der Rechnung und Abgleich mit Logistikauftrag]]></bpmn2:documentation>
|
||||||
|
<bpmn2:incoming>sequenceFlow_DXGQrw</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_UebylQ</bpmn2:outgoing>
|
||||||
|
</bpmn2:task>
|
||||||
|
<bpmn2:eventBasedGateway gatewayDirection="Diverging" id="gateway_ASbu1A" name="">
|
||||||
|
<bpmn2:documentation id="documentation_09gukg"/>
|
||||||
|
<bpmn2:incoming>sequenceFlow_FyAf3g</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_rZXh6g</bpmn2:outgoing>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_i7cH2A</bpmn2:outgoing>
|
||||||
|
</bpmn2:eventBasedGateway>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_FyAf3g" sourceRef="task_7Y3UUA" targetRef="gateway_ASbu1A">
|
||||||
|
<bpmn2:documentation id="documentation_tv00MQ"/>
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_rZXh6g" sourceRef="gateway_ASbu1A" targetRef="event_VJXKGg">
|
||||||
|
<bpmn2:documentation id="documentation_EPAmhQ"/>
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_sNlWkQ" sourceRef="event_VJXKGg" targetRef="task_SP75zg">
|
||||||
|
<bpmn2:documentation id="documentation_iXrfpg"/>
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:intermediateCatchEvent id="event_A1J0OA" name="Cargo Rechnung">
|
||||||
|
<bpmn2:documentation id="documentation_RWi6LA"><![CDATA[Weiterleitung zur Prüfung Logistikauftrag]]></bpmn2:documentation>
|
||||||
|
<bpmn2:incoming>sequenceFlow_i7cH2A</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_DXGQrw</bpmn2:outgoing>
|
||||||
|
</bpmn2:intermediateCatchEvent>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_i7cH2A" sourceRef="gateway_ASbu1A" targetRef="event_A1J0OA">
|
||||||
|
<bpmn2:documentation id="documentation_pz6J4g"/>
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_DXGQrw" sourceRef="event_A1J0OA" targetRef="task_5lS3mw">
|
||||||
|
<bpmn2:documentation id="documentation_ngSLdQ"/>
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:exclusiveGateway gatewayDirection="Diverging" id="gateway_Vyo0Zw" name="">
|
||||||
|
<bpmn2:documentation id="documentation_Pm90XA"/>
|
||||||
|
<bpmn2:incoming>sequenceFlow_nxZ9bA</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_9tp42Q</bpmn2:outgoing>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_h4SfiQ</bpmn2:outgoing>
|
||||||
|
</bpmn2:exclusiveGateway>
|
||||||
|
<bpmn2:intermediateCatchEvent id="event_dJ89xQ" name="Freigabe">
|
||||||
|
<bpmn2:documentation id="documentation_sB06Ag"><![CDATA[Rechnung in Ordnung und freigegeben zur Bezahlung]]></bpmn2:documentation>
|
||||||
|
<bpmn2:incoming>sequenceFlow_PLk0RA</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_A0FQoA</bpmn2:outgoing>
|
||||||
|
</bpmn2:intermediateCatchEvent>
|
||||||
|
<bpmn2:exclusiveGateway gatewayDirection="Diverging" id="gateway_Hn5ZhQ" name="">
|
||||||
|
<bpmn2:documentation id="documentation_aLEQqQ"/>
|
||||||
|
<bpmn2:incoming>sequenceFlow_UebylQ</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_PLk0RA</bpmn2:outgoing>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_xVEjcA</bpmn2:outgoing>
|
||||||
|
</bpmn2:exclusiveGateway>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_UebylQ" sourceRef="task_5lS3mw" targetRef="gateway_Hn5ZhQ">
|
||||||
|
<bpmn2:documentation id="documentation_MZdr7Q"/>
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:task id="task_xAzhzw" name="Bezahlung">
|
||||||
|
<bpmn2:documentation id="documentation_zO3SRw"/>
|
||||||
|
<bpmn2:incoming>sequenceFlow_9OrwEg</bpmn2:incoming>
|
||||||
|
<bpmn2:incoming>sequenceFlow_A0FQoA</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_OfKNWA</bpmn2:outgoing>
|
||||||
|
</bpmn2:task>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_nxZ9bA" sourceRef="task_SP75zg" targetRef="gateway_Vyo0Zw">
|
||||||
|
<bpmn2:documentation id="documentation_G4qmmA"/>
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_PLk0RA" sourceRef="gateway_Hn5ZhQ" targetRef="event_dJ89xQ">
|
||||||
|
<bpmn2:documentation id="documentation_Y5qwSA"/>
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:intermediateCatchEvent id="event_YH3bnw" name="Freigeben">
|
||||||
|
<bpmn2:documentation id="documentation_C05Bhw"><![CDATA[Rechnung in Ordnung und freigegeben zur Bezahlung]]></bpmn2:documentation>
|
||||||
|
<bpmn2:incoming>sequenceFlow_9tp42Q</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_9OrwEg</bpmn2:outgoing>
|
||||||
|
</bpmn2:intermediateCatchEvent>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_9tp42Q" sourceRef="gateway_Vyo0Zw" targetRef="event_YH3bnw">
|
||||||
|
<bpmn2:documentation id="documentation_PIQaSg"/>
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_9OrwEg" sourceRef="event_YH3bnw" targetRef="task_xAzhzw">
|
||||||
|
<bpmn2:documentation id="documentation_0eagTw"/>
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:intermediateCatchEvent id="event_1qR49w" name="Ablehnen">
|
||||||
|
<bpmn2:documentation id="documentation_cdpcXA"/>
|
||||||
|
<bpmn2:incoming>sequenceFlow_h4SfiQ</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_hvQWmg</bpmn2:outgoing>
|
||||||
|
</bpmn2:intermediateCatchEvent>
|
||||||
|
<bpmn2:intermediateCatchEvent id="event_30uUNA" name="Ablehnen">
|
||||||
|
<bpmn2:documentation id="documentation_VazNUA"/>
|
||||||
|
<bpmn2:incoming>sequenceFlow_xVEjcA</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_j4GDgg</bpmn2:outgoing>
|
||||||
|
</bpmn2:intermediateCatchEvent>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_h4SfiQ" sourceRef="gateway_Vyo0Zw" targetRef="event_1qR49w">
|
||||||
|
<bpmn2:documentation id="documentation_Q2yPDw"/>
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_hvQWmg" sourceRef="event_1qR49w" targetRef="task_7Y3UUA">
|
||||||
|
<bpmn2:documentation id="documentation_qkneSw"/>
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_xVEjcA" sourceRef="gateway_Hn5ZhQ" targetRef="event_30uUNA">
|
||||||
|
<bpmn2:documentation id="documentation_l9waIg"/>
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_j4GDgg" sourceRef="event_30uUNA" targetRef="task_7Y3UUA">
|
||||||
|
<bpmn2:documentation id="documentation_4vaLww"/>
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_A0FQoA" sourceRef="event_dJ89xQ" targetRef="task_xAzhzw">
|
||||||
|
<bpmn2:documentation id="documentation_fAB90Q"/>
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:task id="task_fHgZBg" name="Archiviert">
|
||||||
|
<bpmn2:documentation id="documentation_Idessw"><![CDATA[Rechnungsprüfung abgeschlossen und Rechnung archiveirt.]]></bpmn2:documentation>
|
||||||
|
<bpmn2:incoming>sequenceFlow_A0FQoA</bpmn2:incoming>
|
||||||
|
<bpmn2:incoming>sequenceFlow_sUEtcA</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_iVpj0g</bpmn2:outgoing>
|
||||||
|
</bpmn2:task>
|
||||||
|
<bpmn2:intermediateCatchEvent id="event_YnFi7A" name="Bezahlt">
|
||||||
|
<bpmn2:documentation id="documentation_Jz0LKg"><![CDATA[Rechnungsbetrag wurde überwiesen]]></bpmn2:documentation>
|
||||||
|
<bpmn2:incoming>sequenceFlow_OfKNWA</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_sUEtcA</bpmn2:outgoing>
|
||||||
|
</bpmn2:intermediateCatchEvent>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_OfKNWA" sourceRef="task_xAzhzw" targetRef="event_YnFi7A">
|
||||||
|
<bpmn2:documentation id="documentation_DdJpCg"/>
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_sUEtcA" sourceRef="event_YnFi7A" targetRef="task_fHgZBg">
|
||||||
|
<bpmn2:documentation id="documentation_uG0SGg"/>
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_iVpj0g" sourceRef="task_fHgZBg" targetRef="event_oNXxgg">
|
||||||
|
<bpmn2:documentation id="documentation_Is0LqQ"/>
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
</bpmn2:process>
|
||||||
|
<bpmndi:BPMNDiagram id="BPMNDiagram_1" name="OpenBPMN Diagram">
|
||||||
|
<bpmndi:BPMNPlane bpmnElement="collaboration_1" id="BPMNPlane_1">
|
||||||
|
<bpmndi:BPMNShape bpmnElement="event_bH7Wag" id="BPMNShape_uh055A">
|
||||||
|
<dc:Bounds height="36.0" width="36.0" x="307.0" y="-233.0"/>
|
||||||
|
<bpmndi:BPMNLabel id="BPMNLabel_iQJHWQ">
|
||||||
|
<dc:Bounds height="20.0" width="100.0" x="275.0" y="-194.0"/>
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape bpmnElement="event_oNXxgg" id="BPMNShape_UInW7g">
|
||||||
|
<dc:Bounds height="36.0" width="36.0" x="1777.0" y="-233.0"/>
|
||||||
|
<bpmndi:BPMNLabel id="BPMNLabel_34qp2g">
|
||||||
|
<dc:Bounds height="20.0" width="100.0" x="1745.0" y="-194.0"/>
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape bpmnElement="task_7Y3UUA" id="BPMNShape_6O8H3A">
|
||||||
|
<dc:Bounds height="50.0" width="110.0" x="520.0" y="-240.0"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape bpmnElement="participant_tgRhJQ" id="BPMNShape_nrps0Q">
|
||||||
|
<dc:Bounds height="630.0" width="1650.0" x="230.0" y="-370.0"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape bpmnElement="lane_BgoDFg" id="BPMNShape_Lane_D1gWUg">
|
||||||
|
<dc:Bounds height="258.0" width="1620.0" x="260.0" y="-370.0"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape bpmnElement="lane_eMP9Xw" id="BPMNShape_Lane_j8rKkg">
|
||||||
|
<dc:Bounds height="372.0" width="1620.0" x="260.0" y="-112.0"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape bpmnElement="event_GEqHhQ" id="BPMNShape_NYeOlw">
|
||||||
|
<dc:Bounds height="36.0" width="36.0" x="397.0" y="-233.0"/>
|
||||||
|
<bpmndi:BPMNLabel id="BPMNLabel_u0gAdw">
|
||||||
|
<dc:Bounds height="20.0" width="100.0" x="365.0" y="-194.0"/>
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_8yitUQ" id="BPMNEdge_SKFqeQ" sourceElement="BPMNShape_uh055A" targetElement="BPMNShape_NYeOlw">
|
||||||
|
<di:waypoint x="343.0" y="-215.0"/>
|
||||||
|
<di:waypoint x="397.0" y="-215.0"/>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_BGVbSA" id="BPMNEdge_qcdmuA" sourceElement="BPMNShape_NYeOlw" targetElement="BPMNShape_6O8H3A">
|
||||||
|
<di:waypoint x="433.0" y="-215.0"/>
|
||||||
|
<di:waypoint x="520.0" y="-215.0"/>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNShape bpmnElement="event_VJXKGg" id="BPMNShape_QCvdOw">
|
||||||
|
<dc:Bounds height="36.0" width="36.0" x="797.0" y="-233.0"/>
|
||||||
|
<bpmndi:BPMNLabel id="BPMNLabel_6j9aVg">
|
||||||
|
<dc:Bounds height="20.0" width="100.0" x="765.0" y="-194.0"/>
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape bpmnElement="task_SP75zg" id="BPMNShape_dnAc8g">
|
||||||
|
<dc:Bounds height="50.0" width="110.0" x="930.0" y="-240.0"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape bpmnElement="task_5lS3mw" id="BPMNShape_VFDbeg">
|
||||||
|
<dc:Bounds height="50.0" width="110.0" x="920.0" y="0.0"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape bpmnElement="gateway_ASbu1A" id="BPMNShape_LIkiBA">
|
||||||
|
<dc:Bounds height="50.0" width="50.0" x="680.0" y="-240.0"/>
|
||||||
|
<bpmndi:BPMNLabel id="BPMNLabel_uZQpOQ">
|
||||||
|
<dc:Bounds height="20.0" width="100.0" x="655.0" y="-187.0"/>
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_FyAf3g" id="BPMNEdge_F0Y1Tw" sourceElement="BPMNShape_6O8H3A" targetElement="BPMNShape_LIkiBA">
|
||||||
|
<di:waypoint x="630.0" y="-215.0"/>
|
||||||
|
<di:waypoint x="680.0" y="-215.0"/>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_rZXh6g" id="BPMNEdge_luL2IA" sourceElement="BPMNShape_LIkiBA" targetElement="BPMNShape_QCvdOw">
|
||||||
|
<di:waypoint x="730.0" y="-215.0"/>
|
||||||
|
<di:waypoint x="797.0" y="-215.0"/>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_sNlWkQ" id="BPMNEdge_vB8usw" sourceElement="BPMNShape_QCvdOw" targetElement="BPMNShape_dnAc8g">
|
||||||
|
<di:waypoint x="833.0" y="-215.0"/>
|
||||||
|
<di:waypoint x="930.0" y="-215.0"/>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNShape bpmnElement="event_A1J0OA" id="BPMNShape_KJbgeQ">
|
||||||
|
<dc:Bounds height="36.0" width="36.0" x="787.0" y="7.0"/>
|
||||||
|
<bpmndi:BPMNLabel id="BPMNLabel_Rmen0A">
|
||||||
|
<dc:Bounds height="20.0" width="100.0" x="755.0" y="46.0"/>
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_i7cH2A" id="BPMNEdge_HBLd5A" sourceElement="BPMNShape_LIkiBA" targetElement="BPMNShape_KJbgeQ">
|
||||||
|
<di:waypoint x="703.0" y="-192.0"/>
|
||||||
|
<di:waypoint x="703.0" y="25.0"/>
|
||||||
|
<di:waypoint x="787.0" y="25.0"/>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_DXGQrw" id="BPMNEdge_s15wBA" sourceElement="BPMNShape_KJbgeQ" targetElement="BPMNShape_VFDbeg">
|
||||||
|
<di:waypoint x="823.0" y="25.0"/>
|
||||||
|
<di:waypoint x="920.0" y="25.0"/>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNShape bpmnElement="gateway_Vyo0Zw" id="BPMNShape_QihA6g">
|
||||||
|
<dc:Bounds height="50.0" width="50.0" x="1090.0" y="-240.0"/>
|
||||||
|
<bpmndi:BPMNLabel id="BPMNLabel_cyvcMA">
|
||||||
|
<dc:Bounds height="20.0" width="100.0" x="1065.0" y="-187.0"/>
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape bpmnElement="event_dJ89xQ" id="BPMNShape_4M1lNg">
|
||||||
|
<dc:Bounds height="36.0" width="36.0" x="1187.0" y="7.0"/>
|
||||||
|
<bpmndi:BPMNLabel id="BPMNLabel_gdYGpg">
|
||||||
|
<dc:Bounds height="20.0" width="100.0" x="1155.0" y="46.0"/>
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape bpmnElement="gateway_Hn5ZhQ" id="BPMNShape_mr0ibw">
|
||||||
|
<dc:Bounds height="50.0" width="50.0" x="1080.0" y="0.0"/>
|
||||||
|
<bpmndi:BPMNLabel id="BPMNLabel_5l4dRA">
|
||||||
|
<dc:Bounds height="20.0" width="100.0" x="1055.0" y="53.0"/>
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_UebylQ" id="BPMNEdge_U0wIKg" sourceElement="BPMNShape_VFDbeg" targetElement="BPMNShape_mr0ibw">
|
||||||
|
<di:waypoint x="1030.0" y="25.0"/>
|
||||||
|
<di:waypoint x="1080.0" y="25.0"/>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNShape bpmnElement="task_xAzhzw" id="BPMNShape_JrIJDQ">
|
||||||
|
<dc:Bounds height="50.0" width="110.0" x="1290.0" y="-240.0"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_nxZ9bA" id="BPMNEdge_KKXvFg" sourceElement="BPMNShape_dnAc8g" targetElement="BPMNShape_QihA6g">
|
||||||
|
<di:waypoint x="1040.0" y="-215.0"/>
|
||||||
|
<di:waypoint x="1090.0" y="-215.0"/>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_PLk0RA" id="BPMNEdge_8UEsHA" sourceElement="BPMNShape_mr0ibw" targetElement="BPMNShape_4M1lNg">
|
||||||
|
<di:waypoint x="1130.0" y="25.0"/>
|
||||||
|
<di:waypoint x="1187.0" y="25.0"/>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNShape bpmnElement="event_YH3bnw" id="BPMNShape_GUBmSg">
|
||||||
|
<dc:Bounds height="36.0" width="36.0" x="1197.0" y="-233.0"/>
|
||||||
|
<bpmndi:BPMNLabel id="BPMNLabel_c48Mng">
|
||||||
|
<dc:Bounds height="20.0" width="100.0" x="1165.0" y="-194.0"/>
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_9tp42Q" id="BPMNEdge_0AkLow" sourceElement="BPMNShape_QihA6g" targetElement="BPMNShape_GUBmSg">
|
||||||
|
<di:waypoint x="1140.0" y="-215.0"/>
|
||||||
|
<di:waypoint x="1197.0" y="-215.0"/>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_9OrwEg" id="BPMNEdge_eqL00Q" sourceElement="BPMNShape_GUBmSg" targetElement="BPMNShape_JrIJDQ">
|
||||||
|
<di:waypoint x="1233.0" y="-215.0"/>
|
||||||
|
<di:waypoint x="1290.0" y="-215.0"/>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNShape bpmnElement="event_1qR49w" id="BPMNShape_rbG2Zg">
|
||||||
|
<dc:Bounds height="36.0" width="36.0" x="1097.0" y="-333.0"/>
|
||||||
|
<bpmndi:BPMNLabel id="BPMNLabel_2qmYIA">
|
||||||
|
<dc:Bounds height="20.0" width="100.0" x="1065.0" y="-294.0"/>
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape bpmnElement="event_30uUNA" id="BPMNShape_xUycJQ">
|
||||||
|
<dc:Bounds height="36.0" width="36.0" x="1087.0" y="127.0"/>
|
||||||
|
<bpmndi:BPMNLabel id="BPMNLabel_40xf3g">
|
||||||
|
<dc:Bounds height="20.0" width="100.0" x="1055.0" y="166.0"/>
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_h4SfiQ" id="BPMNEdge_7m0QHg" sourceElement="BPMNShape_QihA6g" targetElement="BPMNShape_rbG2Zg">
|
||||||
|
<di:waypoint x="1115.0" y="-240.0"/>
|
||||||
|
<di:waypoint x="1115.0" y="-297.0"/>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_hvQWmg" id="BPMNEdge_xx0UyQ" sourceElement="BPMNShape_rbG2Zg" targetElement="BPMNShape_6O8H3A">
|
||||||
|
<di:waypoint x="1097.0" y="-315.0"/>
|
||||||
|
<di:waypoint x="575.0" y="-315.0"/>
|
||||||
|
<di:waypoint x="575.0" y="-240.0"/>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_xVEjcA" id="BPMNEdge_5276Pw" sourceElement="BPMNShape_mr0ibw" targetElement="BPMNShape_xUycJQ">
|
||||||
|
<di:waypoint x="1105.0" y="50.0"/>
|
||||||
|
<di:waypoint x="1105.0" y="127.0"/>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_j4GDgg" id="BPMNEdge_3xc00w" sourceElement="BPMNShape_xUycJQ" targetElement="BPMNShape_6O8H3A">
|
||||||
|
<di:waypoint x="1087.0" y="145.0"/>
|
||||||
|
<di:waypoint x="575.0" y="145.0"/>
|
||||||
|
<di:waypoint x="575.0" y="-190.0"/>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_A0FQoA" id="BPMNEdge_vgxzvQ" sourceElement="BPMNShape_4M1lNg" targetElement="BPMNShape_JrIJDQ">
|
||||||
|
<di:waypoint x="1223.0" y="25.0"/>
|
||||||
|
<di:waypoint x="1345.0" y="25.0"/>
|
||||||
|
<di:waypoint x="1345.0" y="-190.0"/>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNShape bpmnElement="task_fHgZBg" id="BPMNShape_79up9g">
|
||||||
|
<dc:Bounds height="50.0" width="110.0" x="1600.0" y="-240.0"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape bpmnElement="event_YnFi7A" id="BPMNShape_THdIqQ">
|
||||||
|
<dc:Bounds height="36.0" width="36.0" x="1457.0" y="-233.0"/>
|
||||||
|
<bpmndi:BPMNLabel id="BPMNLabel_P4dNKg">
|
||||||
|
<dc:Bounds height="20.0" width="100.0" x="1425.0" y="-194.0"/>
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_OfKNWA" id="BPMNEdge_p2wDpg" sourceElement="BPMNShape_JrIJDQ" targetElement="BPMNShape_THdIqQ">
|
||||||
|
<di:waypoint x="1400.0" y="-215.0"/>
|
||||||
|
<di:waypoint x="1457.0" y="-215.0"/>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_sUEtcA" id="BPMNEdge_lOlEPw" sourceElement="BPMNShape_THdIqQ" targetElement="BPMNShape_79up9g">
|
||||||
|
<di:waypoint x="1493.0" y="-215.0"/>
|
||||||
|
<di:waypoint x="1600.0" y="-215.0"/>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_iVpj0g" id="BPMNEdge_XmQNXg" sourceElement="BPMNShape_79up9g" targetElement="BPMNShape_UInW7g">
|
||||||
|
<di:waypoint x="1710.0" y="-215.0"/>
|
||||||
|
<di:waypoint x="1777.0" y="-215.0"/>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
</bpmndi:BPMNPlane>
|
||||||
|
</bpmndi:BPMNDiagram>
|
||||||
|
</bpmn2:definitions>
|
||||||
207
BPMN-KI-Test/rechnung-ai-test_plain.bpmn
Normal file
207
BPMN-KI-Test/rechnung-ai-test_plain.bpmn
Normal file
|
|
@ -0,0 +1,207 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<bpmn2:definitions xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
|
||||||
|
xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
|
||||||
|
xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:open-bpmn="http://open-bpmn.org/XMLSchema"
|
||||||
|
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
exporter="org.openbpmn" exporterVersion="1.0.0" targetNamespace="http://open-bpmn.org"
|
||||||
|
xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL">
|
||||||
|
<bpmn2:collaboration id="collaboration_1" name="Default Collaboration">
|
||||||
|
<bpmn2:participant id="participant_TgW2JA" name="Default Process" processRef="process_1" />
|
||||||
|
<bpmn2:participant id="participant_tgRhJQ" name="Rechnungseingang" processRef="process_lYaFpg">
|
||||||
|
<bpmn2:documentation id="documentation_wSfXcQ"><![CDATA[Dieser Workflow dient dazu eingehende Rechnungen zu prüfen und zur Bezahlung weiterzuleiten. Es wird unterschieden von Sachrechnungen, die vom Sekretariat bearbeitet werden können und Cargo-Rechnungen die durch die Logistikabteilung anhand von Logistikaufträgen geprüft werden.
|
||||||
|
Nachdem die Rechnung bezahlt wurde wird der Vorgang archiviert. ]]></bpmn2:documentation>
|
||||||
|
</bpmn2:participant>
|
||||||
|
</bpmn2:collaboration>
|
||||||
|
<bpmn2:extensionElements>
|
||||||
|
<open-bpmn:auto-align>true</open-bpmn:auto-align>
|
||||||
|
</bpmn2:extensionElements>
|
||||||
|
<bpmn2:process definitionalCollaborationRef="collaboration_1" id="process_1"
|
||||||
|
name="Default Process" processType="Public">
|
||||||
|
<bpmn2:documentation id="documentation_wXazVg" />
|
||||||
|
</bpmn2:process>
|
||||||
|
<bpmn2:process definitionalCollaborationRef="collaboration_1" id="process_lYaFpg"
|
||||||
|
isExecutable="true" name="Rechnungseingang" processType="Private">
|
||||||
|
<bpmn2:laneSet id="laneset_fDygyw" name="Lane Set">
|
||||||
|
<bpmn2:lane id="lane_BgoDFg" name="Sekretariat">
|
||||||
|
<bpmn2:documentation id="documentation_hIztzA" />
|
||||||
|
<bpmn2:flowNodeRef>task_7Y3UUA</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>event_bH7Wag</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>event_oNXxgg</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>event_GEqHhQ</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>event_VJXKGg</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>task_SP75zg</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>gateway_ASbu1A</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>gateway_Vyo0Zw</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>task_xAzhzw</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>event_YH3bnw</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>event_1qR49w</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>task_fHgZBg</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>event_YnFi7A</bpmn2:flowNodeRef>
|
||||||
|
</bpmn2:lane>
|
||||||
|
<bpmn2:lane id="lane_eMP9Xw" name="Fachbereich">
|
||||||
|
<bpmn2:documentation id="documentation_6ihnmQ" />
|
||||||
|
<bpmn2:flowNodeRef>event_A1J0OA</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>task_5lS3mw</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>gateway_Hn5ZhQ</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>event_dJ89xQ</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>event_30uUNA</bpmn2:flowNodeRef>
|
||||||
|
</bpmn2:lane>
|
||||||
|
</bpmn2:laneSet>
|
||||||
|
<bpmn2:startEvent id="event_bH7Wag" name="Start">
|
||||||
|
<bpmn2:documentation id="documentation_pguolw" />
|
||||||
|
<bpmn2:outgoing>sequenceFlow_8yitUQ</bpmn2:outgoing>
|
||||||
|
</bpmn2:startEvent>
|
||||||
|
<bpmn2:task id="task_7Y3UUA" name="Rechnungsprüfung">
|
||||||
|
<bpmn2:documentation id="documentation_oKsT5Q"><![CDATA[Inhaltliche Prüufng der Rechnung]]></bpmn2:documentation>
|
||||||
|
<bpmn2:incoming>sequenceFlow_BGVbSA</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_FyAf3g</bpmn2:outgoing>
|
||||||
|
<bpmn2:incoming>sequenceFlow_hvQWmg</bpmn2:incoming>
|
||||||
|
<bpmn2:incoming>sequenceFlow_j4GDgg</bpmn2:incoming>
|
||||||
|
</bpmn2:task>
|
||||||
|
<bpmn2:endEvent id="event_oNXxgg" name="Ende">
|
||||||
|
<bpmn2:documentation id="documentation_1heF3g" />
|
||||||
|
<bpmn2:incoming>sequenceFlow_iVpj0g</bpmn2:incoming>
|
||||||
|
</bpmn2:endEvent>
|
||||||
|
<bpmn2:intermediateCatchEvent id="event_GEqHhQ" name="Import">
|
||||||
|
<bpmn2:documentation id="documentation_gR2xbw" />
|
||||||
|
<bpmn2:incoming>sequenceFlow_8yitUQ</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_BGVbSA</bpmn2:outgoing>
|
||||||
|
</bpmn2:intermediateCatchEvent>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_8yitUQ" sourceRef="event_bH7Wag" targetRef="event_GEqHhQ">
|
||||||
|
<bpmn2:documentation id="documentation_2Zd0Aw" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_BGVbSA" sourceRef="event_GEqHhQ" targetRef="task_7Y3UUA">
|
||||||
|
<bpmn2:documentation id="documentation_6k088A" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:intermediateCatchEvent id="event_VJXKGg" name="Sachrechnung">
|
||||||
|
<bpmn2:documentation id="documentation_DaDN3w"><![CDATA[Weiterleiten zur Sachprüfung]]></bpmn2:documentation>
|
||||||
|
<bpmn2:incoming>sequenceFlow_rZXh6g</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_sNlWkQ</bpmn2:outgoing>
|
||||||
|
</bpmn2:intermediateCatchEvent>
|
||||||
|
<bpmn2:task id="task_SP75zg" name="Budgetprüfung">
|
||||||
|
<bpmn2:documentation id="documentation_qP2Sew" />
|
||||||
|
<bpmn2:incoming>sequenceFlow_sNlWkQ</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_nxZ9bA</bpmn2:outgoing>
|
||||||
|
</bpmn2:task>
|
||||||
|
<bpmn2:task id="task_5lS3mw" name="Prüfung Logistik Auftrag">
|
||||||
|
<bpmn2:documentation id="documentation_zweAkw"><![CDATA[Prüfung der Rechnung und Abgleich mit Logistikauftrag]]></bpmn2:documentation>
|
||||||
|
<bpmn2:incoming>sequenceFlow_DXGQrw</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_UebylQ</bpmn2:outgoing>
|
||||||
|
</bpmn2:task>
|
||||||
|
<bpmn2:eventBasedGateway gatewayDirection="Diverging" id="gateway_ASbu1A" name="">
|
||||||
|
<bpmn2:documentation id="documentation_09gukg" />
|
||||||
|
<bpmn2:incoming>sequenceFlow_FyAf3g</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_rZXh6g</bpmn2:outgoing>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_i7cH2A</bpmn2:outgoing>
|
||||||
|
</bpmn2:eventBasedGateway>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_FyAf3g" sourceRef="task_7Y3UUA" targetRef="gateway_ASbu1A">
|
||||||
|
<bpmn2:documentation id="documentation_tv00MQ" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_rZXh6g" sourceRef="gateway_ASbu1A" targetRef="event_VJXKGg">
|
||||||
|
<bpmn2:documentation id="documentation_EPAmhQ" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_sNlWkQ" sourceRef="event_VJXKGg" targetRef="task_SP75zg">
|
||||||
|
<bpmn2:documentation id="documentation_iXrfpg" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:intermediateCatchEvent id="event_A1J0OA" name="Cargo Rechnung">
|
||||||
|
<bpmn2:documentation id="documentation_RWi6LA"><![CDATA[Weiterleitung zur Prüfung Logistikauftrag]]></bpmn2:documentation>
|
||||||
|
<bpmn2:incoming>sequenceFlow_i7cH2A</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_DXGQrw</bpmn2:outgoing>
|
||||||
|
</bpmn2:intermediateCatchEvent>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_i7cH2A" sourceRef="gateway_ASbu1A" targetRef="event_A1J0OA">
|
||||||
|
<bpmn2:documentation id="documentation_pz6J4g" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_DXGQrw" sourceRef="event_A1J0OA" targetRef="task_5lS3mw">
|
||||||
|
<bpmn2:documentation id="documentation_ngSLdQ" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:exclusiveGateway gatewayDirection="Diverging" id="gateway_Vyo0Zw" name="">
|
||||||
|
<bpmn2:documentation id="documentation_Pm90XA" />
|
||||||
|
<bpmn2:incoming>sequenceFlow_nxZ9bA</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_9tp42Q</bpmn2:outgoing>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_h4SfiQ</bpmn2:outgoing>
|
||||||
|
</bpmn2:exclusiveGateway>
|
||||||
|
<bpmn2:intermediateCatchEvent id="event_dJ89xQ" name="Freigabe">
|
||||||
|
<bpmn2:documentation id="documentation_sB06Ag"><![CDATA[Rechnung in Ordnung und freigegeben zur Bezahlung]]></bpmn2:documentation>
|
||||||
|
<bpmn2:incoming>sequenceFlow_PLk0RA</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_A0FQoA</bpmn2:outgoing>
|
||||||
|
</bpmn2:intermediateCatchEvent>
|
||||||
|
<bpmn2:exclusiveGateway gatewayDirection="Diverging" id="gateway_Hn5ZhQ" name="">
|
||||||
|
<bpmn2:documentation id="documentation_aLEQqQ" />
|
||||||
|
<bpmn2:incoming>sequenceFlow_UebylQ</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_PLk0RA</bpmn2:outgoing>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_xVEjcA</bpmn2:outgoing>
|
||||||
|
</bpmn2:exclusiveGateway>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_UebylQ" sourceRef="task_5lS3mw" targetRef="gateway_Hn5ZhQ">
|
||||||
|
<bpmn2:documentation id="documentation_MZdr7Q" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:task id="task_xAzhzw" name="Bezahlung">
|
||||||
|
<bpmn2:documentation id="documentation_zO3SRw" />
|
||||||
|
<bpmn2:incoming>sequenceFlow_9OrwEg</bpmn2:incoming>
|
||||||
|
<bpmn2:incoming>sequenceFlow_A0FQoA</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_OfKNWA</bpmn2:outgoing>
|
||||||
|
</bpmn2:task>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_nxZ9bA" sourceRef="task_SP75zg" targetRef="gateway_Vyo0Zw">
|
||||||
|
<bpmn2:documentation id="documentation_G4qmmA" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_PLk0RA" sourceRef="gateway_Hn5ZhQ" targetRef="event_dJ89xQ">
|
||||||
|
<bpmn2:documentation id="documentation_Y5qwSA" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:intermediateCatchEvent id="event_YH3bnw" name="Freigeben">
|
||||||
|
<bpmn2:documentation id="documentation_C05Bhw"><![CDATA[Rechnung in Ordnung und freigegeben zur Bezahlung]]></bpmn2:documentation>
|
||||||
|
<bpmn2:incoming>sequenceFlow_9tp42Q</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_9OrwEg</bpmn2:outgoing>
|
||||||
|
</bpmn2:intermediateCatchEvent>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_9tp42Q" sourceRef="gateway_Vyo0Zw" targetRef="event_YH3bnw">
|
||||||
|
<bpmn2:documentation id="documentation_PIQaSg" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_9OrwEg" sourceRef="event_YH3bnw" targetRef="task_xAzhzw">
|
||||||
|
<bpmn2:documentation id="documentation_0eagTw" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:intermediateCatchEvent id="event_1qR49w" name="Ablehnen">
|
||||||
|
<bpmn2:documentation id="documentation_cdpcXA" />
|
||||||
|
<bpmn2:incoming>sequenceFlow_h4SfiQ</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_hvQWmg</bpmn2:outgoing>
|
||||||
|
</bpmn2:intermediateCatchEvent>
|
||||||
|
<bpmn2:intermediateCatchEvent id="event_30uUNA" name="Ablehnen">
|
||||||
|
<bpmn2:documentation id="documentation_VazNUA" />
|
||||||
|
<bpmn2:incoming>sequenceFlow_xVEjcA</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_j4GDgg</bpmn2:outgoing>
|
||||||
|
</bpmn2:intermediateCatchEvent>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_h4SfiQ" sourceRef="gateway_Vyo0Zw" targetRef="event_1qR49w">
|
||||||
|
<bpmn2:documentation id="documentation_Q2yPDw" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_hvQWmg" sourceRef="event_1qR49w" targetRef="task_7Y3UUA">
|
||||||
|
<bpmn2:documentation id="documentation_qkneSw" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_xVEjcA" sourceRef="gateway_Hn5ZhQ" targetRef="event_30uUNA">
|
||||||
|
<bpmn2:documentation id="documentation_l9waIg" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_j4GDgg" sourceRef="event_30uUNA" targetRef="task_7Y3UUA">
|
||||||
|
<bpmn2:documentation id="documentation_4vaLww" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_A0FQoA" sourceRef="event_dJ89xQ" targetRef="task_xAzhzw">
|
||||||
|
<bpmn2:documentation id="documentation_fAB90Q" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:task id="task_fHgZBg" name="Archiviert">
|
||||||
|
<bpmn2:documentation id="documentation_Idessw"><![CDATA[Rechnungsprüfung abgeschlossen und Rechnung archiveirt.]]></bpmn2:documentation>
|
||||||
|
<bpmn2:incoming>sequenceFlow_A0FQoA</bpmn2:incoming>
|
||||||
|
<bpmn2:incoming>sequenceFlow_sUEtcA</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_iVpj0g</bpmn2:outgoing>
|
||||||
|
</bpmn2:task>
|
||||||
|
<bpmn2:intermediateCatchEvent id="event_YnFi7A" name="Bezahlt">
|
||||||
|
<bpmn2:documentation id="documentation_Jz0LKg"><![CDATA[Rechnungsbetrag wurde überwiesen]]></bpmn2:documentation>
|
||||||
|
<bpmn2:incoming>sequenceFlow_OfKNWA</bpmn2:incoming>
|
||||||
|
<bpmn2:outgoing>sequenceFlow_sUEtcA</bpmn2:outgoing>
|
||||||
|
</bpmn2:intermediateCatchEvent>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_OfKNWA" sourceRef="task_xAzhzw" targetRef="event_YnFi7A">
|
||||||
|
<bpmn2:documentation id="documentation_DdJpCg" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_sUEtcA" sourceRef="event_YnFi7A" targetRef="task_fHgZBg">
|
||||||
|
<bpmn2:documentation id="documentation_uG0SGg" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
<bpmn2:sequenceFlow id="sequenceFlow_iVpj0g" sourceRef="task_fHgZBg" targetRef="event_oNXxgg">
|
||||||
|
<bpmn2:documentation id="documentation_Is0LqQ" />
|
||||||
|
</bpmn2:sequenceFlow>
|
||||||
|
</bpmn2:process>
|
||||||
|
|
||||||
|
</bpmn2:definitions>
|
||||||
17
BPMN-KI-Test/schema-1.txt
Normal file
17
BPMN-KI-Test/schema-1.txt
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
Prozess: Eingangsrechnungsprüfung
|
||||||
|
|
||||||
|
START -> [Task] Rechnungsprüfung
|
||||||
|
|
|
||||||
|
|-- [Event] Sachrechnung --> [Task] Budgetprüfung (Sekretariat)
|
||||||
|
| |
|
||||||
|
| |-- [Event] Freigeben --> [Task] Bezahlung
|
||||||
|
| |-- [Event] Ablehnen --> [Task] Rechnungsprüfung
|
||||||
|
|
|
||||||
|
|-- [Event] Cargorechnung --> [Task] Prüfung Logistikauftrag (Fachbereich)
|
||||||
|
|
|
||||||
|
|-- [Event] Freigeben --> [Task] Bezahlung
|
||||||
|
|-- [Event] Ablehnen --> [Task] Rechnungsprüfung
|
||||||
|
|
||||||
|
[Task] Bezahlung
|
||||||
|
|
|
||||||
|
|-- [Event] Bezahlt --> [Task] Archiviert (ENDE)
|
||||||
46
BPMN-KI-Test/schema-2.txt
Normal file
46
BPMN-KI-Test/schema-2.txt
Normal file
|
|
@ -0,0 +1,46 @@
|
||||||
|
prozess: Eingangsrechnungsprüfung
|
||||||
|
start_event: Rechnung importiert
|
||||||
|
tasks:
|
||||||
|
- name: Rechnungsprüfung
|
||||||
|
type: user_task
|
||||||
|
gateway:
|
||||||
|
name: Klassifikation
|
||||||
|
type: exclusive
|
||||||
|
paths:
|
||||||
|
- event: Sachrechnung
|
||||||
|
next_task: Budgetprüfung
|
||||||
|
role: Sekretariat
|
||||||
|
- event: Cargorechnung
|
||||||
|
next_task: Prüfung Logistikauftrag
|
||||||
|
role: Fachbereich
|
||||||
|
|
||||||
|
- name: Budgetprüfung
|
||||||
|
type: user_task
|
||||||
|
gateway:
|
||||||
|
name: Entscheidung
|
||||||
|
type: exclusive
|
||||||
|
paths:
|
||||||
|
- event: Freigeben
|
||||||
|
next_task: Bezahlung
|
||||||
|
- event: Ablehnen
|
||||||
|
next_task: Rechnungsprüfung
|
||||||
|
|
||||||
|
- name: Prüfung Logistikauftrag
|
||||||
|
type: user_task
|
||||||
|
gateway:
|
||||||
|
name: Entscheidung
|
||||||
|
type: exclusive
|
||||||
|
paths:
|
||||||
|
- event: Freigeben
|
||||||
|
next_task: Bezahlung
|
||||||
|
- event: Ablehnen
|
||||||
|
next_task: Rechnungsprüfung
|
||||||
|
|
||||||
|
- name: Bezahlung
|
||||||
|
type: service_task
|
||||||
|
event:
|
||||||
|
name: Bezahlt
|
||||||
|
next_task: Archiviert
|
||||||
|
|
||||||
|
- name: Archiviert
|
||||||
|
type: end_event
|
||||||
77
CARGOSOFT.md
Normal file
77
CARGOSOFT.md
Normal file
|
|
@ -0,0 +1,77 @@
|
||||||
|
|
||||||
|
# Cargosoft
|
||||||
|
|
||||||
|
Wir haben eine Schnittstelle zu Cargosoft. Diese macht folgende Dinge:
|
||||||
|
|
||||||
|
- Importieren von Kreditoren und Debitoren Stammdaten
|
||||||
|
- Exportieren von Belegdaten + Belegbild von Imixs nach Cargosoft
|
||||||
|
- Importieren von Ausgangsrechnungen über eine DATEV Schnittstelle
|
||||||
|
- Exportieren von Saldenlisten aus Ausgangslisten
|
||||||
|
|
||||||
|
|
||||||
|
## FTP
|
||||||
|
|
||||||
|
Wir habne einen eigenen FTP Server von Imixs in den alle Import und Export Files abgelegt werden.
|
||||||
|
|
||||||
|
|
||||||
|
## Importieren von Kreditoren und Debitoren Stammdaten
|
||||||
|
|
||||||
|
Wir importieren eine CSV Datei von Kreditoren mit dem namen `Vendors.csv` aus dem Verzeichnis `/cargosoft/stammdaten`.
|
||||||
|
Für den Import verwenden wir den Standard CSV Import Service aus dem [Imixs-Archive Importer Projekt](https://github.com/imixs/imixs-archive/tree/master/imixs-archive-importer).
|
||||||
|
|
||||||
|
Die Datei wird von Cargosoft einmal Täglich bereitgestellt und befindet sich auf unserem FTP Sever unter:
|
||||||
|
|
||||||
|
/office-alexander-logistics/cargosoft/fromCargosoft/stammdaten/Vendors.csv
|
||||||
|
|
||||||
|
Das Schlüsselfeld ist `VENDOR_NUM`. Zusätzlich indizieren wir das feld `VENDOR_NAME`. So kann man über die Lucene SUche sowohl nach dem namen oder der Nummer suchen.
|
||||||
|
|
||||||
|
In der Erfassungsmaske haben wir dann eine JavaScript Implementierung mit Ajax die bei Eingabe in das Feld *cdtr.number* Vorschläge aus den importieren Kreditoren macht. Das ist ähnlich implementiert wie die Imixs-ML Suggest LIste
|
||||||
|
|
||||||
|
|
||||||
|
## Exportieren von Belegdaten + Belegbild von Imixs nach Cargosoft
|
||||||
|
|
||||||
|
Für den Export wird im Rechnungseingangs-Workflow einen Adapter der nach Freigabe ein child Workitem erzeugt.
|
||||||
|
Die Cargosoft Export Schnittstelle besteht aus einem eigenen BPMN modell "cargosoft-export-1.0.0". In diesem wird der CargoosftExportAdapter getriggert, der diese Daten einer EingansRechnung an den FTP Server übermittelt.
|
||||||
|
|
||||||
|
Cargosoft prüft alle 10 Sekunden ob sich Dateien mit der Dateiendung ".xml" auf dem FTP befinden und holt diese ab.
|
||||||
|
|
||||||
|
Die Konfiguration der FTP Schnittstelle erfolgt über den Konfigurationsdialog im Office-Workflow mit den folgenden Werten:
|
||||||
|
|
||||||
|
cargosoft.export.ftp.host=u248962.your-storagebox.de
|
||||||
|
cargosoft.export.ftp.path=/
|
||||||
|
cargosoft.export.ftp.user=u248962-sub2
|
||||||
|
cargosoft.export.ftp.password=aXa61n9Un3jDNQlL
|
||||||
|
|
||||||
|
Die Belege wandern in das Root Verzeichnis. Die Firma Cargosft legt dann noch ein /logs/ Vereichnis an in den sie ab und zu Logdaten einspielen
|
||||||
|
|
||||||
|
### Bei Problemen
|
||||||
|
|
||||||
|
Manchamal holt Cargosoft die Daten zwar ab importiert diese aber aus irgend einem Grund nicht in Cargosft. Frau Mahner kann dann die Buchung nicht finde. Wir haben deshalb einen Workflow Button "Cargosoft Export Wiederholen" gebaut mit dem man den Export nochmal anstoßen kann.
|
||||||
|
|
||||||
|
|
||||||
|
## Importieren von Ausgangsrechnungen über eine DATEV Schnittstelle
|
||||||
|
|
||||||
|
Wir können Ausgangsrechnungen aus Cargosoft in Imixs über einen DATEV Import importieren.
|
||||||
|
Dazu haben wir einen eigenen Import Workflow gemacht "DATEV Import", welchen Frau Mahner manuell anstößt. Dabei wird eine CSV/DATEV Buchungstapel Datei importiert. Es muss sich um ein offizielles DATEV Import Format handeln mit dem Header 'Buchungsstapel' (Zelle D1).
|
||||||
|
Der Import nutzt dann den Adapter `com.alexanderlogistics.datev.DatevCargosoftImportAdapter` um einen Rechnungsausgangs-Workflow in Imixs zu starten.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Exportieren von Saldenlisten aus Ausgangslisten
|
||||||
|
|
||||||
|
Weil wir Ausgangsrechnungen und Zahlungseingänge mit Workflow Verwalten (Mahnwesen genannt) können wir sogenannte Saldenlisten erzeugen.
|
||||||
|
Dabei handelt es sich ein CARGOSOFT spezifisches CSV File in dem alle Rechnungen enthalten sind bei denen noch offene Beträge sind. Cargosoft weis selbst wie man auf den Saldo kommt.
|
||||||
|
|
||||||
|
Der Export erfolgt scheduled auf unseren FTP Server (u248962-sub2) in das Verzeichnis:
|
||||||
|
|
||||||
|
/cargosoft/opliste-prod (Produktivumgebung)
|
||||||
|
/cargosoft/opliste-test (Testumgebung
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
FROM imixs/imixs-office-workflow:latest
|
FROM imixs/imixs-office-workflow:5.1.5-wildfly-29.0.1.Final-jdk17
|
||||||
#FROM imixs/imixs-office-workflow:4.5.1
|
|
||||||
#FROM imixs/imixs-office-workflow:4.4.0
|
|
||||||
|
|
||||||
# Deploy artefact
|
# Deploy artefact
|
||||||
RUN rm -r /opt/jboss/wildfly/standalone/deployments/*
|
RUN rm -r /opt/jboss/wildfly/standalone/deployments/*
|
||||||
COPY ./*-app/target/*.war /opt/jboss/wildfly/standalone/deployments/
|
# Deploy artefact
|
||||||
|
COPY ./target/*.war /opt/jboss/wildfly/standalone/deployments/
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,8 @@
|
||||||
FROM imixs/imixs-office-workflow:latest
|
FROM imixs/imixs-office-workflow:5.1.5-wildfly-29.0.1.Final-jdk17
|
||||||
#FROM imixs/imixs-office-workflow:4.4.0
|
|
||||||
|
|
||||||
# Deploy artefact
|
# Deploy artefact
|
||||||
RUN rm -r /opt/jboss/wildfly/standalone/deployments/*
|
RUN rm -r /opt/jboss/wildfly/standalone/deployments/*
|
||||||
COPY ./*-app/target/*.war /opt/jboss/wildfly/standalone/deployments/
|
COPY ./target/*.war /opt/jboss/wildfly/standalone/deployments/
|
||||||
|
|
||||||
# Run in Debug Mode
|
# Run in Debug Mode
|
||||||
CMD ["/opt/jboss/wildfly/bin/standalone.sh", "-b", "0.0.0.0", "-bmanagement", "0.0.0.0", "--debug", "*:8787"]
|
CMD ["/opt/jboss/wildfly/bin/standalone.sh", "-b", "0.0.0.0", "-bmanagement", "0.0.0.0", "--debug", "*:8787"]
|
||||||
|
|
|
||||||
87
MEMORY.md
Normal file
87
MEMORY.md
Normal file
|
|
@ -0,0 +1,87 @@
|
||||||
|
# Wildfly HTTP Seesions
|
||||||
|
|
||||||
|
See articles:
|
||||||
|
|
||||||
|
- https://www.mastertheboss.com/jbossas/jboss-cluster/jboss-monitoring-http-session-replication/
|
||||||
|
- https://blog.arkey.fr/2020/10/27/maxrampercentage-is-not-what-i-wished-for/
|
||||||
|
- https://techdocs.broadcom.com/us/en/symantec-security-software/identity-security/identity-manager/14-4/reference/performance-tuning/performance-tuning-for-jboss-or-wildfly.html
|
||||||
|
|
||||||
|
# Collect metrics
|
||||||
|
|
||||||
|
Use curl:
|
||||||
|
|
||||||
|
```
|
||||||
|
curl -s http://localhost:9990/metrics
|
||||||
|
```
|
||||||
|
|
||||||
|
wildfly_undertow_active_sessions{deployment="office-alexander-logistics.war",subdeployment="office-alexander-logistics.war",microprofile_scope="vendor"} 184.0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Check all active Sessions:
|
||||||
|
|
||||||
|
```
|
||||||
|
curl -s http://localhost:9990/metrics | grep -e "^wildfly_undertow_.*_sessions"
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Neue Memory Options:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- name: JAVA_OPTS
|
||||||
|
value: >
|
||||||
|
-Xms5g
|
||||||
|
-Xmx7g
|
||||||
|
-XX:+UseG1GC
|
||||||
|
-XX:MaxGCPauseMillis=200
|
||||||
|
-XX:G1HeapRegionSize=16m
|
||||||
|
-XX:InitiatingHeapOccupancyPercent=45
|
||||||
|
-XX:+HeapDumpOnOutOfMemoryError
|
||||||
|
-XX:HeapDumpPath=/tmp/heapdump
|
||||||
|
-Dnashorn.args=--no-deprecation-warning
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Memory Analyse
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
curl -s http://localhost:9990/metrics | grep -e "^wildfly_undertow_.*_sessions"
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
| Zeit | Mem | Sessions |
|
||||||
|
|-----------|:---------:|:---------:|
|
||||||
|
| Mo 18:22 | 3947 | 31 |
|
||||||
|
| Mo 18:34 | 3951 | 42 |
|
||||||
|
| Mo 18:39 | 3955 | 48 |
|
||||||
|
| Mo 18:39 | 3957 | 59 |
|
||||||
|
| Mo 18:54 | 3983 | 62 |
|
||||||
|
| Mo 18:54 | 4024 | 66 |
|
||||||
|
| Mo 19:14 | 4040 | 66 |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Debug
|
||||||
|
|
||||||
|
Test Heap size:
|
||||||
|
|
||||||
|
$ curl -s http://localhost:9990/metrics | grep base_memory_usedHeap_bytes
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# HELP base_memory_usedHeap_bytes Displays the amount of used memory.
|
||||||
|
# TYPE base_memory_usedHeap_bytes gauge
|
||||||
|
base_memory_usedHeap_bytes 1.605052856E9
|
||||||
|
base_memory_usedHeap_bytes 3.031116216E9
|
||||||
|
base_memory_usedHeap_bytes 1.910524016E9
|
||||||
|
base_memory_usedHeap_bytes 1.291952224E9
|
||||||
80
README.md
80
README.md
|
|
@ -5,6 +5,16 @@
|
||||||
https://archive.alexander-logistics.office-workflow.de
|
https://archive.alexander-logistics.office-workflow.de
|
||||||
|
|
||||||
|
|
||||||
|
## Development
|
||||||
|
|
||||||
|
Test Umgebung starten:
|
||||||
|
|
||||||
|
./devi start
|
||||||
|
|
||||||
|
Mailpasswort für locales mailing setzen:
|
||||||
|
|
||||||
|
export MAILPASSWORD=xxxxxxxxxxxxxx
|
||||||
|
|
||||||
|
|
||||||
## FTP Storage
|
## FTP Storage
|
||||||
|
|
||||||
|
|
@ -16,6 +26,10 @@ Wir haben bei Hetzenr eine Storage Box um via FTP Daten mit den Office Scannern
|
||||||
|
|
||||||
Wir haben dann zwei Subaccounts für die Office Scanner und Cargosoft
|
Wir haben dann zwei Subaccounts für die Office Scanner und Cargosoft
|
||||||
|
|
||||||
|
|
||||||
|
**Für die Systeme BHV und PL stehen die connect Daten im entsprechenden Tikal Projekt Ordner**
|
||||||
|
|
||||||
|
|
||||||
### Office Scanner
|
### Office Scanner
|
||||||
|
|
||||||
Hier haben wir einen subacount auf folgendes Verzeichnis eingerichtet:
|
Hier haben wir einen subacount auf folgendes Verzeichnis eingerichtet:
|
||||||
|
|
@ -27,16 +41,17 @@ Die Zugangsdaten lauten:
|
||||||
Benutzername: u248962-sub1
|
Benutzername: u248962-sub1
|
||||||
Passwort: zspAWxj4o34Bh1q3
|
Passwort: zspAWxj4o34Bh1q3
|
||||||
|
|
||||||
|
**Für die Systeme BHV und PL stehen die connect Daten im entsprechenden Tikal Projekt Ordner**
|
||||||
|
|
||||||
### Cargosoft Schnittstelle
|
|
||||||
|
|
||||||
F<EFBFBD>r cargosoft verwenden wir einen Subaccoutn der auf das Verzeichns:
|
|
||||||
|
|
||||||
|
## Cargosoft Schnittstelle
|
||||||
|
|
||||||
|
Für cargosoft verwenden wir FTP basierte Schnittstelle um Dateien zu importieren und zu exportieren. [Siehe hier](./doc/CARGOSOFT.md)
|
||||||
|
|
||||||
|
FTP Zugang
|
||||||
|
|
||||||
/office-alexander-logistics/cargosoft
|
/office-alexander-logistics/cargosoft
|
||||||
|
|
||||||
zeigt.
|
|
||||||
|
|
||||||
Benutzername: u248962-sub2
|
Benutzername: u248962-sub2
|
||||||
Passwort: aXa61n9Un3jDNQlL
|
Passwort: aXa61n9Un3jDNQlL
|
||||||
|
|
||||||
|
|
@ -50,47 +65,42 @@ Es gibt ein Email Konto das wir für den Import von Rechnungen nutzen
|
||||||
|
|
||||||
E-Mail: imixs@alexander-logistics.com
|
E-Mail: imixs@alexander-logistics.com
|
||||||
Passwort: i^i$oe-!+o1o0io(
|
Passwort: i^i$oe-!+o1o0io(
|
||||||
IMAP4 Outlook.office365.com 993 SSL/TLS
|
IMAP4 Outlook.office365.com 993 SSL/TLS
|
||||||
SMTP Smtp.office365.com 587 STARTTLS
|
SMTP Smtp.office365.com 587 STARTTLS
|
||||||
|
|
||||||
|
|
||||||
|
** Umstellung Outlook via OAuth **
|
||||||
|
|
||||||
|
passwort=0lG8Q~UigK0f7n-cR8SSiSXhVChkBD3Qm1CqvbID
|
||||||
|
server name ist egal
|
||||||
|
|
||||||
|
Additional Options:
|
||||||
|
|
||||||
|
imap.authenticator=org.imixs.archive.importer.mail.IMAPBasicAuthenticator
|
||||||
|
microsoft.tenantid=51e2f038-0a96-41be-801d-bb4118aa018e
|
||||||
|
microsoft.clientid=39e9eec5-6939-47dc-9729-3438a9898e63
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Outlook Alt
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
server=outlook.office365.com
|
||||||
|
port=993
|
||||||
|
user=imixs@alexander-logistics.com
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Build
|
## Build
|
||||||
|
|
||||||
$ mvn clean install -Pdocker
|
$ mvn clean install -Pdocker
|
||||||
|
|
||||||
### Push to Ixchel Cloud
|
### Push to Tikal Cloud
|
||||||
|
|
||||||
$ mvn clean install -Pkubernetes
|
$ mvn clean install -Pkubernetes
|
||||||
|
|
||||||
|
|
||||||
# Cargosoft
|
|
||||||
|
|
||||||
Die Cargosoft Schnittstelle besteht aus einem eigenen BPMN modell "cargosoft-export-1.0.0". In diesem wird der CargoosftExportAdapter getriggert, der die Daten einer Rechnung an den FTP Server übermittelt.
|
|
||||||
|
|
||||||
Cargosoft prüft alle 10 Sekunden ob sich Dateien mit der Dateiendung ".xml" auf dem FTP befinden und holt diese ab.
|
|
||||||
|
|
||||||
Die Konfiguration der FTP Schnittstelle erfolgt über den Konfigurationsdialog im Office-Workflow mit den folgenden Werten:
|
|
||||||
|
|
||||||
cargosoft.export.ftp.host=u248962.your-storagebox.de
|
|
||||||
cargosoft.export.ftp.path=/
|
|
||||||
cargosoft.export.ftp.user=u248962-sub2
|
|
||||||
cargosoft.export.ftp.password=aXa61n9Un3jDNQlL
|
|
||||||
|
|
||||||
|
|
||||||
## Cargosoft Kreditoren
|
|
||||||
|
|
||||||
Wir importieren auch eine CSV Datei von Kreditoren mit dem namen *Vendors.csv*. Für den Import verwenden wir den Standard CSV Import Service aus dem [Imixs-Archive Importer Projekt](https://github.com/imixs/imixs-archive/tree/master/imixs-archive-importer).
|
|
||||||
|
|
||||||
Die Datei wird von Cargosoft einmal Täglich bereitgestellt und befindet sich auf dem FTP Sever unter:
|
|
||||||
|
|
||||||
/office-alexander-logistics/cargosoft/fromCargosoft/stammdaten/Vendors.csv
|
|
||||||
|
|
||||||
Das Schlüsselfeld ist *_VENDOR_NUM*. Zusätzlich indizieren wir das feld *_VENDOR_NAME*. So kann man über die Lucene SUche sowohl nach dem namen oder der Nummer suchen.
|
|
||||||
|
|
||||||
In der Erfassungsmaske haben wir dann eine JavaScript Implementierung mit Ajax die bei Eingabe in das Feld *cdtr.number* Vorschläge aus den importieren Kreditoren macht. Das ist ähnlich implementiert wie die Imixs-ML Suggest LIste
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Imixs-ML
|
# Imixs-ML
|
||||||
|
|
||||||
|
|
|
||||||
241
RELEASENOTES.md
241
RELEASENOTES.md
|
|
@ -1,7 +1,240 @@
|
||||||
# Versionen
|
# Versionen
|
||||||
|
|
||||||
### 1.1.1
|
## 1.4.0 (Development)
|
||||||
|
|
||||||
- Cargosoft Splitbuchungen - Es können zu einer Rechnung mehrere Cargosoft Exporte erzeugt werden. Die Sub Rechnungsnummern stehen im Feld numsequencenumber_sub
|
- neuer AGLAIInvoiceAdapter
|
||||||
- Neue Modellversion rechnungseingnag-de-1.2.0 und posteingang-de-1.0.4
|
der Adapter `com.alexanderlogistics.AGLAIInvoiceAdapter` muss künftig in das Import Event der Rechnungseingangs Modelle. Dieser Adapter Findet den Space und den Mandanten.
|
||||||
- Das Modell rechnungseingnag-de-1.1.3 kann nach einigen Wochen entfernt werden
|
|
||||||
|
Neue Modelle:
|
||||||
|
|
||||||
|
- Posteingang
|
||||||
|
- posteingang-de-3.0
|
||||||
|
- AMS
|
||||||
|
- rechnungseingang-ams-1.1.0.bpmn
|
||||||
|
|
||||||
|
## 1.3.6 (Development)
|
||||||
|
|
||||||
|
**KSeF Produktiname II.**
|
||||||
|
|
||||||
|
Neues ksef.xml als Template einspielen
|
||||||
|
Neue version deployen.
|
||||||
|
|
||||||
|
**KSeF Produktiname I.**
|
||||||
|
|
||||||
|
Wir bekommen von Majcie einen neuen Prod - Token für KSeF. Dieser muss in das Kubernetes Deployment file eintegragen werden. Auch der Enpunkt muss geändert werden!
|
||||||
|
|
||||||
|
- name: KSEF_API_NIP
|
||||||
|
value: "9552521552"
|
||||||
|
- name: KSEF_API_TOKEN
|
||||||
|
value: "2025??????????????????2|nip-9552521552|f?????????????????????????????????????????"
|
||||||
|
- name: KSEF_API_ENDPOINT
|
||||||
|
value: "https://api.ksef.mf.gov.pl/v2"
|
||||||
|
|
||||||
|
Im Worklfow Modell 'rechnungsausgang' muss das das Partner Mail im Schritt 4200.10 aktiviert werden.
|
||||||
|
jhendzel@alexander-logistics.com in CC
|
||||||
|
ralph.soika@imixs.com in BCC
|
||||||
|
Derzeit fehlen meistens die Mailadressen so dass vermutlich häufig keine Mails rausgehen.
|
||||||
|
Im Dokument Import 'CARGOSOFT_INVOCIE_XML' muss die Task ID von 5001 auf 4000 geändert werden!!
|
||||||
|
|
||||||
|
## 1.3.5
|
||||||
|
|
||||||
|
- Verbesserter Cargosoft Export (Eingangsrechnungen)
|
||||||
|
- Polen KSeF Schnittstelle
|
||||||
|
- E-Rechnungs Adapter
|
||||||
|
|
||||||
|
## 1.3.4
|
||||||
|
|
||||||
|
- Finalisierung Business Partner Interface
|
||||||
|
|- Neue Plugin Logik (Aktualisierung der BP Nummer und Aktivierung von BP Objekten falls diese archiviert waren)
|
||||||
|
- Zoho Schnittstelle
|
||||||
|
- Neues DataView und DataGroups Konzept implementiert
|
||||||
|
|
||||||
|
### Migration
|
||||||
|
|
||||||
|
- Encoding für CSV Import aus cargosoft muss auf `encoding=UTF-8` stehen!
|
||||||
|
- Neues Businesspartner BPMN Modell einspielen
|
||||||
|
- Lucene Index neu berechnene wegen 'partner.id'
|
||||||
|
|
||||||
|
#### Daten Synchronisation BUsiness Parnter
|
||||||
|
|
||||||
|
- Erstmal nach Dubletten suchen:
|
||||||
|
- https://alexander-logistics-xxx.office-workflow.de/api/cargosoft/remove-dubletten?maxcount=5000
|
||||||
|
ACHTUNG kann sehr lange laufen (1 Stunde)
|
||||||
|
|
||||||
|
- Jetzt die Daten syncen
|
||||||
|
https://alexander-logistics-xxx.office-workflow.de/api/cargosoft/bp-sync?maxcount=25000
|
||||||
|
ACHTUNG kann sehr sehr sehr!! lange laufen (3 Stunde)
|
||||||
|
kann aber auch dann mehrfach aufgerufen werden so dass sich das alles zum guten wendet
|
||||||
|
|
||||||
|
#### Modelle Anpassen
|
||||||
|
|
||||||
|
in verschiedenen müssen die alten form parts `alexander/cdtreingabe` und `alexander/dbtreingabe` mit dem neuen `alexander/businesspartner_search` ausgetauscht werden.
|
||||||
|
Der `BusinessPartnerController` bzw. das `InvoicePlugin` bzw. `InvoiceOutgoingPlugin` kümmert sich automatisch um die Migration
|
||||||
|
|
||||||
|
Betroffen sind:
|
||||||
|
|
||||||
|
- rechnungseingang-\*
|
||||||
|
- rechnugnseingang-sachrechnung\*
|
||||||
|
- rechnungsausgang-\*
|
||||||
|
- zahlungseingang-\*
|
||||||
|
- Analyse-debitor-\*
|
||||||
|
|
||||||
|
Mahnlauf
|
||||||
|
|
||||||
|
- dieser müsste so modelliert werden wie `rechnungsausgang-dwc-1.0.3` zu sehen ist!!!!!!
|
||||||
|
|
||||||
|
## 1.3.3
|
||||||
|
|
||||||
|
- Imixs-Archive 3.1.1. Compactor Service
|
||||||
|
|
||||||
|
Migration:
|
||||||
|
|
||||||
|
set ARCHIVE_SNAPSHOT_GRACE_PERIOD= 5
|
||||||
|
set ARCHIVE_SNAPSHOT_COMPACTOR= enabled
|
||||||
|
|
||||||
|
## 1.3.2
|
||||||
|
|
||||||
|
- Posteingang Worklfow - timeout logic
|
||||||
|
- added lucene client to docker image
|
||||||
|
- added optional oidc profile
|
||||||
|
|
||||||
|
## 1.3.1
|
||||||
|
|
||||||
|
- Imixs-Office-Workflow 5.0.4
|
||||||
|
- Mulit Currecy Feature für Ausgangsrechnungen
|
||||||
|
- Neue Analyse Boards
|
||||||
|
- Neue SOA
|
||||||
|
- Neues Mahnwesen
|
||||||
|
|
||||||
|
## 1.3.0
|
||||||
|
|
||||||
|
- Migration auf Imixs-Office-Workflow 5.0.2
|
||||||
|
- Upgrade Imixs-Workflow 6.7
|
||||||
|
- Beim XML Invoice Import wird nun auch die Sprache für das Mahnwesen ermittelt (fehlte)
|
||||||
|
- Währungsunabhängigkeit
|
||||||
|
- Lucene Index: item 'cdtr.name' und 'document.company' wurde in den index aufgenommen wegen AI Examples Adapter
|
||||||
|
- Fix Fälligkeit in maske
|
||||||
|
- Fix XML Schnittstelle Cargosoft Sammelgutschrift
|
||||||
|
- Zahlungseingang kann nun korrigiert werden. => modell update 'zahlungseingang-de-1.0.5' und 'rechnungsausgang-de-1.0.13'
|
||||||
|
- fix Zahlungseingangs Formular
|
||||||
|
|
||||||
|
**Migration**
|
||||||
|
|
||||||
|
1. Parameter Pflegen
|
||||||
|
a) Währungen pflegen
|
||||||
|
- DE = EUR;CHF;SEK;RUB;NOK;GBP;USD;CAD
|
||||||
|
- PL = PLN;EUR;CHF;SEK;RUB;NOK;GBP;USD;CAD
|
||||||
|
- DWC = AED; EUR;CHF;SEK;RUB;NOK;GBP;USD;CAD
|
||||||
|
b) Mandant ID
|
||||||
|
|
||||||
|
2. OP Listen Template im Textbaustein aktualisieren
|
||||||
|
|
||||||
|
3. Alle Workflow Modelle erneuern
|
||||||
|
|
||||||
|
## 1.2.21 (Draft)
|
||||||
|
|
||||||
|
- Beim XML Invoice Import wird nun auch die Sprache für das Mahnwesen ermittelt (fehlte)
|
||||||
|
- Währungsunabhängigkeit
|
||||||
|
|
||||||
|
**Migration**
|
||||||
|
|
||||||
|
1. Paramter Pflegen
|
||||||
|
a) Währungen pflegen
|
||||||
|
- DE = EUR;CHF;SEK;RUB;NOK;GBP;USD;CAD
|
||||||
|
- PL = PLN;EUR;CHF;SEK;RUB;NOK;GBP;USD;CAD
|
||||||
|
- DWC = AED; EUR;CHF;SEK;RUB;NOK;GBP;USD;CAD
|
||||||
|
b) Mandant ID
|
||||||
|
|
||||||
|
2. OP Listen Template im Textbausteein aktualisieren
|
||||||
|
|
||||||
|
3. Alle Workflow Modelle erneuern
|
||||||
|
|
||||||
|
## 1.2.20 (Development)
|
||||||
|
|
||||||
|
- Optimierung OP-Liste nach KW
|
||||||
|
- Fix Fälligkeit in maske
|
||||||
|
- Fix XML Schnittstelle Cargosoft Sammelgutschrift
|
||||||
|
|
||||||
|
## 1.2.19
|
||||||
|
|
||||||
|
- Neue XML Invoice Schnittstelle
|
||||||
|
- Mahnwesen englisch
|
||||||
|
|
||||||
|
## 1.2.18
|
||||||
|
|
||||||
|
- Fix in Archiv Suche CustomSearchController.java - requestscoped
|
||||||
|
|
||||||
|
## 1.2.17
|
||||||
|
|
||||||
|
- neue Archive suche
|
||||||
|
- invoice.exchangerate Input ersetzt nun . durch , und locale='de' damit der Wert richtig gespeichert wird!!
|
||||||
|
|
||||||
|
## 1.2.16
|
||||||
|
|
||||||
|
- Upgrade Imixs-Archive auf 2.4.2 - verbesserter IMAP Import
|
||||||
|
- Upgarde Imixs-Adapters 2.3.3-SNAPSHOT
|
||||||
|
- Umstellung auf neue Imixs-Archive Backup Technik
|
||||||
|
|
||||||
|
- Neuer manueller SEPA Lauf mit version:
|
||||||
|
- rechnungseingang-de-1.2.35,
|
||||||
|
- rechnungseingang_sachrechnung-de-1.0.21,
|
||||||
|
- rechungseingang-sachrechnung-pl-1.0.1
|
||||||
|
- sepa-export-manual-3.0.0
|
||||||
|
- sepa-export-manual-pl-3.0.1
|
||||||
|
|
||||||
|
**Achtung**: Kubernetes Deploymets müssen angepasst werden (siehe AGL Polen)
|
||||||
|
|
||||||
|
## 1.2.15
|
||||||
|
|
||||||
|
- kleinere Layout Anpassungen in den Formualren und input Feldern (Positionstabelle, Sachbearbeiter Auswahl...)
|
||||||
|
- invoice.exchangerate Input ersetzt nun , durch . damit der Wert richtig gespeichert wird.
|
||||||
|
- Fix Cargosoft DATEV Import - Korektur des Rechnungsdatums / Jahr
|
||||||
|
- Neuer Rest Service für Korrektur von Cargsoft Ausgangsrechnungen
|
||||||
|
|
||||||
|
https://alexander-logistics.office-workflow.de/api/cargosoft/fix/100
|
||||||
|
|
||||||
|
## 1.2.14
|
||||||
|
|
||||||
|
- Internationalisierung
|
||||||
|
|
||||||
|
## 1.2.13
|
||||||
|
|
||||||
|
- Payment Statistik
|
||||||
|
- Neue Indexfelder 'invoice.date' 'payment.date'
|
||||||
|
|
||||||
|
**WICHTIG:** Es muss nach dem Update einmal der Index neu berechnet werden.
|
||||||
|
|
||||||
|
## 1.2.12
|
||||||
|
|
||||||
|
- Neue Debitoren/Kreditoren Verwaltung - Zusätzliche E-Mail
|
||||||
|
Realisiert über neue Custom Feld 'textlist'
|
||||||
|
- validierung e-mail erfolgt über Adapter und Workflow Rule
|
||||||
|
|
||||||
|
## 1.2.10
|
||||||
|
|
||||||
|
Inkasso Workflow
|
||||||
|
|
||||||
|
## 1.2.8
|
||||||
|
|
||||||
|
Neue KI Version
|
||||||
|
|
||||||
|
Rechnungasausgangsworkflow + Mahnwesen + OP
|
||||||
|
|
||||||
|
Zalungsavis für SEPA Rechnungen freigeschaltet
|
||||||
|
|
||||||
|
## 1.2.7
|
||||||
|
|
||||||
|
Erweiterte Kreditoren Verwaltung. Es können bis zu 4 IBAN/BIC Kombinationen pro Kreditor erfasst werden.
|
||||||
|
|
||||||
|
Wenn vom Benutezr bei der Rechnungserfassugn eine Kombination eingegeben wird die noch nicht gespeichert war,
|
||||||
|
wird diese aufgenomen und die anderen rutschen nach unten.
|
||||||
|
|
||||||
|
## 1.2.6
|
||||||
|
|
||||||
|
Übernahme von IBAN BIC aus kreditoren verwaltung
|
||||||
|
|
||||||
|
## 1.1.1
|
||||||
|
|
||||||
|
- Cargosoft Splitbuchungen - Es können zu einer Rechnung mehrere Cargosoft Exporte erzeugt werden. Die Sub Rechnungsnummern stehen im Feld numsequencenumber_sub
|
||||||
|
- Neue Modellversion rechnungseingnag-de-1.2.0 und posteingang-de-1.0.4
|
||||||
|
- Das Modell rechnungseingnag-de-1.1.3 kann nach einigen Wochen entfernt werden
|
||||||
|
|
|
||||||
204
backup/README.md
Normal file
204
backup/README.md
Normal file
|
|
@ -0,0 +1,204 @@
|
||||||
|
# Eigenes Backup-System (Backup-Mirror)
|
||||||
|
## Architektur, Einrichtung und Disaster-Recovery-Konzept
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Idee und Architektur
|
||||||
|
|
||||||
|
### 1.1 Ausgangslage
|
||||||
|
|
||||||
|
Imixs-Office-Workflow wird von uns als eine transaktionale, hochverfügbare
|
||||||
|
Geschäftsprozessmanagement-Suite betrieben. Die Basis ist ein Open Source Kernel,
|
||||||
|
der frei zugänglich ist ([https://github.com/imixs/](https://github.com/imixs/)).
|
||||||
|
Unabhängig vom gewählten Betriebsmodell (SaaS, Public Cloud, Private Cloud, On
|
||||||
|
Premise) sind und bleiben Sie Eigentümer Ihrer Geschäftsdaten. Über den
|
||||||
|
Backup-Service haben Sie die Möglichkeit, jederzeit eigenständig auf eine
|
||||||
|
vollständige Kopie Ihrer Daten zuzugreifen – unabhängig davon, wie und wo Ihre
|
||||||
|
Instanz aktuell betrieben wird.
|
||||||
|
|
||||||
|
### 1.2 Architektur – Own your Data
|
||||||
|
|
||||||
|
Auch wenn wir den Betrieb Ihrer Instanz übernehmen, bedeutet das nicht, dass Sie
|
||||||
|
von uns abhängig sind. Über den Backup-Mirror betreiben Sie bei sich einen eigenen,
|
||||||
|
unabhängigen Backup-Dienst. Dieser Dienst wird von Ihnen selbst eingerichtet,
|
||||||
|
verwaltet und überwacht und läuft vollständig autark – wir müssen ihn technisch
|
||||||
|
weder kennen noch verwalten. Dadurch gilt:
|
||||||
|
|
||||||
|
> **Sie verfügen über eine eigenständige, vollständige Kopie Ihrer
|
||||||
|
> Geschäftsdaten – unabhängig von unserer Infrastruktur. Mit dieser Kopie kann
|
||||||
|
> Ihr System bei Bedarf komplett neu aufgebaut werden.**
|
||||||
|
|
||||||
|
Das ist ein bewusst einfaches und robustes Prinzip: Es kommt nicht darauf an, *wo*
|
||||||
|
Ihre Daten zusätzlich liegen, sondern *wer* die Kontrolle über diesen zusätzlichen
|
||||||
|
Sicherungsort hat. Nur wenn diese Kontrolle bei Ihnen liegt, sind Sie wirklich
|
||||||
|
unabhängig.
|
||||||
|
|
||||||
|
### 1.3 Wie es funktioniert
|
||||||
|
|
||||||
|
Technisch basiert das Konzept auf dem Open-Source-Projekt
|
||||||
|
[Imixs-Archive](https://github.com/imixs/imixs-archive), konkret auf dem Baustein
|
||||||
|
*Imixs-Archive-Backup*. Der Ablauf im Überblick:
|
||||||
|
|
||||||
|
1. Bei jeder Änderung an einem Geschäftsvorgang erzeugt Ihre Workflow-Instanz
|
||||||
|
automatisch einen unveränderlichen Snapshot (eine vollständige Kopie des
|
||||||
|
Vorgangs inkl. aller angehängten Dokumente).
|
||||||
|
2. Diese Snapshots werden über die REST-Schnittstelle Ihrer Workflow-Instanz
|
||||||
|
bereitgestellt.
|
||||||
|
3. Ein bei Ihnen installierter Backup-Dienst (siehe Abschnitt 2) ruft diese
|
||||||
|
Snapshots eigenständig ab und speichert sie auf einem Speicherort Ihrer Wahl
|
||||||
|
(z. B. eigener FTP-/Storage-Server).
|
||||||
|
|
||||||
|
Wichtig: Die Verbindung erfolgt **von Ihrem System zu unserer Workflow-Instanz**
|
||||||
|
(„Pull-Prinzip"). Sie benötigen dafür lediglich einen Netzwerkzugriff auf die
|
||||||
|
REST-Schnittstelle Ihrer Instanz – wir müssen keinen Zugriff auf Ihre Infrastruktur
|
||||||
|
haben und erhalten auch keinen.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Technische Einrichtung
|
||||||
|
|
||||||
|
Der Backup-Dienst kann als Docker-Container in unterschiedlichen Umgebungen betrieben werden:
|
||||||
|
|
||||||
|
- **Local**: lokal über Docker oder Docker Compose,
|
||||||
|
- **Private Cloud**: in einer Private Cloud (z.b. Kubernetes, OpenShift)
|
||||||
|
- **Public Cloud**: in einer Public Cloud Umgebung (z.b. AWS, Microsoft Azure)
|
||||||
|
|
||||||
|
|
||||||
|
### 2.1 Voraussetzungen
|
||||||
|
|
||||||
|
- Eine eigene Server- bzw. Container-Umgebung (Docker) auf Ihrer Seite
|
||||||
|
- Ein eigener Speicherort für die Backup-Daten (z. B. FTP-Storage, NAS mit
|
||||||
|
FTP-Anbindung)
|
||||||
|
- Eine sogenannte **Mirror-ID**, die wir Ihnen bereitstellen
|
||||||
|
|
||||||
|
### 2.2 Mirror-ID anfragen
|
||||||
|
|
||||||
|
Die Mirror-ID ist eine organisatorische Kennung, mit der wir Ihre eigene
|
||||||
|
Backup-Verbindung für Ihre Instanz freischalten. Sie ist kein Sicherheitsmerkmal im
|
||||||
|
engeren Sinn, sondern eine Vereinbarung zwischen uns: *„Kunde X betreibt ein eigenes
|
||||||
|
Backup."* Bitte fordern Sie diese ID formlos bei uns an.
|
||||||
|
|
||||||
|
### 2.3 Backup-Nutzer in Ihrer eigenen Instanz anlegen
|
||||||
|
|
||||||
|
Ein zentraler Punkt für die Autarkie des Systems: **Sie legen den technischen
|
||||||
|
Benutzer für den Backup-Zugriff selbst in Ihrer Imixs-Instanz an.** Dieser Nutzer
|
||||||
|
gehört ausschließlich Ihnen – wir kennen weder das Passwort noch verwalten wir
|
||||||
|
dieses Konto. Vergeben Sie dem Nutzer ausreichende Leserechte, damit er alle
|
||||||
|
relevanten Vorgänge und Dokumente sichern kann.
|
||||||
|
|
||||||
|
### 2.4 Docker-Compose Beispielkonfiguration
|
||||||
|
|
||||||
|
Das folgende Beispiel zeigt eine Docker Compose Konfiguraiton für den Betrieb des Backup-Dienstes:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
version: "3.6"
|
||||||
|
services:
|
||||||
|
backup:
|
||||||
|
image: imixs/imixs-archive-backup:latest
|
||||||
|
environment:
|
||||||
|
TZ: "Europe/Berlin"
|
||||||
|
WORKFLOW_SERVICE_ENDPOINT: "https://<ihre-instanz>.office-workflow.de/api/"
|
||||||
|
WORKFLOW_SERVICE_USER: "<ihr-backup-nutzer>"
|
||||||
|
WORKFLOW_SERVICE_PASSWORD: "<ihr-passwort>"
|
||||||
|
WORKFLOW_SERVICE_AUTHMETHOD: "form"
|
||||||
|
BACKUP_FTP_HOST: "<ihr-storage-host>"
|
||||||
|
BACKUP_FTP_PATH: "<ihr-zielverzeichnis>"
|
||||||
|
BACKUP_FTP_PORT: "21"
|
||||||
|
BACKUP_FTP_USER: "<ihr-ftp-nutzer>"
|
||||||
|
BACKUP_FTP_PASSWORD: "<ihr-ftp-passwort>"
|
||||||
|
BACKUP_MIRROR_ID: "<ihre-mirror-id>"
|
||||||
|
ports:
|
||||||
|
- "8084:8080"
|
||||||
|
- "9990:9990"
|
||||||
|
```
|
||||||
|
|
||||||
|
**Erläuterung der wichtigsten Parameter:**
|
||||||
|
|
||||||
|
| Parameter | Bedeutung |
|
||||||
|
|---|---|
|
||||||
|
| `WORKFLOW_SERVICE_ENDPOINT` | Die REST-API-Adresse Ihrer bei uns gehosteten Workflow-Instanz |
|
||||||
|
| `WORKFLOW_SERVICE_USER/PASSWORD` | Der von Ihnen selbst angelegte Backup-Nutzer |
|
||||||
|
| `BACKUP_FTP_*` | Ihr eigener Speicherort für die Backup-Daten |
|
||||||
|
| `BACKUP_MIRROR_ID` | Die von uns bereitgestellte Freischalt-ID |
|
||||||
|
|
||||||
|
Nach dem Start prüft der Dienst regelmäßig auf neue zu sichernde Vorgänge und
|
||||||
|
überträgt diese automatisch auf Ihren Speicherort.
|
||||||
|
|
||||||
|
### 2.5 Monitoring des eigenen Backup-Dienstes
|
||||||
|
|
||||||
|
Da der Dienst vollständig in Ihrer Verantwortung läuft, sollten Sie ihn aktiv
|
||||||
|
überwachen. Ein einfacher Ping-Check zeigt zwar, dass der Container erreichbar
|
||||||
|
ist – sagt aber nichts darüber aus, ob der Dienst tatsächlich funktionsfähig ist
|
||||||
|
und Backups erfolgreich durchführt.
|
||||||
|
|
||||||
|
Der Imixs-Archive-Backup-Service stellt hierfür standardisierte **MicroProfile-Endpunkte** mit, die auf Port `9990`
|
||||||
|
bereitgestellt werden:
|
||||||
|
|
||||||
|
| Endpunkt | Beschreibung |
|
||||||
|
|---|---|
|
||||||
|
| `/health` | Liefert den Health-Status des Dienstes nach dem MicroProfile-Health-Standard – inklusive Readiness (ist der Dienst betriebsbereit, z. B. Verbindung zur Workflow-API und zum FTP-Storage vorhanden?) und Liveness (läuft der Prozess korrekt?) |
|
||||||
|
| `/metrics` | Liefert Betriebskennzahlen im MicroProfile-Metrics-Format (Prometheus-kompatibel), z. B. Anzahl verarbeiteter Backups, Fehlerzähler, Laufzeiten |
|
||||||
|
|
||||||
|
Damit lässt sich der Dienst professionell überwachen:
|
||||||
|
|
||||||
|
- **Health-Checks** binden Sie direkt in gängige Monitoring-Systeme ein (z. B.
|
||||||
|
Kubernetes Liveness-/Readiness-Probes, Uptime-Kuma, Nagios, Icinga) und erkennen
|
||||||
|
so nicht nur einen abgestürzten Container, sondern auch einen Dienst, der zwar
|
||||||
|
läuft, aber z. B. keine Verbindung mehr zu Ihrer Workflow-Instanz oder zum
|
||||||
|
FTP-Ziel herstellen kann.
|
||||||
|
- **Metrics** lassen sich direkt von Prometheus abgegriffen und in Grafana
|
||||||
|
visualisiert werden – so erkennen Sie auf einen Blick, ob regelmäßig Backups
|
||||||
|
durchgeführt werden, oder ob z. B. die Fehlerrate ansteigt.
|
||||||
|
|
||||||
|
**Voraussetzung:** Sie müssen Port `9990` in Ihrer Docker-Umgebung entsprechend
|
||||||
|
freigeben bzw. mappen, damit Ihr Monitoring-System auf die Endpunkte zugreifen kann
|
||||||
|
(siehe Port-Mapping im Beispiel aus Abschnitt 2.4).
|
||||||
|
|
||||||
|
Ein Backup, das unbemerkt seit Wochen nicht mehr funktioniert, bietet keinen Schutz.
|
||||||
|
Die Überwachung über Health- und Metrics-Endpunkte ist daher ein integraler
|
||||||
|
Bestandteil des Konzepts, nicht optional.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Notfall- und Wiederherstellungsfall (Disaster Recovery)
|
||||||
|
|
||||||
|
Im Falle eines Disaster-Recovery-Prozesses stellen Sie uns Ihr Backup zur Verfügung, damit Ihr System auf dessen Basis wiederhergestellt werden kann. Dieser Abschnitt beschreibt das Vorgehen nur in Stichpunkten.
|
||||||
|
Die vollständige technische Dokumentation der
|
||||||
|
Imixs-Workflow-Architektur ist Open Source und öffentlich einsehbar unter
|
||||||
|
[github.com/imixs](https://github.com/imixs).
|
||||||
|
|
||||||
|
**Grundprinzip der Wiederherstellung:**
|
||||||
|
|
||||||
|
- Ihre gesicherten Snapshot-Daten liegen vollständig und unverändert in Ihrem
|
||||||
|
eigenen Speicher (FTP/Storage) vor.
|
||||||
|
- Diese Daten liegen in einem offenen, plattformunabhängigen XML-Format vor und
|
||||||
|
sind nicht an unsere konkrete Infrastruktur gebunden.
|
||||||
|
- Auf Basis dieser Daten kann eine neue Imixs-Workflow-Instanz (bei Ihnen oder bei
|
||||||
|
einem anderen Dienstleister) aufgesetzt werden.
|
||||||
|
- Über die Restore-Funktion der Imixs-Archive-Komponenten werden die Snapshots in
|
||||||
|
die neue Instanz zurückgespielt – jeder Geschäftsvorgang wird dabei inklusive
|
||||||
|
seiner Historie und aller Dokumente wiederhergestellt.
|
||||||
|
|
||||||
|
**Wichtige Stichpunkte für den Ernstfall:**
|
||||||
|
|
||||||
|
- Backup-Daten sind vollständig bei Ihnen vorhanden → keine Abhängigkeit von uns
|
||||||
|
- Wiederherstellung erfordert eine lauffähige Imixs-Workflow-Umgebung (Open Source,
|
||||||
|
frei verfügbar)
|
||||||
|
- Die technische Vorgehensweise zum Restore ist Teil der öffentlichen
|
||||||
|
Imixs-Archive-Dokumentation
|
||||||
|
- Wir unterstützen Sie im Ernstfall selbstverständlich gerne beim Wiederaufbau –
|
||||||
|
diese Unterstützung ist jedoch **keine Voraussetzung**, da die Daten und das
|
||||||
|
Wiederherstellungsverfahren vollständig unabhängig von uns nutzbar sind
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Zusammenfassung
|
||||||
|
|
||||||
|
Mit dem Backup-Mirror bleiben Sie jederzeit Eigentümer Ihrer Geschäftsdaten – unabhängig
|
||||||
|
davon, wie und wo Ihre Instanz betrieben wird. Sie richten den Dienst selbst ein, verwalten
|
||||||
|
ihn eigenständig und behalten so die volle Kontrolle über Ihre zusätzliche Datenkopie. Genau
|
||||||
|
diese Unabhängigkeit ist es, die Ihnen im Bedarfsfall den vollständigen Wiederaufbau Ihres
|
||||||
|
Systems ermöglicht.
|
||||||
|
|
||||||
|
Bei Fragen zur Einrichtung oder zur Anforderung Ihrer Mirror-ID kontaktieren Sie uns
|
||||||
|
gerne.
|
||||||
22
backup/docker-compose.yaml
Normal file
22
backup/docker-compose.yaml
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
version: "3.6"
|
||||||
|
services:
|
||||||
|
###############################################
|
||||||
|
# Backup Service
|
||||||
|
###############################################
|
||||||
|
backup:
|
||||||
|
image: imixs/imixs-archive-backup:latest
|
||||||
|
environment:
|
||||||
|
TZ: "Europe/Berlin"
|
||||||
|
WORKFLOW_SERVICE_ENDPOINT: "https://alexander-logistics-ams.office-workflow.de/api/"
|
||||||
|
WORKFLOW_SERVICE_USER: "kutzner-backup-service"
|
||||||
|
WORKFLOW_SERVICE_PASSWORD: "16e-7ede-4c1c-bdeb-e16ce"
|
||||||
|
WORKFLOW_SERVICE_AUTHMETHOD: "form"
|
||||||
|
BACKUP_FTP_HOST: "u248962.your-storagebox.de"
|
||||||
|
BACKUP_FTP_PATH: "/test/agl/ams-test"
|
||||||
|
BACKUP_FTP_PORT: "21"
|
||||||
|
BACKUP_FTP_USER: "u248962"
|
||||||
|
BACKUP_FTP_PASSWORD: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
||||||
|
BACKUP_MIRROR_ID: "backup-mirror-local"
|
||||||
|
WORKFLOW_REST_JPQL_DOUBLEDECODE_WORKAROUND: "true"
|
||||||
|
ports:
|
||||||
|
- "8084:8080"
|
||||||
81
devi
Executable file
81
devi
Executable file
|
|
@ -0,0 +1,81 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
############################################################
|
||||||
|
# The Imixs Developer Script
|
||||||
|
# start, build, hot, setup, deploy
|
||||||
|
#
|
||||||
|
############################################################
|
||||||
|
|
||||||
|
# Funktion zum Entfernen des '-' Zeichens von einem Parameter
|
||||||
|
strip_dash() {
|
||||||
|
echo "$1" | sed 's/^-//'
|
||||||
|
}
|
||||||
|
|
||||||
|
echo " _ _ _ _ "
|
||||||
|
echo " __| | _____ _(_) | |__ ___| |_ __"
|
||||||
|
echo " / _\` |/ _ \\ \\ / / | | '_ \\ / _ \\ | \'_ \\"
|
||||||
|
echo "| (_| | __/\ V /| | | | | | __/ | |_) |"
|
||||||
|
echo " \__,_|\___| \_/ |_| |_| |_|\___|_| .__/ "
|
||||||
|
echo " |_| "
|
||||||
|
echo " Imixs Developer Script..."
|
||||||
|
echo "_________________________________________"
|
||||||
|
|
||||||
|
# Überprüfen, ob der Parameter 'hot' übergeben wurde
|
||||||
|
if [[ "$(strip_dash $1)" == "setup" ]]; then
|
||||||
|
echo " Dev Setup..."
|
||||||
|
sudo chmod -R 777 docker/deployments/
|
||||||
|
|
||||||
|
#mvn -f ~/git/imixs-ml/ clean install -Pdocker -DskipTests
|
||||||
|
|
||||||
|
echo " starting dev enrvionment..."
|
||||||
|
mvn clean install -Pdebug
|
||||||
|
cp ./*-app/target/*.war ./docker/deployments/
|
||||||
|
docker compose -f docker-compose.yml up
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [[ "$(strip_dash $1)" == "start" ]]; then
|
||||||
|
echo " Start Dev Environment..."
|
||||||
|
docker compose -f docker-compose.yml up
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$(strip_dash $1)" == "build" ]]; then
|
||||||
|
echo " Build and Autodeploy..."
|
||||||
|
|
||||||
|
mvn clean install -DskipTests
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$(strip_dash $1)" == "test" ]]; then
|
||||||
|
echo " Run JUnit Tests..."
|
||||||
|
|
||||||
|
mvn clean test
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$(strip_dash $1)" == "hot" ]]; then
|
||||||
|
echo "* Hotdeploy..."
|
||||||
|
mvn manik-hotdeploy:hotdeploy
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$(strip_dash $1)" == "deploy" ]]; then
|
||||||
|
echo " Deploy to Imixs-Cloud..."
|
||||||
|
|
||||||
|
mvn clean install -Pimixs-cloud -DskipTests
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Überprüfen, ob keine Parameter übergeben wurden - standard build
|
||||||
|
if [[ $# -eq 0 ]]; then
|
||||||
|
|
||||||
|
echo " Run with ./dev.sh -XXX"
|
||||||
|
echo " "
|
||||||
|
echo " -start : Docker Container starten "
|
||||||
|
echo " -build : Anwendung neue bauen und deployen "
|
||||||
|
echo " -hot : Manik Hotdeploy Starten"
|
||||||
|
echo " -test : Run tests"
|
||||||
|
echo " -deploy: Imixs-Cloud Deployment starten "
|
||||||
|
echo " -setup : Developer Umgebung neu aufbauen und Docker Container starten "
|
||||||
|
echo "_________________________________________"
|
||||||
|
echo " "
|
||||||
|
|
||||||
|
fi
|
||||||
97
doc/BUSINESSPARTNER.md
Normal file
97
doc/BUSINESSPARTNER.md
Normal file
|
|
@ -0,0 +1,97 @@
|
||||||
|
# BusinessPartner
|
||||||
|
|
||||||
|
Wir haben einen Workflow für die Verwaltung von BusinessPartner.
|
||||||
|
Ein BusinessPartner wird über die bestehende Cargosoft Schnittstelle aus den Debitoren/Kreditoren automatisch importiert und synchronisiert.
|
||||||
|
|
||||||
|
In Imixs ist es dann aber möglich zusätzliche Attribute zu einem Businesspartner zu speichern. Beispielsweise:
|
||||||
|
|
||||||
|
- Zahlungsziel
|
||||||
|
- Bankverbindungen
|
||||||
|
- Emailadressen für Mahnwesen
|
||||||
|
|
||||||
|
Die Businessparnter werden für jedes System separat importiert und verwaltet.
|
||||||
|
|
||||||
|
Folgende zentrale Stati werden über das BusinessPartner Modell festgelegt:
|
||||||
|
|
||||||
|
- TASK_ACTIVE = 1100
|
||||||
|
- TASK_VERIFICATION = 1300
|
||||||
|
- TASK_INACTIVE = 1700
|
||||||
|
- TASK_LOCKED = 1800
|
||||||
|
|
||||||
|
Die Invoice Plugins aktualisierne automatisch die BusinessPartner Attribute `partner.id` und `partner.name`. Zusätzlich unterbinden die Plugins eine Verarbeitung falls das Business Objekt im Satus LOCKED oder VERIFICATION ist!
|
||||||
|
|
||||||
|
## BusinessPartner Suche
|
||||||
|
|
||||||
|
Es gibt einen Controller und ein widget um nach Business Partnern zu suchen.
|
||||||
|
|
||||||
|
<img src="images/businesspartner-widget.png" />
|
||||||
|
|
||||||
|
Z.b. kann das als Custom Part in eine Form eingebunden werden:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<item name="bpid" type="custom" path="alexander/businesspartner_search" required="true" label="Businesspartner:" />
|
||||||
|
```
|
||||||
|
|
||||||
|
Der name ist heirbei irrelevant, da immer die Items `partner.id` und `partner.name` ausgefüllt werden.
|
||||||
|
Zusätzlich kann man mit den Options angeben ob die Maske komplett neu gerendert werden soll. Das ist z.b. bei dem Modell `analyse-debitor.bpmn` der Fall
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<item name="dbtr.number" type="custom" path="alexander/businesspartner_search" required="true" label="Debtor:" options="rerender" />
|
||||||
|
```
|
||||||
|
|
||||||
|
Man kann auch noch über die options eine regular Expression mitgeben wodurch die Filterliste eingeschränkt werden kann:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<item name="dbtr.number" type="custom" path="alexander/businesspartner_search" required="true" label="Debtor:" options="rerender;regexPattern=(ABC)" />
|
||||||
|
```
|
||||||
|
|
||||||
|
Alternativ kann im Backend über die EJB BusinessPartnerService nach bpid gesucht werden:
|
||||||
|
|
||||||
|
```java
|
||||||
|
List<ItemCollection> resultList = businessPartnerService.search(phrase);
|
||||||
|
// oder
|
||||||
|
ItemCollection bp= businessPartnerService.getBusinessPartnerByID("BP0001");
|
||||||
|
```
|
||||||
|
|
||||||
|
## Invoice Plugins
|
||||||
|
|
||||||
|
Die Invoice Plugins aktualisieren automatisch partner.id und partner.name falls diese Items noch nicht exiistieren
|
||||||
|
|
||||||
|
# Daten Migration
|
||||||
|
|
||||||
|
Der `BusinessPartnerImportService` hängt sich über ein CDI Observer Pattern an den standard CSVImport Service
|
||||||
|
der die Cargosoft Stammdaten aktualisiert. Der BusinessPartnerImportService
|
||||||
|
prüft ob der Workflow schon existiert oder ggf. aktualisiert werden muss.
|
||||||
|
|
||||||
|
Der Service migriert auch die alten zusätzlichen IBAN/BIC felder wenn der Business partner erstmals neu angelegt wird. Falls bei der ersten Migration erkannt wird, dass die IBAN Nummern nicht eindeutig sind wir der BusinessParter mit dem Event 300 angelegt.
|
||||||
|
|
||||||
|
-
|
||||||
|
|
||||||
|
\_vendor_zip_code
|
||||||
|
|
||||||
|
\_vendor_fax
|
||||||
|
|
||||||
|
(type:cargosoftkreditor) AND ($modified:[20010101 TO 20250215])
|
||||||
|
|
||||||
|
## Anmerkungen zu seltsamen Daten
|
||||||
|
|
||||||
|
BP4641 existier jetzt 3 mal mit der Debitoren nummer D14641
|
||||||
|
|
||||||
|
Feldmühle
|
||||||
|
|
||||||
|
- D14169
|
||||||
|
K74169
|
||||||
|
|
||||||
|
K76233 HSH Papier GmbH & Co. KG
|
||||||
|
|
||||||
|
D16233 Manfred Ziegler Transport GmbH
|
||||||
|
|
||||||
|
Problemkind: https://alexander-logistics-dwc.office-workflow.de/pages/workitems/workitem.xhtml?id=9dd64b0a-cfe1-4174-aea4-0e8af45b823f
|
||||||
|
|
||||||
|
# Business Parter Serach Widget
|
||||||
|
|
||||||
|
wir müssten eigentlich nach Auswahl des Partner
|
||||||
|
|
||||||
|
execute="#{customFormComponents.clientId}" render="#{customFormComponents.clientId}"
|
||||||
|
|
||||||
|
machnen, aber das hat einen blöden effekt
|
||||||
20
doc/CARGOSOFT.md
Normal file
20
doc/CARGOSOFT.md
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
# Cargosoft Schnittstelle
|
||||||
|
|
||||||
|
Für den Austausch von Daten mit Cargosoft verwenden wir verschiedene Subaccounts auf unseren FTP Servern.
|
||||||
|
|
||||||
|
## Server Verbindungsdaten
|
||||||
|
|
||||||
|
Details siehe [FTP Server](FTP.md)
|
||||||
|
|
||||||
|
## Ausgangsrechnungen
|
||||||
|
|
||||||
|
Ausgansrechnungen werden von Cargosoft im Verzeichnis `/fromCargosoft/imixs_invoices/` bereitgestellt
|
||||||
|
|
||||||
|
Über den Document Importer `type=CARGOSOFT_INVOICE_XML` werden die Dokumente regelmäßig importiert und dann in das Verzeichnis `/fromCargosoft/imixs_invoices/processed/` verschoben
|
||||||
|
|
||||||
|
Technisch wird das über die CDI Bean `com.alexanderlogistics.xml.CargosoftXMLInvoiceImportImportService` gesteuert
|
||||||
|
|
||||||
|
## Stamdaten / Kreditoren & Debitoren
|
||||||
|
|
||||||
|
Die Kreditoren/Debitoren Stammdaten werden von Cargosoft im Verzeichnis `/fromCargosoft/stammdaten/` über die Datei `Vendors.csv` bereitgestellt
|
||||||
|
Über den Document Importer `CSV` werden die Dokumente regelmäßig importiert bzw. aktualisert
|
||||||
BIN
doc/Emirates NBD/1. Supplier Payments Template.xls
Normal file
BIN
doc/Emirates NBD/1. Supplier Payments Template.xls
Normal file
Binary file not shown.
BIN
doc/Emirates NBD/2. Column specifications - businessONLINE.pdf
Normal file
BIN
doc/Emirates NBD/2. Column specifications - businessONLINE.pdf
Normal file
Binary file not shown.
Binary file not shown.
BIN
doc/Emirates NBD/4. Bulk File Upload Guide - businessONLINE.pdf
Normal file
BIN
doc/Emirates NBD/4. Bulk File Upload Guide - businessONLINE.pdf
Normal file
Binary file not shown.
14
doc/Emirates NBD/README.md
Normal file
14
doc/Emirates NBD/README.md
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
# SEPA Schnittstelle Emirates NBD
|
||||||
|
|
||||||
|
Für die Bank Emirates NBD kann die bestehene SEPA Schnittstelle nicht verwendet werden. Hierfür wird eine Excel Basierte Dateischnittstelle benötigt.
|
||||||
|
Diese ist im Adapter `SEPAExportAdapterNBD` umgesetzt.
|
||||||
|
|
||||||
|
## Schnittstelle
|
||||||
|
|
||||||
|
Die Schnittstelle ist über den `SEPAExportAdapterNBD` realisiert. Dieser läd das Template für den Bulk File Upload aus dem Textbaustein und befüllt es anhand der Schnittstellenbeschreibung
|
||||||
|
|
||||||
|
- businessONLINE - Bulk File Upload specifications_20Columns.pdf
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Binary file not shown.
BIN
doc/KSeF/Feld-Mapping Cargo Soft zu KSeF (DE).pdf
Normal file
BIN
doc/KSeF/Feld-Mapping Cargo Soft zu KSeF (DE).pdf
Normal file
Binary file not shown.
314
doc/KSeF/README.md
Normal file
314
doc/KSeF/README.md
Normal file
|
|
@ -0,0 +1,314 @@
|
||||||
|
# KSeF API Integration
|
||||||
|
|
||||||
|
Java integration for the Polish **Krajowy System e-Faktur (KSeF)** - the national e-invoicing system for Poland.
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
This integration provides secure communication with the KSeF API to upload electronic invoices. It handles the complex multi-step authentication flow and encryption requirements mandated by the Polish tax authorities.
|
||||||
|
|
||||||
|
- [Environment Endpoints](https://github.com/CIRFMF/ksef-docs/blob/main/srodowiska.md)
|
||||||
|
- [KSeF Official Documentation](https://www.gov.pl/web/kas/ksef)
|
||||||
|
- [KSeF API Specification](https://api-test.ksef.mf.gov.pl/docs/v2/index.html)
|
||||||
|
- [Upload Invoice](https://api-test.ksef.mf.gov.pl/docs/v2/index.html#tag/Wysylka-interaktywna/paths/~1api~1v2~1sessions~1online~1%7BreferenceNumber%7D~1invoices/post)
|
||||||
|
- [Facture Details](https://github.com/CIRFMF/ksef-docs/blob/main/sesja-interaktywna.md#2-wys%C5%82anie-faktury)
|
||||||
|
- [XML Invoice Example](https://github.com/CIRFMF/ksef-docs/blob/main/faktury/weryfikacja-faktury.md)
|
||||||
|
- [QR Code](https://github.com/CIRFMF/ksef-docs/blob/main/kody-qr.md)
|
||||||
|
|
||||||
|
- [Github Discussions](https://github.com/CIRFMF/ksef-docs/issues/351#issuecomment-3538013805)
|
||||||
|
- [Github Discussions](https://github.com/CIRFMF/ksef-docs/issues/399)
|
||||||
|
|
||||||
|
Test environment endpoint:
|
||||||
|
|
||||||
|
```
|
||||||
|
https://api-test.ksef.mf.gov.pl/api/v2
|
||||||
|
```
|
||||||
|
|
||||||
|
Production endpoint:
|
||||||
|
|
||||||
|
```
|
||||||
|
https://api.ksef.mf.gov.pl/api/v2
|
||||||
|
```
|
||||||
|
|
||||||
|
## Components
|
||||||
|
|
||||||
|
### 1. KSeFAuthManager
|
||||||
|
|
||||||
|
Manages authentication and session lifecycle for the KSeF API.
|
||||||
|
|
||||||
|
**Key Responsibilities:**
|
||||||
|
|
||||||
|
- Multi-step authentication flow
|
||||||
|
- RSA certificate management
|
||||||
|
- Session key generation and encryption
|
||||||
|
- Access token lifecycle management
|
||||||
|
- Session reuse and validation
|
||||||
|
|
||||||
|
### 2. KSeFAPIService
|
||||||
|
|
||||||
|
Provides business-level methods for invoice operations.
|
||||||
|
|
||||||
|
**Key Responsibilities:**
|
||||||
|
|
||||||
|
- Invoice encryption (AES-256-CBC)
|
||||||
|
- Invoice upload to KSeF
|
||||||
|
- Hash calculation and validation
|
||||||
|
- Error handling and reporting
|
||||||
|
|
||||||
|
## Authentication Flow
|
||||||
|
|
||||||
|
The KSeF API requires a sophisticated multi-step authentication process:
|
||||||
|
|
||||||
|
```
|
||||||
|
1. Load Public Keys
|
||||||
|
└─> GET /security/public-key-certificates
|
||||||
|
|
||||||
|
2. Challenge Request
|
||||||
|
└─> POST /auth/challenge
|
||||||
|
└─> Returns: challenge + timestamp
|
||||||
|
|
||||||
|
3. Token Authentication
|
||||||
|
└─> POST /auth/ksef-token
|
||||||
|
└─> Encrypts: token|timestamp with RSA-OAEP SHA-256
|
||||||
|
└─> Returns: authToken + referenceNumber
|
||||||
|
|
||||||
|
4. Token Redemption
|
||||||
|
└─> POST /auth/token/redeem
|
||||||
|
└─> Returns: accessToken
|
||||||
|
|
||||||
|
5. Open Interactive Session
|
||||||
|
└─> POST /sessions/online
|
||||||
|
└─> Generates AES-256 key + IV
|
||||||
|
└─> Encrypts session key with RSA
|
||||||
|
└─> Returns: sessionRefNumber + validUntil
|
||||||
|
```
|
||||||
|
|
||||||
|
## Invoice Upload Flow
|
||||||
|
|
||||||
|
Once authenticated, invoices can be uploaded:
|
||||||
|
|
||||||
|
```
|
||||||
|
1. Reuse or Create Session
|
||||||
|
└─> Validates existing session or creates new one
|
||||||
|
|
||||||
|
2. Encrypt Invoice
|
||||||
|
└─> AES-256-CBC encryption using session key
|
||||||
|
|
||||||
|
3. Calculate Hashes
|
||||||
|
└─> SHA-256 of original XML
|
||||||
|
└─> SHA-256 of encrypted XML
|
||||||
|
|
||||||
|
4. Upload Invoice
|
||||||
|
└─> POST /sessions/online/{sessionRef}/invoices
|
||||||
|
└─> Returns: referenceNumber
|
||||||
|
```
|
||||||
|
|
||||||
|
## Security Features
|
||||||
|
|
||||||
|
### Multi-Layer Encryption
|
||||||
|
|
||||||
|
- **RSA-OAEP SHA-256**: Token encryption with timestamp binding
|
||||||
|
- **RSA-OAEP SHA-1**: Session key encryption
|
||||||
|
- **AES-256-CBC**: Invoice content encryption
|
||||||
|
|
||||||
|
### Security Mechanisms
|
||||||
|
|
||||||
|
- **Replay Attack Protection**: Timestamp-bound tokens
|
||||||
|
- **Session Management**: Automatic session reuse and validation
|
||||||
|
- **Certificate Validation**: Dynamic X.509 certificate loading
|
||||||
|
- **UTC Timezone Handling**: Prevents timezone-related vulnerabilities
|
||||||
|
|
||||||
|
## Usage Example
|
||||||
|
|
||||||
|
```java
|
||||||
|
// Initialize Auth Manager
|
||||||
|
KSeFAuthManager authManager = new KSeFAuthManager();
|
||||||
|
authManager.setKsefToken("your-ksef-token");
|
||||||
|
authManager.setKsefNip("1234567890");
|
||||||
|
authManager.setKsefEndpoint("https://ksef-test.mf.gov.pl/api/v2");
|
||||||
|
authManager.init();
|
||||||
|
|
||||||
|
// Initialize API Service
|
||||||
|
KSeFAPIService apiService = new KSeFAPIService();
|
||||||
|
apiService.kseFAuthManager = authManager;
|
||||||
|
|
||||||
|
// Upload Invoice
|
||||||
|
ItemCollection workitem = new ItemCollection();
|
||||||
|
FileData fileData = new FileData("invoice.xml", xmlBytes, null, null);
|
||||||
|
workitem.addFileData(fileData);
|
||||||
|
|
||||||
|
String referenceNumber = apiService.uploadInvoice(workitem, "invoice.xml");
|
||||||
|
System.out.println("Invoice uploaded: " + referenceNumber);
|
||||||
|
```
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
Required environment variables:
|
||||||
|
|
||||||
|
```properties
|
||||||
|
ksef.api.token=your-ksef-authentication-token
|
||||||
|
ksef.api.nip=your-company-nip-number
|
||||||
|
ksef.api.endpoint=https://ksef-test.mf.gov.pl/api/v2
|
||||||
|
ksef.api.debug=false
|
||||||
|
```
|
||||||
|
|
||||||
|
## Session Management
|
||||||
|
|
||||||
|
The `KSeFAuthManager` automatically handles session lifecycle:
|
||||||
|
|
||||||
|
- **Session Reuse**: Validates `sessionValidUntil` timestamp (UTC)
|
||||||
|
- **Auto-Renewal**: Opens new session if current one expired
|
||||||
|
- **Thread-Safe**: Uses `@Lock(LockType.WRITE)` for concurrent access
|
||||||
|
|
||||||
|
## Testing
|
||||||
|
|
||||||
|
Test environment endpoint:
|
||||||
|
|
||||||
|
```
|
||||||
|
https://ksef-test.mf.gov.pl/api/v2
|
||||||
|
```
|
||||||
|
|
||||||
|
Production endpoint:
|
||||||
|
|
||||||
|
```
|
||||||
|
https://ksef.mf.gov.pl/api/v2
|
||||||
|
```
|
||||||
|
|
||||||
|
See `KSeFAPIServiceTest.java` for complete test examples.
|
||||||
|
|
||||||
|
## Error Handling
|
||||||
|
|
||||||
|
The implementation uses `PluginException` for error handling with two error types:
|
||||||
|
|
||||||
|
- `CONFIG_ERROR`: Configuration or setup issues
|
||||||
|
- `API_ERROR`: API communication or response errors
|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
|
||||||
|
- Jakarta EE (EJB, JSON-B)
|
||||||
|
- Java 11+ (HttpClient, Crypto APIs)
|
||||||
|
- Imixs Workflow (for document management)
|
||||||
|
|
||||||
|
# Validate XML
|
||||||
|
|
||||||
|
To validate XML results use xmllint. To install run:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ sudo apt install libxml2-utils
|
||||||
|
```
|
||||||
|
|
||||||
|
With the bash script `src/test/resources/ksef/validate_xml.sh` you can test a xml file:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ ./validate_xml.sh example-invoice-01.xml
|
||||||
|
```
|
||||||
|
|
||||||
|
or to manual test a xml run:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ xmllint --noout --schema 'schemat-FA(3)-v1-0E.xsd' example-invoice-01.xml
|
||||||
|
example-invoice-01.xml validates
|
||||||
|
```
|
||||||
|
|
||||||
|
# KSeF FA(3) Invoice Types: VAT vs. KOR
|
||||||
|
|
||||||
|
This section explains the key differences between regular invoices (VAT) and correction invoices (KOR) in the Polish KSeF system using FA(3) structure.
|
||||||
|
|
||||||
|
## Invoice Types
|
||||||
|
|
||||||
|
### VAT - Regular Invoice
|
||||||
|
|
||||||
|
Standard invoice documenting a sale or service delivery.
|
||||||
|
|
||||||
|
### KOR - Correction Invoice
|
||||||
|
|
||||||
|
Invoice that corrects a previously issued invoice (VAT, ZAL, or ROZ).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Key Differences
|
||||||
|
|
||||||
|
| Element | VAT Invoice | KOR Invoice |
|
||||||
|
| ------------------------- | -------------------------- | --------------------------------------------- |
|
||||||
|
| **RodzajFaktury** | `VAT` | `KOR` |
|
||||||
|
| **P_2 (Invoice Number)** | `216525` | `216525-KOR` (with suffix) |
|
||||||
|
| **P_1 (Invoice Date)** | Original date (2024-04-03) | Correction date (2024-04-15) |
|
||||||
|
| **Amount Fields** | Absolute values | **Difference values** (negative or positive) |
|
||||||
|
| **DaneFaKorygowanej** | ❌ Not present | ✅ **Required** - references original invoice |
|
||||||
|
| **FaWiersz (Line Items)** | Original values | **New/corrected values** |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Critical: Amount Fields in KOR
|
||||||
|
|
||||||
|
**KOR invoices show DIFFERENCES, not absolute amounts!**
|
||||||
|
|
||||||
|
### Example: Correction from 4128.00 → 3500.00 EUR
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<!-- VAT Invoice -->
|
||||||
|
<P_13_1>4128.00</P_13_1> <!-- Total Net -->
|
||||||
|
<P_14_1>0.00</P_14_1> <!-- Total VAT -->
|
||||||
|
<P_15>4128.00</P_15> <!-- Total Gross -->
|
||||||
|
```
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<!-- KOR Invoice -->
|
||||||
|
<P_13_6_1>-628.00</P_13_6_1> <!-- Difference: 3500 - 4128 = -628 -->
|
||||||
|
<P_15>-628.00</P_15> <!-- Difference in Total -->
|
||||||
|
```
|
||||||
|
|
||||||
|
## DaneFaKorygowanej Element
|
||||||
|
|
||||||
|
**Required in KOR invoices** - Must appear AFTER `<RodzajFaktury>KOR</RodzajFaktury>`
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<DaneFaKorygowanej>
|
||||||
|
<DataWystFaKorygowanej>2024-04-03</DataWystFaKorygowanej>
|
||||||
|
<NrFaKorygowanej>216525</NrFaKorygowanej>
|
||||||
|
<NrKSeF>1</NrKSeF>
|
||||||
|
<NrKSeFFaKorygowanej>9552521552-20240403-ABCDEF-123456-AB</NrKSeFFaKorygowanej>
|
||||||
|
</DaneFaKorygowanej>
|
||||||
|
```
|
||||||
|
|
||||||
|
| Field | Description |
|
||||||
|
| ----------------------- | --------------------------------------------------------- |
|
||||||
|
| `DataWystFaKorygowanej` | Date of **original** invoice |
|
||||||
|
| `NrFaKorygowanej` | Number of **original** invoice |
|
||||||
|
| `NrKSeF` | Flag: `1` = original was in KSeF |
|
||||||
|
| `NrKSeFFaKorygowanej` | KSeF number of original invoice (mandatory if `NrKSeF=1`) |
|
||||||
|
|
||||||
|
⚠️ **Critical:** The KSeF number must be saved when uploading the original VAT invoice!
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## FaWiersz in KOR
|
||||||
|
|
||||||
|
**Line items show the NEW/CORRECTED values**, not differences:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<!-- VAT Invoice -->
|
||||||
|
<FaWiersz>
|
||||||
|
<P_9A>4128.00</P_9A> <!-- Unit price -->
|
||||||
|
<P_11>4128.00</P_11> <!-- Net value -->
|
||||||
|
</FaWiersz>
|
||||||
|
```
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<!-- KOR Invoice -->
|
||||||
|
<FaWiersz>
|
||||||
|
<P_9A>3500.00</P_9A> <!-- NEW unit price -->
|
||||||
|
<P_11>3500.00</P_11> <!-- NEW net value -->
|
||||||
|
<P_12>0 KR</P_12> <!-- Tax rate (0% for exempted) -->
|
||||||
|
</FaWiersz>
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Testdaten
|
||||||
|
|
||||||
|
Um Testdaten in die lokale Dev Umgebung zu importieren:
|
||||||
|
|
||||||
|
1. aus dem Produktiv Archiv System das XML eines Rechnungs-Snapshots unter /docker/transfer speichern
|
||||||
|
2. per api Call importieren:
|
||||||
|
|
||||||
|
http://localhost:8080/api/cargosoft/import?file=/opt/jboss/wildfly/transfer/f28bf914-04de-4843-9809-54c724bdc9bf-1764111735524.xml
|
||||||
26
doc/KSeF/TEST.md
Normal file
26
doc/KSeF/TEST.md
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
# Test Cases
|
||||||
|
|
||||||
|
Invoice
|
||||||
|
|
||||||
|
| No | currency | Tax % | Netto | Brutto | Imixs | TAXMAN |
|
||||||
|
| ---- | -------- | ----- | ---------- | ---------- | --------- | ------ |
|
||||||
|
| 6562 | EUR | 0 | 964,16 | 964,16 | OK |
|
||||||
|
| 6555 | PLN | 23 | 31820,10 | 40894,7 | OK |
|
||||||
|
| 6586 | PLN | 23 | 110.146,50 | 141.820,90 | OK |
|
||||||
|
| 6467 | USD | 0 | 1540,00 | 1540,00 | OK |
|
||||||
|
| 6567 | EUR | 0 | 9940,96 | 9940,96 | NIP Fehlt |
|
||||||
|
|
||||||
|
# Neuer Testlauf
|
||||||
|
|
||||||
|
6602 – correction invoice where just description was changed, without changing of amounts (price, VAT..)
|
||||||
|
6816 - correction invoice where amounts where changed (before correction 180 USD, after correction 0 USD)
|
||||||
|
6811 – invoice with more positions, incl. positions with different VAT rate
|
||||||
|
|
||||||
|
| No | currency | Tax % | Netto | Brutto | Imixs | TAXMAN |
|
||||||
|
| ---- | -------- | ----- | ----- | ------ | ----- | ------ |
|
||||||
|
| 6602 | | 0 | | | | OK |
|
||||||
|
| 6816 | | 0 | | | | OK |
|
||||||
|
| 6811 | | 0 | | | | OK |
|
||||||
|
| | | 0 | | | | |
|
||||||
|
| | | 0 | | | | |
|
||||||
|
| | | 0 | | | | |
|
||||||
BIN
doc/KSeF/information-sheet-on-the-fa-3-logical-structure.pdf
Normal file
BIN
doc/KSeF/information-sheet-on-the-fa-3-logical-structure.pdf
Normal file
Binary file not shown.
11183
doc/KSeF/openapi.json
Normal file
11183
doc/KSeF/openapi.json
Normal file
File diff suppressed because it is too large
Load diff
3950
doc/KSeF/schemat-FA(3)-v1-0E.xsd
Normal file
3950
doc/KSeF/schemat-FA(3)-v1-0E.xsd
Normal file
File diff suppressed because it is too large
Load diff
75
doc/KSeF/test.xml
Normal file
75
doc/KSeF/test.xml
Normal file
|
|
@ -0,0 +1,75 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Potwierdzenie xmlns="http://upo.schematy.mf.gov.pl/KSeF/v4-2">
|
||||||
|
<NazwaPodmiotuPrzyjmujacego>Ministerstwo Finansów</NazwaPodmiotuPrzyjmujacego>
|
||||||
|
<NumerReferencyjnySesji>20251128-SO-1DA83DC000-9430B11465-93</NumerReferencyjnySesji>
|
||||||
|
<Uwierzytelnienie>
|
||||||
|
<IdKontekstu>
|
||||||
|
<Nip>9552521552</Nip>
|
||||||
|
</IdKontekstu>
|
||||||
|
<NumerReferencyjnyTokenaKSeF>20251113-EC-2751AC3000-5C5466924B-62</NumerReferencyjnyTokenaKSeF>
|
||||||
|
</Uwierzytelnienie>
|
||||||
|
<NazwaStrukturyLogicznej>1-0E</NazwaStrukturyLogicznej>
|
||||||
|
<KodFormularza>FA (3)</KodFormularza>
|
||||||
|
<Dokument>
|
||||||
|
<NipSprzedawcy>9552521552</NipSprzedawcy>
|
||||||
|
<NumerKSeFDokumentu>9552521552-20251128-010000AA503B-FE</NumerKSeFDokumentu>
|
||||||
|
<NumerFaktury>216577</NumerFaktury>
|
||||||
|
<DataWystawieniaFaktury>2024-04-03</DataWystawieniaFaktury>
|
||||||
|
<DataPrzeslaniaDokumentu>2025-11-28T09:38:18.096+01:00</DataPrzeslaniaDokumentu>
|
||||||
|
<DataNadaniaNumeruKSeF>2025-11-28T09:38:18.192+01:00</DataNadaniaNumeruKSeF>
|
||||||
|
<SkrotDokumentu>wk2TorojBbyNYtDODL1l/KCxQi/rlb3Yss/OEmf5HpE=</SkrotDokumentu>
|
||||||
|
</Dokument>
|
||||||
|
<Signature Id="Signature" xmlns="http://www.w3.org/2000/09/xmldsig#">
|
||||||
|
<SignedInfo>
|
||||||
|
<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
|
||||||
|
<SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" />
|
||||||
|
<Reference URI="">
|
||||||
|
<Transforms>
|
||||||
|
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
|
||||||
|
</Transforms>
|
||||||
|
<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
|
||||||
|
<DigestValue>N/EazXugPjJtobeCSm/ShxeSafdffzHFeRo/BLsngR4=</DigestValue>
|
||||||
|
</Reference>
|
||||||
|
<Reference URI="#SignedProperties" Type="http://uri.etsi.org/01903#SignedProperties">
|
||||||
|
<Transforms>
|
||||||
|
<Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
|
||||||
|
</Transforms>
|
||||||
|
<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
|
||||||
|
<DigestValue>7OYxftjJC1QhSKcWd/oeu7jJaLiO1kFvDCLja8xmNqk=</DigestValue>
|
||||||
|
</Reference>
|
||||||
|
</SignedInfo>
|
||||||
|
<SignatureValue>
|
||||||
|
c87dKdbK3Wf2QpeKEEC0H2LMG92YBH95EbKL6wJTqozOzPq6wqj+06CIPX6bIEz8Szup9xWJlJHX+/xzO4NyMxeiXMQOCAiQ4ZnhPLG2EChopNZYGDbVgOMvfSQBSkHODobG8HH+q4fqueya0V+41CnCSzF8f68fcfVTrV8DfAuw3faKYVg4ddfkvFT+AkBCAZ/JPdYzVVN28np33bd1lHNFJ5wNSpILy9h0FF9iJIiB5RMyvJwxx0HlutrhIMUoId5vUW2XLJKAOLJSSntTJf2S4qjMJcgZr/ZVP9GSaBZPBX09nPWrXOfOwIOuakVfq9N2n+ONZ29ivHpZelMWlA==</SignatureValue>
|
||||||
|
<KeyInfo>
|
||||||
|
<X509Data>
|
||||||
|
<X509Certificate>
|
||||||
|
MIIGWDCCBECgAwIBAgIQY1FHALBG7qGuhTJ/Z7W+yjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJQTDEhMB8GA1UECgwYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMRwwGgYDVQQDDBNDZXJ0dW0gU01JTUUgUlNBIENBMB4XDTI1MDkyOTA2MTEzM1oXDTI3MDkyOTA2MTEzMlowgb4xGTAXBgNVBGETEFZBVFBMLTUyNjAyNTAyNzQxCzAJBgNVBAYTAlBMMRQwEgYDVQQIDAttYXpvd2llY2tpZTERMA8GA1UEBwwIV2Fyc3phd2ExHzAdBgNVBAoMFk1pbmlzdGVyc3R3byBGaW5hbnPDs3cxHzAdBgNVBAMMFk1pbmlzdGVyc3R3byBGaW5hbnPDs3cxKTAnBgkqhkiG9w0BCQEWGmtvbnN1bHRhY2plLmtzZWZAbWYuZ292LnBsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtL+kpQU8d16im5Z3wIEzo7GqfQF8zWEYZqN5JroiX2ePVACR3znmoo4zx0krVEyhtKKB2/oE3Ql2M5sxaRWC/hnBMLj8r7uAJ/v3lQqzGYAf0ImwRy1H+nF4OS0B1U0m7wD2dGXOSQdbPNVru8SZ9Nw6IcsuAsHezy8EagEIffl+zA/GWtAG6Mp8Bxj3K8LkUdZp70Faaeiv25kOuvT7vThePW+qNFhpdktYQT56lGOmWJqKsm0QtdMzAy1o7bfWeAFLfP7DU3Okk/oz9NqUJc8Swih2ligWN/+g/nwFxcEMrQ4GWE3FDQogNz6kySZ7OIqN//kY1SXXb1nQ1MVAXQIDAQABo4IBvzCCAbswDAYDVR0TAQH/BAIwADBBBgNVHR8EOjA4MDagNKAyhjBodHRwOi8vY3NtaW1lcnNhY2EuY3JsLmNlcnR1bS5wbC9jc21pbWVyc2FjYS5jcmwwgYMGCCsGAQUFBwEBBHcwdTAuBggrBgEFBQcwAYYiaHR0cDovL2NzbWltZXJzYWNhLm9jc3AtY2VydHVtLmNvbTBDBggrBgEFBQcwAoY3aHR0cDovL2NzbWltZXJzYWNhLnJlcG9zaXRvcnkuY2VydHVtLnBsL2NzbWltZXJzYWNhLmNlcjAfBgNVHSMEGDAWgBRm+8MPvvS/4JzJq03eRxm9wMqmaDAdBgNVHQ4EFgQUGwFEj1u0JETJoPhJu2cKjErLsUwwTAYDVR0gBEUwQzAJBgdngQwBBQICMDYGCyqEaAGG9ncCZAMBMCcwJQYIKwYBBQUHAgEWGWh0dHBzOi8vd3d3LmNlcnR1bS5wbC9DUFMwHQYDVR0lBBYwFAYIKwYBBQUHAwQGCCsGAQUFBwMCMA4GA1UdDwEB/wQEAwIE8DAlBgNVHREEHjAcgRprb25zdWx0YWNqZS5rc2VmQG1mLmdvdi5wbDANBgkqhkiG9w0BAQsFAAOCAgEAOfiPMXAeftxKk6fMiRud/VZnQixhHqBakVx11ToO7m8qGW3gj2NJDkIoIWVuRIDpz6bg7vRoyPE0mSjYkjxXfb/gaAHVM1e9vGd5cN5esvJVc9wAbLY/e1ZAg7K8IHE+SQYjLsm0ykCQcnnamzEjSD6CArGUmvwJr33OnlNusVdSZ6ar+EexAEbwBUYL+8aeKYwXn+M928h4W831LxYoVv1WaNFfgUJHjFrIUNeSuXHLG0BslrJwJuy26UQaxiM0FSNJQyeSF5Xt3K+V7EuzX4jf3yfOcTwUrt/4Lq6AEH+konMj5OZurS75aA06NbR6L4hUWfdCFRIx561Y2sHeNlggONsvvQ//z0P9IVk65RqDz21DPt688SRJ5BL5wGo9CDn29+G8VEECPRuhe+UAoQOL/9iQ2mReybunuliarQCLGya/+Ig9QRZe9BWhlN7im1B+7kaMmTbGqzmUkiFoabH+hIqqh72o5B05H9U8R0o7PpI9oJZ95edst1y9fCXw5fbly5Y3N3lR78Ui3AkUf6NN6ZtsMixVHZS8qD/QTaXDX4ez8Kz1PkMGrPWYC0L64PZzyWGZmm3RNtvv/uqx4X/L0Kyu5Dp5+H5BJyQAGh+wHJ5TadGuzASThvuB+fXEhwO3Y+bS41G2czc1vf3s9DXSqMZykYVzRbPQ2XUWkzQ=</X509Certificate>
|
||||||
|
</X509Data>
|
||||||
|
</KeyInfo>
|
||||||
|
<Object>
|
||||||
|
<xades:QualifyingProperties Target="#Signature"
|
||||||
|
xmlns:xades="http://uri.etsi.org/01903/v1.3.2#"
|
||||||
|
xmlns="http://www.w3.org/2000/09/xmldsig#">
|
||||||
|
<xades:SignedProperties Id="SignedProperties">
|
||||||
|
<xades:SignedSignatureProperties>
|
||||||
|
<xades:SigningTime>2025-11-28T08:38:18.2360956+00:00</xades:SigningTime>
|
||||||
|
<xades:SigningCertificate>
|
||||||
|
<xades:Cert>
|
||||||
|
<xades:CertDigest>
|
||||||
|
<DigestMethod
|
||||||
|
Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
|
||||||
|
<DigestValue>IFnqTIVQHeVNK0sYY9kn/o3hT2FGIV6U7keiW0zj/Ig=</DigestValue>
|
||||||
|
</xades:CertDigest>
|
||||||
|
<xades:IssuerSerial>
|
||||||
|
<X509IssuerName>CN=Certum SMIME RSA CA, O=Asseco Data Systems
|
||||||
|
S.A., C=PL</X509IssuerName>
|
||||||
|
<X509SerialNumber>132015587733884965165641957463135993546</X509SerialNumber>
|
||||||
|
</xades:IssuerSerial>
|
||||||
|
</xades:Cert>
|
||||||
|
</xades:SigningCertificate>
|
||||||
|
</xades:SignedSignatureProperties>
|
||||||
|
</xades:SignedProperties>
|
||||||
|
</xades:QualifyingProperties>
|
||||||
|
</Object>
|
||||||
|
</Signature>
|
||||||
|
</Potwierdzenie>
|
||||||
47
doc/METRICS.md
Normal file
47
doc/METRICS.md
Normal file
|
|
@ -0,0 +1,47 @@
|
||||||
|
# Metrics
|
||||||
|
|
||||||
|
**Konzept Verworfen!**
|
||||||
|
|
||||||
|
## Background:
|
||||||
|
|
||||||
|
https://blog.imixs.org/2025/02/02/business-intelligence-built-on-metrics-part-ii/
|
||||||
|
|
||||||
|
**Die Implementierung war Teil von Version 1.3.1!**
|
||||||
|
|
||||||
|
## Testing
|
||||||
|
|
||||||
|
Curl
|
||||||
|
|
||||||
|
$ curl -s http://localhost:9990/metrics
|
||||||
|
|
||||||
|
|
||||||
|
$ curl -s http://localhost:9990/metrics | grep BP4218
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
application_dbtr_balance{country="", currency="EUR",department="Import Zellulose/Holz",id="BP4218",name="Rayonier Advanced Materials",type="dbtr"} 60911.28
|
||||||
|
application_dbtr_balance{country="US",currency="EUR",department="Import Zellulose/Holz",id="BP4218",name="Rayonier Advanced Materials",type="dbtr"} 257955.41
|
||||||
|
|
||||||
|
|
||||||
|
application_dbtr_sales{country="", currency="EUR",department="Import Zellulose/Holz",id="BP4218",name="Rayonier Advanced Materials",type="dbtr"} 60911.28
|
||||||
|
application_dbtr_sales{country="US", currency="EUR",department="Import Zellulose/Holz",id="BP4218",name="Rayonier Advanced Materials",type="dbtr"} 279028.91
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
Rayonier Advanced Materials
|
||||||
|
|
||||||
|
Debitor 74218
|
||||||
|
|
||||||
|
293.535,19 EUR
|
||||||
|
|
||||||
|
Metric saldo: 318866.69
|
||||||
|
|
||||||
|
# Jetzt berechnen wir neu...
|
||||||
|
|
||||||
|
https://alexander-logistics.office-workflow.de/api/metrics/dbtr/rebuild
|
||||||
|
|
||||||
|
application_dbtr_balance{country="", currency="EUR",department="Import Zellulose/Holz",id="BP4218",name="Rayonier Advanced Materials",type="dbtr"} 60911.28
|
||||||
|
application_dbtr_balance{country="US",currency="EUR",department="Import Zellulose/Holz",id="BP4218",name="Rayonier Advanced Materials",type="dbtr"} 364457.85
|
||||||
|
application_dbtr_sales{country="", currency="EUR",department="Import Zellulose/Holz",id="BP4218",name="Rayonier Advanced Materials",type="dbtr"} 60911.28
|
||||||
|
application_dbtr_sales{country="US", currency="EUR",department="Import Zellulose/Holz",id="BP4218",name="Rayonier Advanced Materials",type="dbtr"} 364457.85
|
||||||
69
doc/OP_MODULE.md
Normal file
69
doc/OP_MODULE.md
Normal file
|
|
@ -0,0 +1,69 @@
|
||||||
|
|
||||||
|
Frau Mahner
|
||||||
|
|
||||||
|
sollen wir üfung auf Übereinstimmung Zahlugnsbetrag und saldo machen?
|
||||||
|
|
||||||
|
|
||||||
|
Sonder Fall
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
FM Systemmöbel GmbH & Co. KG
|
||||||
|
|
||||||
|
|
||||||
|
Hallo Frau Beste,
|
||||||
|
|
||||||
|
anbei senden wir Ihnen eine OP Beispiel-Datei aus Imixs, welche die offenen Rechnungen enhält. Diese Datei ist analog zu der Datei "OPD28.txt" die Sie täglich von Frau Mahner erhalten.
|
||||||
|
|
||||||
|
Diese Datei unterscheidet sich zu der DATEV Datei, welche Frau Mahner bisher schickt, wie folgt:
|
||||||
|
|
||||||
|
- Die Datei enthält nur Rechnungen und keine Zahlungseingänge.
|
||||||
|
- Wir exportieren nur die ersten 12 Spalten (A - L), d.h:
|
||||||
|
- kein Gegenkonto
|
||||||
|
- keine Fälligkeit/Zahlungsbedinung
|
||||||
|
- keine Rechnungsposition
|
||||||
|
- keine Umsatzsteuer
|
||||||
|
|
||||||
|
|
||||||
|
Wir haben in das Beispiel bewusst einen Sonderfall für den Debitor 180124 eingebaut.
|
||||||
|
Dieser hat 2 Offenen Rechnungen:
|
||||||
|
|
||||||
|
RG-Nr Betrag
|
||||||
|
180124 2.900,00 EUR
|
||||||
|
180127 1.600,00 USD (Kurs 1.018102)
|
||||||
|
|
||||||
|
Es wurden 2 Teilzahlungen a 500 EUR bzw. USD bezahlt.
|
||||||
|
|
||||||
|
Dies stellt sich dann wie folgt dar:
|
||||||
|
|
||||||
|
10968 Papierfabrik Wattens GmbH & Co. KG 180124 24082022 23102022 2900 0,00 2400 S 0,000000 0,00
|
||||||
|
10968 Papierfabrik Wattens GmbH & Co. KG 180127 24082022 23102022 1600 0,00 1100 S USD 1.018102 1571.55
|
||||||
|
|
||||||
|
|
||||||
|
Bitte bestätigen Sie uns das diese Format von Ihnen so verarbeitet werden kann.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Wir improtieren pro Monat und Tag die Rechungen
|
||||||
|
|
||||||
|
wir exporiterne aber immer alle offneen Rechnungen egeal von wlecher Period
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Demo
|
||||||
|
|
||||||
|
einfach:
|
||||||
|
-----------
|
||||||
|
Dieffenbacher GmbH
|
||||||
|
Drewsen Spezialpapiere GmbH & Co. KG
|
||||||
|
|
||||||
|
besonders
|
||||||
|
-------------
|
||||||
|
Maersk Deutschland A/S & Co. KG
|
||||||
|
Papierfabrik Wattens GmbH & Co. KG
|
||||||
|
|
||||||
495
doc/cargosoft/CargoSoftInvoice-2023.1.xsd
Normal file
495
doc/cargosoft/CargoSoftInvoice-2023.1.xsd
Normal file
|
|
@ -0,0 +1,495 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!-- Mit XMLSpy v2013 sp1 (x64) (http://www.altova.com) von Uwe Droste (CargoSoft GmbH) bearbeitet -->
|
||||||
|
<!-- edited with XMLSpy v2018 rel. 2 sp1 (x64) (http://www.altova.com) by (CargoSoft GmbH) -->
|
||||||
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
|
||||||
|
attributeFormDefault="unqualified">
|
||||||
|
<xs:include schemaLocation="https://xsd.cargosoft.de/CargoSoftFile/CargoSoftFile-2023.1.xsd"/>
|
||||||
|
<xs:include schemaLocation="https://xsd.cargosoft.de/CargoSoftCommon/CargoSoftCommon-2023.1.xsd"/>
|
||||||
|
<xs:element name="Invoices">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Illustration of invoices in CargoSoft</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="Message" type="Message"/>
|
||||||
|
<xs:element name="Invoice" maxOccurs="unbounded">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="InvoiceHeader">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="Client" type="CodeAndDescription">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.mandant</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafako_t.mandant</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Branch" type="CodeAndDescription" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.niederlassung</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafako_t.niederlassung</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="InvoiceNumber" type="xs:integer" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>On Import: If null, CargoSoft will generate the
|
||||||
|
invoice number from a number range based on the invoice type On
|
||||||
|
Export: CS will send this number eafako_t.rechnr
|
||||||
|
</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafako_t.rechnr</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="InvoiceType" type="CodeAndDescription">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>invoice, creditnote, cancellationeafako_t.art_kennz
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="InvoiceCurrency" type="Currency" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.fk_wg_sch</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="InvoiceAmount" type="InvoiceAmount"/>
|
||||||
|
<xs:element name="CollectionInvoice" type="xs:boolean" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>true/falseeafako_t.bu_per</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafako_t.bu_per</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="BookingInformation" type="xs:string" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.buchungstext</xs:documentation>
|
||||||
|
<xs:documentation>db field:eafako_t.buchungstext</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="BookingPeriod" type="xs:string" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>yyyymm: etc: 201002eafako_t.bu_per</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafako_t.bu_per</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Booked" type="xs:boolean" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>true/falseeafako_t.gebucht</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafako_t.bu_per</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Cancelled" type="xs:boolean" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>true/falseeafako_t.storniert</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafako_t.bu_per</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="CancellationInvoiceNumber" type="xs:integer" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.beleg_storniert</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafako_t.rechnr</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Correction" type="xs:boolean" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>true/falseeafako_t.storniert</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafako_t.bu_per</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="CorrectionInvoiceNumber" type="xs:integer" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.beleg_korrigiert</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafako_t.rechnr</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Allocation" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.kontierung</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafako_t.bu_per</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:enumeration value="COST"/>
|
||||||
|
<xs:enumeration value="REVENUE"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="AlreadyPaid" type="xs:boolean" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>true/falseeafako_t.lr_bezahlt</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="SecuredROE" type="xs:boolean" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>true/falseeafako_t.kurs_sicher</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="CostUnit" type="CodeAndDescription" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.fk_kst_mc</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Barcode" type="xs:string" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.barcode</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="InvoiceDate" type="xs:dateTime">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.redatum</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafako_t.redatum</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="InvoiceAddress" type="InvoiceAddressType"
|
||||||
|
maxOccurs="unbounded"/>
|
||||||
|
<xs:element name="PaymentConditions" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Payment conditions</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="PaymentCondition">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Payment condition codeeafako_t.fk_zb_kz
|
||||||
|
</xs:documentation>
|
||||||
|
<xs:documentation>dbfield: eafako_t.fk_zb_kz
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:complexContent>
|
||||||
|
<xs:extension base="CodeAndDescription"/>
|
||||||
|
</xs:complexContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="NumberOfDays" type="xs:integer" minOccurs="0"/>
|
||||||
|
<xs:element name="DueDate" type="xs:dateTime" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.valdatum</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafako_t.val_datum
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="CreationDate" type="DateTimeType" minOccurs="0"/>
|
||||||
|
<xs:element name="LastUpdateInformation" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Information about date, time and
|
||||||
|
usereafako_t.fk_mitarb_logineafako_t.systemdateafako_t.systemzeit
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="UpdateDate" type="xs:dateTime" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation/>
|
||||||
|
<xs:documentation>db field: eafako_t.system_datum
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="UpdateTime" type="xs:time" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation/>
|
||||||
|
<xs:documentation>db field: eafako-t.systemzeit
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="User" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>User information</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="Login" type="xs:string" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Optional will not be
|
||||||
|
processed
|
||||||
|
</xs:documentation>
|
||||||
|
<xs:documentation>db field:
|
||||||
|
eafako_t.fk_mitarb_login
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Name" type="xs:string" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Optional will not be
|
||||||
|
processed
|
||||||
|
</xs:documentation>
|
||||||
|
<xs:documentation/>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Email" type="xs:string" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Optional will not be
|
||||||
|
processed
|
||||||
|
</xs:documentation>
|
||||||
|
<xs:documentation/>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Telephone" type="xs:string"
|
||||||
|
minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Optional will not be
|
||||||
|
processed
|
||||||
|
</xs:documentation>
|
||||||
|
<xs:documentation/>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Fax" type="xs:string" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Optional will not be
|
||||||
|
processed
|
||||||
|
</xs:documentation>
|
||||||
|
<xs:documentation/>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="OrderData" type="OrderDataType" minOccurs="0"/>
|
||||||
|
<xs:element name="References" type="References" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.rech_referenz</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Attachments" minOccurs="0">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence maxOccurs="unbounded">
|
||||||
|
<xs:element name="Attachment" type="AttachmentType"/>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="AdditionalFields" type="AdditionalFieldType" minOccurs="0"/>
|
||||||
|
<xs:element name="PerformanceDate" type="xs:dateTime" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.leistdatum</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafako_t.leistdatum</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:attribute name="ID" type="xs:integer">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>fibuko_t oder eafako_t</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="InvoiceRows">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence maxOccurs="unbounded">
|
||||||
|
<xs:element name="InvoiceRow">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="Row" type="xs:integer" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafapo_t.zeile</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafapo_t.zeile
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="FileNumber" type="xs:string" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafapo_t.fk_eakopf_posnr
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="BillingCode" type="CodeAndDescription"
|
||||||
|
minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Billing codeseafapo_t.fk_aart_nr
|
||||||
|
</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafapo_t.fk_aart_nr
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="BillingTexts" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Billing Text (5 rows possible)
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="BillingText" type="xs:string"
|
||||||
|
minOccurs="0" maxOccurs="5">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Optional will not be
|
||||||
|
processed
|
||||||
|
</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafapo_t.abr_text,
|
||||||
|
eafapo_t.abr_text2,
|
||||||
|
eafapo_t.abr_text3,eafapo_t.abr_text4,
|
||||||
|
eafapo_t.abr_text5
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="InvoiceAmount" type="InvoiceAmount"/>
|
||||||
|
<xs:element name="CostUnit" type="CodeAndDescription" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.fk_kst_mc</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="ActivityType" type="CodeAndDescription"
|
||||||
|
minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Activity type codeeafapo_t.fk_lart_nr
|
||||||
|
</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafapo_t.fk_lart_nr
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="BookingInformation" type="xs:string"
|
||||||
|
minOccurs="0"/>
|
||||||
|
<xs:element name="ImpersonalAccountNumber" type="CodeAndDescription"
|
||||||
|
minOccurs="0"/>
|
||||||
|
<xs:element name="DifferingBookingPeriod" type="xs:string"
|
||||||
|
minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>yyyymm: etc: 201002eafako_t.bu_per
|
||||||
|
</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafako_t.bu_per
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="ATCNumber" type="xs:string" minOccurs="0"/>
|
||||||
|
<xs:element name="AdditionalFields" type="AdditionalFieldType"
|
||||||
|
minOccurs="0"/>
|
||||||
|
<xs:element name="SinglePrice" type="xs:decimal" minOccurs="0"/>
|
||||||
|
<xs:element name="Accrualnumber" type="xs:integer" minOccurs="0"/>
|
||||||
|
<xs:element name="InvoiceAddress" type="InvoiceAddressType"
|
||||||
|
minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
<xs:element name="OrderData" type="OrderDataType" minOccurs="0"/>
|
||||||
|
<xs:element name="ShipExchangeRate" minOccurs="0">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="Currency" type="Currency"
|
||||||
|
minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Currency Code of shiip
|
||||||
|
exchange rate, eafapo_t.fk_wg_schiffskurs
|
||||||
|
</xs:documentation>
|
||||||
|
<xs:documentation>db_field: eafako_t.fk_wg_sch
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="ExchangeRate" type="xs:double"
|
||||||
|
minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Based on the domestic
|
||||||
|
currency, eafapo_t.schiffskurs
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="InverseRate" type="xs:boolean"
|
||||||
|
minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Inverse rate is the opposite
|
||||||
|
ratio of the exchange rate, value:
|
||||||
|
true/false , eafapo_t.schiffskurs_invers
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="CargoSoftFiles" minOccurs="0">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence maxOccurs="unbounded">
|
||||||
|
<xs:element ref="File"/>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:attribute name="version" type="xs:string"/>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:complexType name="OrderDataType">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="FileNumber" type="xs:string" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.fk_eakopf_posnr</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="ModeOfTransport" type="xs:string" minOccurs="0"/>
|
||||||
|
<xs:element name="OrderDirection" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.bereich</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:enumeration value="IMPORT"/>
|
||||||
|
<xs:enumeration value="EXPORT"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="MainDepartment" type="xs:string" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eakopf_t.hauptabteilung</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="SubDepartment" type="xs:string" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eakopf_t.unterabteilung</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="NumberOfGoods" type="xs:integer" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.anzahl_kolli</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="DescriptionOfGoods" type="xs:string" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.inhalt</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="WeightOfGoods" type="xs:double" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.gewicht</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="VolumeOfGoods" type="xs:double" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.cbm</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="ChargableWeightOfGoods" type="xs:double" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.frachtpfl_gewicht</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="NumberOfContainers20" type="xs:integer" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.cont_20_ctr</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="NumberOfContainers40" type="xs:integer" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.cont_40_ctr</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="NumberOfContainers45" type="xs:integer" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.cont_45_ctr</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="AdditionalFields" type="AdditionalFieldType" minOccurs="0"/>
|
||||||
|
<xs:element name="Waybill" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>AWB or BL Number</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:schema>
|
||||||
495
doc/cargosoft/neue Schnittstelle/CargoSoftInvoice-2024.1.xsd
Normal file
495
doc/cargosoft/neue Schnittstelle/CargoSoftInvoice-2024.1.xsd
Normal file
|
|
@ -0,0 +1,495 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!-- Mit XMLSpy v2013 sp1 (x64) (http://www.altova.com) von Uwe Droste (CargoSoft GmbH) bearbeitet -->
|
||||||
|
<!-- edited with XMLSpy v2018 rel. 2 sp1 (x64) (http://www.altova.com) by (CargoSoft GmbH) -->
|
||||||
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
|
||||||
|
attributeFormDefault="unqualified">
|
||||||
|
<xs:include schemaLocation="https://xsd.cargosoft.de/CargoSoftFile/CargoSoftFile-2023.1.xsd"/>
|
||||||
|
<xs:include schemaLocation="https://xsd.cargosoft.de/CargoSoftCommon/CargoSoftCommon-2023.1.xsd"/>
|
||||||
|
<xs:element name="Invoices">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Illustration of invoices in CargoSoft</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="Message" type="Message"/>
|
||||||
|
<xs:element name="Invoice" maxOccurs="unbounded">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="InvoiceHeader">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="Client" type="CodeAndDescription">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.mandant</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafako_t.mandant</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Branch" type="CodeAndDescription" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.niederlassung</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafako_t.niederlassung</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="InvoiceNumber" type="xs:integer" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>On Import: If null, CargoSoft will generate the
|
||||||
|
invoice number from a number range based on the invoice type On
|
||||||
|
Export: CS will send this number eafako_t.rechnr
|
||||||
|
</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafako_t.rechnr</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="InvoiceType" type="CodeAndDescription">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>invoice, creditnote, cancellationeafako_t.art_kennz
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="InvoiceCurrency" type="Currency" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.fk_wg_sch</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="InvoiceAmount" type="InvoiceAmount"/>
|
||||||
|
<xs:element name="CollectionInvoice" type="xs:boolean" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>true/falseeafako_t.bu_per</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafako_t.bu_per</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="BookingInformation" type="xs:string" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.buchungstext</xs:documentation>
|
||||||
|
<xs:documentation>db field:eafako_t.buchungstext</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="BookingPeriod" type="xs:string" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>yyyymm: etc: 201002eafako_t.bu_per</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafako_t.bu_per</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Booked" type="xs:boolean" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>true/falseeafako_t.gebucht</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafako_t.bu_per</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Cancelled" type="xs:boolean" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>true/falseeafako_t.storniert</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafako_t.bu_per</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="CancellationInvoiceNumber" type="xs:integer" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.beleg_storniert</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafako_t.rechnr</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Correction" type="xs:boolean" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>true/falseeafako_t.storniert</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafako_t.bu_per</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="CorrectionInvoiceNumber" type="xs:integer" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.beleg_korrigiert</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafako_t.rechnr</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Allocation" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.kontierung</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafako_t.bu_per</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:enumeration value="COST"/>
|
||||||
|
<xs:enumeration value="REVENUE"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="AlreadyPaid" type="xs:boolean" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>true/falseeafako_t.lr_bezahlt</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="SecuredROE" type="xs:boolean" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>true/falseeafako_t.kurs_sicher</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="CostUnit" type="CodeAndDescription" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.fk_kst_mc</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Barcode" type="xs:string" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.barcode</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="InvoiceDate" type="xs:dateTime">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.redatum</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafako_t.redatum</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="InvoiceAddress" type="InvoiceAddressType"
|
||||||
|
maxOccurs="unbounded"/>
|
||||||
|
<xs:element name="PaymentConditions" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Payment conditions</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="PaymentCondition">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Payment condition codeeafako_t.fk_zb_kz
|
||||||
|
</xs:documentation>
|
||||||
|
<xs:documentation>dbfield: eafako_t.fk_zb_kz
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:complexContent>
|
||||||
|
<xs:extension base="CodeAndDescription"/>
|
||||||
|
</xs:complexContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="NumberOfDays" type="xs:integer" minOccurs="0"/>
|
||||||
|
<xs:element name="DueDate" type="xs:dateTime" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.valdatum</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafako_t.val_datum
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="CreationDate" type="DateTimeType" minOccurs="0"/>
|
||||||
|
<xs:element name="LastUpdateInformation" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Information about date, time and
|
||||||
|
usereafako_t.fk_mitarb_logineafako_t.systemdateafako_t.systemzeit
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="UpdateDate" type="xs:dateTime" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation/>
|
||||||
|
<xs:documentation>db field: eafako_t.system_datum
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="UpdateTime" type="xs:time" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation/>
|
||||||
|
<xs:documentation>db field: eafako-t.systemzeit
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="User" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>User information</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="Login" type="xs:string" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Optional will not be
|
||||||
|
processed
|
||||||
|
</xs:documentation>
|
||||||
|
<xs:documentation>db field:
|
||||||
|
eafako_t.fk_mitarb_login
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Name" type="xs:string" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Optional will not be
|
||||||
|
processed
|
||||||
|
</xs:documentation>
|
||||||
|
<xs:documentation/>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Email" type="xs:string" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Optional will not be
|
||||||
|
processed
|
||||||
|
</xs:documentation>
|
||||||
|
<xs:documentation/>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Telephone" type="xs:string"
|
||||||
|
minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Optional will not be
|
||||||
|
processed
|
||||||
|
</xs:documentation>
|
||||||
|
<xs:documentation/>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Fax" type="xs:string" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Optional will not be
|
||||||
|
processed
|
||||||
|
</xs:documentation>
|
||||||
|
<xs:documentation/>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="OrderData" type="OrderDataType" minOccurs="0"/>
|
||||||
|
<xs:element name="References" type="References" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.rech_referenz</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Attachments" minOccurs="0">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence maxOccurs="unbounded">
|
||||||
|
<xs:element name="Attachment" type="AttachmentType"/>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="AdditionalFields" type="AdditionalFieldType" minOccurs="0"/>
|
||||||
|
<xs:element name="PerformanceDate" type="xs:dateTime" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.leistdatum</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafako_t.leistdatum</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:attribute name="ID" type="xs:integer">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>fibuko_t oder eafako_t</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="InvoiceRows">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence maxOccurs="unbounded">
|
||||||
|
<xs:element name="InvoiceRow">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="Row" type="xs:integer" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafapo_t.zeile</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafapo_t.zeile
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="FileNumber" type="xs:string" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafapo_t.fk_eakopf_posnr
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="BillingCode" type="CodeAndDescription"
|
||||||
|
minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Billing codeseafapo_t.fk_aart_nr
|
||||||
|
</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafapo_t.fk_aart_nr
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="BillingTexts" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Billing Text (5 rows possible)
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="BillingText" type="xs:string"
|
||||||
|
minOccurs="0" maxOccurs="5">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Optional will not be
|
||||||
|
processed
|
||||||
|
</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafapo_t.abr_text,
|
||||||
|
eafapo_t.abr_text2,
|
||||||
|
eafapo_t.abr_text3,eafapo_t.abr_text4,
|
||||||
|
eafapo_t.abr_text5
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="InvoiceAmount" type="InvoiceAmount"/>
|
||||||
|
<xs:element name="CostUnit" type="CodeAndDescription" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.fk_kst_mc</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="ActivityType" type="CodeAndDescription"
|
||||||
|
minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Activity type codeeafapo_t.fk_lart_nr
|
||||||
|
</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafapo_t.fk_lart_nr
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="BookingInformation" type="xs:string"
|
||||||
|
minOccurs="0"/>
|
||||||
|
<xs:element name="ImpersonalAccountNumber" type="CodeAndDescription"
|
||||||
|
minOccurs="0"/>
|
||||||
|
<xs:element name="DifferingBookingPeriod" type="xs:string"
|
||||||
|
minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>yyyymm: etc: 201002eafako_t.bu_per
|
||||||
|
</xs:documentation>
|
||||||
|
<xs:documentation>db field: eafako_t.bu_per
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="ATCNumber" type="xs:string" minOccurs="0"/>
|
||||||
|
<xs:element name="AdditionalFields" type="AdditionalFieldType"
|
||||||
|
minOccurs="0"/>
|
||||||
|
<xs:element name="SinglePrice" type="xs:decimal" minOccurs="0"/>
|
||||||
|
<xs:element name="Accrualnumber" type="xs:integer" minOccurs="0"/>
|
||||||
|
<xs:element name="InvoiceAddress" type="InvoiceAddressType"
|
||||||
|
minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
<xs:element name="OrderData" type="OrderDataType" minOccurs="0"/>
|
||||||
|
<xs:element name="ShipExchangeRate" minOccurs="0">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="Currency" type="Currency"
|
||||||
|
minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Currency Code of shiip
|
||||||
|
exchange rate, eafapo_t.fk_wg_schiffskurs
|
||||||
|
</xs:documentation>
|
||||||
|
<xs:documentation>db_field: eafako_t.fk_wg_sch
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="ExchangeRate" type="xs:double"
|
||||||
|
minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Based on the domestic
|
||||||
|
currency, eafapo_t.schiffskurs
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="InverseRate" type="xs:boolean"
|
||||||
|
minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Inverse rate is the opposite
|
||||||
|
ratio of the exchange rate, value:
|
||||||
|
true/false , eafapo_t.schiffskurs_invers
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="CargoSoftFiles" minOccurs="0">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence maxOccurs="unbounded">
|
||||||
|
<xs:element ref="File"/>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:attribute name="version" type="xs:string"/>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:complexType name="OrderDataType">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="FileNumber" type="xs:string" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.fk_eakopf_posnr</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="ModeOfTransport" type="xs:string" minOccurs="0"/>
|
||||||
|
<xs:element name="OrderDirection" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.bereich</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:enumeration value="IMPORT"/>
|
||||||
|
<xs:enumeration value="EXPORT"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="MainDepartment" type="xs:string" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eakopf_t.hauptabteilung</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="SubDepartment" type="xs:string" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eakopf_t.unterabteilung</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="NumberOfGoods" type="xs:integer" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.anzahl_kolli</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="DescriptionOfGoods" type="xs:string" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.inhalt</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="WeightOfGoods" type="xs:double" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.gewicht</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="VolumeOfGoods" type="xs:double" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.cbm</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="ChargableWeightOfGoods" type="xs:double" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.frachtpfl_gewicht</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="NumberOfContainers20" type="xs:integer" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.cont_20_ctr</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="NumberOfContainers40" type="xs:integer" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.cont_40_ctr</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="NumberOfContainers45" type="xs:integer" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>eafako_t.cont_45_ctr</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="AdditionalFields" type="AdditionalFieldType" minOccurs="0"/>
|
||||||
|
<xs:element name="Waybill" minOccurs="0">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>AWB or BL Number</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:schema>
|
||||||
200
doc/cargosoft/neue Schnittstelle/Sample_File_InvoiceExport.xml
Normal file
200
doc/cargosoft/neue Schnittstelle/Sample_File_InvoiceExport.xml
Normal file
|
|
@ -0,0 +1,200 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--XML-Beispieldatei von XMLSpy generiert v2013 sp1 (x64) (http://www.altova.com)-->
|
||||||
|
<Invoices xsi:noNamespaceSchemaLocation="CargoSoftInvoice_2.0.4.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
|
<Message>
|
||||||
|
<SenderID>CARGOSOFT</SenderID>
|
||||||
|
<ReceiverID>CUSTOMER</ReceiverID>
|
||||||
|
<Timezone>UTC</Timezone>
|
||||||
|
<MessageID>1</MessageID>
|
||||||
|
<MessageDate>
|
||||||
|
<DateTime>2013-07-05T08:17:52</DateTime>
|
||||||
|
</MessageDate>
|
||||||
|
</Message>
|
||||||
|
<Invoice>
|
||||||
|
<InvoiceHeader>
|
||||||
|
<Client>
|
||||||
|
<Description>Cargosoft GmbH</Description>
|
||||||
|
<Codes>
|
||||||
|
<Code Type="cs">001</Code>
|
||||||
|
</Codes>
|
||||||
|
</Client>
|
||||||
|
<Branch>
|
||||||
|
<Description>CargoSoft GmbH</Description>
|
||||||
|
<Codes>
|
||||||
|
<Code Type="cs">BRE</Code>
|
||||||
|
</Codes>
|
||||||
|
</Branch>
|
||||||
|
<InvoiceNumber>889456</InvoiceNumber>
|
||||||
|
<InvoiceType>
|
||||||
|
<Description>Ausgangsrechnung</Description>
|
||||||
|
<Codes>
|
||||||
|
<Code Type="cs">R</Code>
|
||||||
|
</Codes>
|
||||||
|
</InvoiceType>
|
||||||
|
<InvoiceCurrency>
|
||||||
|
<Description>EURO</Description>
|
||||||
|
<Codes>
|
||||||
|
<Code Type="cs">EUR</Code>
|
||||||
|
</Codes>
|
||||||
|
</InvoiceCurrency>
|
||||||
|
<InvoiceAmount>
|
||||||
|
<NetAmount>
|
||||||
|
<Amount isDomesticCurrency="true">
|
||||||
|
<Currency>
|
||||||
|
<Description>EURO</Description>
|
||||||
|
<Codes>
|
||||||
|
<Code Type="cs">EUR</Code>
|
||||||
|
</Codes>
|
||||||
|
</Currency>
|
||||||
|
<Value>100.00</Value>
|
||||||
|
<ExchangeRate>0.00</ExchangeRate>
|
||||||
|
</Amount>
|
||||||
|
</NetAmount>
|
||||||
|
<VATInformation>
|
||||||
|
<VAT>
|
||||||
|
<Description>steuerfrei</Description>
|
||||||
|
<Codes>
|
||||||
|
<Code Type="cs">0</Code>
|
||||||
|
</Codes>
|
||||||
|
<VATRate>0.00</VATRate>
|
||||||
|
</VAT>
|
||||||
|
<VATAmount>
|
||||||
|
<Amount isDomesticCurrency="true">
|
||||||
|
<Currency>
|
||||||
|
<Description>EURO</Description>
|
||||||
|
<Codes>
|
||||||
|
<Code Type="cs">EUR</Code>
|
||||||
|
</Codes>
|
||||||
|
</Currency>
|
||||||
|
<Value>0.00</Value>
|
||||||
|
<ExchangeRate>0.00</ExchangeRate>
|
||||||
|
</Amount>
|
||||||
|
</VATAmount>
|
||||||
|
</VATInformation>
|
||||||
|
</InvoiceAmount>
|
||||||
|
<CollectionInvoice>false</CollectionInvoice>
|
||||||
|
<BookingInformation>Buchungstext</BookingInformation>
|
||||||
|
<BookingPeriod>201307</BookingPeriod>
|
||||||
|
<Cancelled>false</Cancelled>
|
||||||
|
<Allocation>COST</Allocation>
|
||||||
|
<CostUnit>
|
||||||
|
<Description>Export Allgemein</Description>
|
||||||
|
<Codes>
|
||||||
|
<Code Type="cs">130</Code>
|
||||||
|
</Codes>
|
||||||
|
</CostUnit>
|
||||||
|
<Barcode>Barcode</Barcode>
|
||||||
|
<InvoiceDate>2013-07-05T00:00:00Z</InvoiceDate>
|
||||||
|
<InvoiceAddress type="RECEIVER">
|
||||||
|
<Codes>
|
||||||
|
<Code Type="cs">G532939</Code>
|
||||||
|
</Codes>
|
||||||
|
<Formated>
|
||||||
|
<Name>Cargosoft GmbH</Name>
|
||||||
|
<Street>Linzer Straße 3</Street>
|
||||||
|
<PostalCode>28359</PostalCode>
|
||||||
|
<City>Bremen</City>
|
||||||
|
<Country>
|
||||||
|
<CountryCode>DE</CountryCode>
|
||||||
|
<Name>Deutschland</Name>
|
||||||
|
</Country>
|
||||||
|
</Formated>
|
||||||
|
<References>
|
||||||
|
<Reference type="VAT-NO">XX</Reference>
|
||||||
|
<Reference type="GLOBAL-ID">XX</Reference>
|
||||||
|
<Reference type="Bankverbindung1">XX</Reference>
|
||||||
|
<Reference type="Bankname">XX</Reference>
|
||||||
|
<Reference type="Bankkontonummer">XX</Reference>
|
||||||
|
<Reference type="SwiftCode">XX</Reference>
|
||||||
|
</References>
|
||||||
|
</InvoiceAddress>
|
||||||
|
<PaymentConditions>
|
||||||
|
<PaymentCondition>
|
||||||
|
<Description>Zahlbar innerhalb von 30 Tagen</Description>
|
||||||
|
<Codes>
|
||||||
|
<Code Type="cs">30</Code>
|
||||||
|
</Codes>
|
||||||
|
</PaymentCondition>
|
||||||
|
<NumberOfDays>30</NumberOfDays>
|
||||||
|
<DueDate>2013-07-30T00:00:00Z</DueDate>
|
||||||
|
</PaymentConditions>
|
||||||
|
<LastUpdateInformation>
|
||||||
|
<UpdateDate>2013-07-05T00:00:00Z</UpdateDate>
|
||||||
|
<UpdateTime>14:20:00.0Z</UpdateTime>
|
||||||
|
<User>
|
||||||
|
<Login>hmeyer</Login>
|
||||||
|
<Name>Hans Meyer</Name>
|
||||||
|
<Email>hmeyer@cargosoft.de</Email>
|
||||||
|
<Telephone>+49 421 98500 0</Telephone>
|
||||||
|
<Fax>+49 421 98500 191</Fax>
|
||||||
|
</User>
|
||||||
|
</LastUpdateInformation>
|
||||||
|
<References>
|
||||||
|
<Reference type="cs">R123 G467</Reference>
|
||||||
|
</References>
|
||||||
|
</InvoiceHeader>
|
||||||
|
<InvoiceRows>
|
||||||
|
<InvoiceRow>
|
||||||
|
<Row>1</Row>
|
||||||
|
<FileNumber>1234567847</FileNumber>
|
||||||
|
<BillingCode>
|
||||||
|
<Description> HANDLING FEE</Description>
|
||||||
|
<Codes>
|
||||||
|
<Code Type="cs">HAND</Code>
|
||||||
|
</Codes>
|
||||||
|
</BillingCode>
|
||||||
|
<BillingTexts>
|
||||||
|
<BillingText>HANDLING FEE</BillingText>
|
||||||
|
</BillingTexts>
|
||||||
|
<InvoiceAmount>
|
||||||
|
<NetAmount>
|
||||||
|
<Amount isDomesticCurrency="true">
|
||||||
|
<Currency>
|
||||||
|
<Description>EURO</Description>
|
||||||
|
<Codes>
|
||||||
|
<Code Type="cs">EUR</Code>
|
||||||
|
</Codes>
|
||||||
|
</Currency>
|
||||||
|
<Value>100.00</Value>
|
||||||
|
<ExchangeRate>0.00</ExchangeRate>
|
||||||
|
</Amount>
|
||||||
|
</NetAmount>
|
||||||
|
<VATInformation>
|
||||||
|
<VAT>
|
||||||
|
<Description>steuerfrei</Description>
|
||||||
|
<Codes>
|
||||||
|
<Code Type="cs">0</Code>
|
||||||
|
</Codes>
|
||||||
|
<VATRate>0.00</VATRate>
|
||||||
|
</VAT>
|
||||||
|
<VATAmount>
|
||||||
|
<Amount isDomesticCurrency="true">
|
||||||
|
<Currency>
|
||||||
|
<Description>EURO</Description>
|
||||||
|
<Codes>
|
||||||
|
<Code Type="cs">EUR</Code>
|
||||||
|
</Codes>
|
||||||
|
</Currency>
|
||||||
|
<Value>0.00</Value>
|
||||||
|
<ExchangeRate>0.00</ExchangeRate>
|
||||||
|
</Amount>
|
||||||
|
</VATAmount>
|
||||||
|
</VATInformation>
|
||||||
|
</InvoiceAmount>
|
||||||
|
<CostUnit>
|
||||||
|
<Description>Export Allgemein</Description>
|
||||||
|
<Codes>
|
||||||
|
<Code Type="cs">130</Code>
|
||||||
|
</Codes>
|
||||||
|
</CostUnit>
|
||||||
|
<ActivityType>
|
||||||
|
<Description>Handling</Description>
|
||||||
|
<Codes>
|
||||||
|
<Code Type="cs">HAND</Code>
|
||||||
|
</Codes>
|
||||||
|
</ActivityType>
|
||||||
|
<BookingInformation>Buchungstext</BookingInformation>
|
||||||
|
</InvoiceRow>
|
||||||
|
</InvoiceRows>
|
||||||
|
</Invoice>
|
||||||
|
</Invoices>
|
||||||
Binary file not shown.
69
doc/cargosoft/neue Schnittstelle/steuerbescheid-beispiel.xml
Normal file
69
doc/cargosoft/neue Schnittstelle/steuerbescheid-beispiel.xml
Normal file
|
|
@ -0,0 +1,69 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--XML-Beispieldatei von XMLSpy generiert v2013 sp1
|
||||||
|
(x64) (http://www.altova.com)-->
|
||||||
|
<CargoSoftEFile version="String" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:noNamespaceSchemaLocation="CargoSoftEFile-2021.4.xsd">
|
||||||
|
<Message>
|
||||||
|
<SenderID>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</SenderID>
|
||||||
|
<ReceiverID>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</ReceiverID>
|
||||||
|
<Timezone>String</Timezone>
|
||||||
|
<MessageID>String</MessageID>
|
||||||
|
<MessageDate>
|
||||||
|
<DateTime>2001-12-17T09:30:47Z</DateTime>
|
||||||
|
</MessageDate>
|
||||||
|
<Provider>
|
||||||
|
<CargoSoftDatabaseVersion>2021.4</CargoSoftDatabaseVersion>
|
||||||
|
<CargoServiceVersion>2021.4</CargoServiceVersion>
|
||||||
|
<InterfaceRevisionNumber>String</InterfaceRevisionNumber>
|
||||||
|
<InterfaceModificationDate>String</InterfaceModificationDate>
|
||||||
|
<InterfaceModificationUser>String</InterfaceModificationUser>
|
||||||
|
<InterfaceConfigurationHash>String</InterfaceConfigurationHash>
|
||||||
|
</Provider>
|
||||||
|
</Message>
|
||||||
|
<EFile id="1928373">
|
||||||
|
<Description>
|
||||||
|
<DocDate>
|
||||||
|
<DateTime>2001-12-17T09:30:47Z</DateTime>
|
||||||
|
</DocDate>
|
||||||
|
<DocType>String</DocType>
|
||||||
|
<Title>String</Title>
|
||||||
|
</Description>
|
||||||
|
<Attachments>
|
||||||
|
<Attachment id="0">
|
||||||
|
<Version>0</Version>
|
||||||
|
<Filename>String</Filename>
|
||||||
|
<MimeType>String</MimeType>
|
||||||
|
<FileDate>
|
||||||
|
<DateTime>2001-12-17T09:30:47Z</DateTime>
|
||||||
|
</FileDate>
|
||||||
|
<Md5>String</Md5>
|
||||||
|
<FileSize>0</FileSize>
|
||||||
|
<Content>
|
||||||
|
UjBsR09EbGhjZ0dTQUxNQUFBUUNBRU1tQ1p0dU1GUXhEUzhiUjBsR09EbGhjZ0dTQUxNQUFBUUNBRU1tQ1p0dU1GUXhEUzhiUjBsR09EbGhjZ0dTQUxNQUFBUUNBRU1tQ1p0dU1GUXhEUzhi</Content>
|
||||||
|
</Attachment>
|
||||||
|
</Attachments>
|
||||||
|
<References>
|
||||||
|
<Reference id="1983733" type="client">001</Reference>
|
||||||
|
<Reference id="1983734" type="cs_voucher_number ">100012234</Reference>
|
||||||
|
<Reference id="1983735" type="cs_voucher_type">LR</Reference>
|
||||||
|
<Reference id="1983736" type="cs_address_number">G45677</Reference>
|
||||||
|
<Reference id="1983737" type="currency">USD</Reference>
|
||||||
|
<Reference id="1983738" type="voucherdate">12.12.2022</Reference>
|
||||||
|
<Reference id="1983739" type="total_net_amount">1234.78</Reference>
|
||||||
|
<Reference id="1983740" type="total_tax_amount">47.11</Reference>
|
||||||
|
<Reference id="1983741" type="currency_rate">1.000283</Reference>
|
||||||
|
<Reference id="1983742" type="reference">ATC400009450420242452</Reference>
|
||||||
|
<Reference id="1983743" type="booking_period">202404</Reference>
|
||||||
|
<Reference id="1983744" type="booking_date">04.04.2024</Reference>
|
||||||
|
<Reference id="1983745" type="booking_text">ATLAS Steuerbescheid</Reference>
|
||||||
|
<Reference id="1983746" type="row_1_activity_type">ZOLL</Reference>
|
||||||
|
<Reference id="1983747" type="row_1_amount">1000.00</Reference>
|
||||||
|
<Reference id="1983748" type="row_1_tax_code">0</Reference>
|
||||||
|
<Reference id="1983749" type="row_1_cs_filenumber">LA-ZEL-2403-004</Reference>
|
||||||
|
<Reference id="1983750" type="row_2_activity_type">EUST</Reference>
|
||||||
|
<Reference id="1983751" type="row_2_amount">234.78</Reference>
|
||||||
|
<Reference id="1983752" type="row_2_tax_code">0</Reference>
|
||||||
|
<Reference id="1983753" type="row_2_cs_filenumber">LA-ZEL-2403-00</Reference>
|
||||||
|
</References>
|
||||||
|
</EFile>
|
||||||
|
</CargoSoftEFile>
|
||||||
BIN
doc/images/businesspartner-widget.png
Normal file
BIN
doc/images/businesspartner-widget.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 7.5 KiB |
BIN
doc/images/zoho-001.png
Normal file
BIN
doc/images/zoho-001.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 106 KiB |
BIN
doc/images/zoho-002.png
Normal file
BIN
doc/images/zoho-002.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 42 KiB |
94
doc/zoho/README.md
Normal file
94
doc/zoho/README.md
Normal file
|
|
@ -0,0 +1,94 @@
|
||||||
|
# Zoho Web API
|
||||||
|
|
||||||
|
AGL Dubai nutzt Zoho als Platform zusammen mit einer lokalen Steuerkanzlei
|
||||||
|
|
||||||
|
https://books.zoho.com/
|
||||||
|
|
||||||
|
Testaccount - siehe [SECRETS.md](SECRETS.md)
|
||||||
|
|
||||||
|
# API Dokumentation
|
||||||
|
|
||||||
|
- API Docu: https://www.zoho.com/books/api/v3/introduction/
|
||||||
|
- Authentication: https://www.zoho.com/books/api/v3/oauth/
|
||||||
|
|
||||||
|
# Testumgebung
|
||||||
|
|
||||||
|
https://books.zoho.eu/app/20105697367
|
||||||
|
https://accounts.zoho.eu/home#
|
||||||
|
|
||||||
|
Base API URI= https://accounts.zoho.eu/
|
||||||
|
|
||||||
|
## 1. Client Einrichten
|
||||||
|
|
||||||
|
https://api-console.zoho.eu/
|
||||||
|
|
||||||
|
## 2. Generating Grant Token
|
||||||
|
|
||||||
|
https://accounts.zoho.com/oauth/v2/auth?scope=ZohoBooks.invoices.CREATE,ZohoBooks.invoices.READ,ZohoBooks.invoices.UPDATE,ZohoBooks.invoices.DELETE&client_id=1000.NLTM2KUEHI696MSLGEIANATVGGX7IN&state=testing&response_type=code&redirect_uri=https://alexander-logistics-dwc.office-workflow.de/api/zoho/grant
|
||||||
|
|
||||||
|
1000.NLTM2KUEHI696MSLGEIANATVGGX7IN
|
||||||
|
ee9ba49f16e77c64abb89cea13542d2326d8d03ce8
|
||||||
|
|
||||||
|
## 3. Generate Access and Refresh Token
|
||||||
|
|
||||||
|
https://accounts.zoho.com/oauth/v2/token?code=1000.dd7exxxxxxxxxxxxxxxxxxxxxxxx9bb8.b6c0xxxxxxxxxxxxxxxxxxxxxxxxdca4&client_id=1000.NLTM2KUEHI696MSLGEIANATVGGX7IN&client_secret=ee9ba49f16e77c64abb89cea13542d2326d8d03ce8&redirect_uri=http://www.zoho.com/books&grant_type=authorization_code
|
||||||
|
|
||||||
|
# Self Client
|
||||||
|
|
||||||
|
Man kann bei zoho mit einem sogenannten 'Self Client' arbeiten. Dieser erlaubt es ohne Redirect auf die Zoho Webseite einen Code anzufordern:
|
||||||
|
|
||||||
|
## 1. Self Client einrichten
|
||||||
|
|
||||||
|
Auf die API COnsole von Zoho zugreifen:
|
||||||
|
|
||||||
|
https://api-console.zoho.eu/client/1000.GR5FTPZYB06HEWSFSSX4DJU3OBD4EJ
|
||||||
|
|
||||||
|
<img src="../images/zoho-001.png" width="800">
|
||||||
|
|
||||||
|
Es kann maximal ein Client eingerichtet werden
|
||||||
|
|
||||||
|
Unter Scope trägt man dann den gewünschten Scope ein. Z.B.:
|
||||||
|
|
||||||
|
ZohoBooks.invoices.CREATE,ZohoBooks.invoices.READ,ZohoBooks.invoices.UPDATE,ZohoBooks.invoices.DELETE
|
||||||
|
|
||||||
|
und eine Description
|
||||||
|
|
||||||
|
<img src="../images/zoho-002.png">
|
||||||
|
|
||||||
|
Den generierten Code nun in Anwendung übertragen und innerhalb (!!) der 'Time Duration' den Access und Refresh Token generieren!
|
||||||
|
|
||||||
|
Siehe Junit Test `TestUpdateTokens`
|
||||||
|
|
||||||
|
Find details also [here](https://www.zoho.com/writer/help/api/v1/oauth-step2.html#self-client)
|
||||||
|
|
||||||
|
## Example for JUnit Test
|
||||||
|
|
||||||
|
Der Junit Test `TestUpdateTokens` zeigt das Prinzip
|
||||||
|
|
||||||
|
```
|
||||||
|
client ID= 1000.GR5FTPZYB06HEWSFSSX4DJU3OBD4EJ
|
||||||
|
client secret= 3f3e74c5212bbc924a7ebf77f887c6296db1106c47
|
||||||
|
```
|
||||||
|
|
||||||
|
In der Web GUi einen neuen Code generieren:
|
||||||
|
|
||||||
|
Scope=ZohoBooks.invoices.CREATE,ZohoBooks.invoices.READ,ZohoBooks.invoices.UPDATE,ZohoBooks.invoices.DELETE
|
||||||
|
|
||||||
|
Danach den Code token kopieren:
|
||||||
|
|
||||||
|
1000.7fe6315e8848b92a2f281b885677d37a.428c02dc2309606c86271842f1f67de4
|
||||||
|
|
||||||
|
**Note:** Der Code muss für Test immer wieder neu erstellt werden, da er nur für einige Minuten gültig ist!
|
||||||
|
|
||||||
|
# Disable auto-generated invoice number
|
||||||
|
|
||||||
|
Um die Automatische Vergabe von Rechnungsnummern in Zoho zu deaktivieren kann wie folgt vorgegangen werden:
|
||||||
|
|
||||||
|
1. Unter 'Invoices' eine neue Rechnung anlegen#
|
||||||
|
2. Im Feld 'Invoice#' das Zahnrad anklicken:
|
||||||
|
|
||||||
|
<img src="disable-auto-generated-number-01.png" />
|
||||||
|
|
||||||
|
3. Und dort die Option "Enter invoice numbers manually" auswählen
|
||||||
|
|
||||||
|
<img src="disable-auto-generated-number-02.png" />
|
||||||
167
doc/zoho/bill-create-example.json
Normal file
167
doc/zoho/bill-create-example.json
Normal file
|
|
@ -0,0 +1,167 @@
|
||||||
|
{
|
||||||
|
"code": 0,
|
||||||
|
"message": "The bill has been created.",
|
||||||
|
"bill": {
|
||||||
|
"bill_id": "6206847000000103003",
|
||||||
|
"vendor_id": "6206847000000100015",
|
||||||
|
"vendor_name": "Feldmuehle GmbH",
|
||||||
|
"source": "Api",
|
||||||
|
"contact_category": "",
|
||||||
|
"tax_treatment": "",
|
||||||
|
"unused_credits_payable_amount": 0.00,
|
||||||
|
"status": "paid",
|
||||||
|
"color_code": "",
|
||||||
|
"current_sub_status_id": "",
|
||||||
|
"current_sub_status": "paid",
|
||||||
|
"sub_statuses": [],
|
||||||
|
"bill_number": "28195",
|
||||||
|
"date": "2024-07-26",
|
||||||
|
"due_date": "2024-07-26",
|
||||||
|
"discount_setting": "flat",
|
||||||
|
"tds_calculation_type": "tds_item_level",
|
||||||
|
"payment_terms": 0,
|
||||||
|
"payment_terms_label": "Due on Receipt",
|
||||||
|
"payment_expected_date": "",
|
||||||
|
"reference_number": "",
|
||||||
|
"scanned_po_number": "",
|
||||||
|
"recurring_bill_id": "",
|
||||||
|
"due_by_days": 286,
|
||||||
|
"due_in_days": "",
|
||||||
|
"currency_id": "6206847000000000109",
|
||||||
|
"currency_code": "EUR",
|
||||||
|
"currency_symbol": "€",
|
||||||
|
"currency_name_formatted": "EUR- Euro",
|
||||||
|
"documents": [],
|
||||||
|
"subject_content": "",
|
||||||
|
"price_precision": 2,
|
||||||
|
"exchange_rate": 1.00,
|
||||||
|
"custom_fields": [],
|
||||||
|
"custom_field_hash": {},
|
||||||
|
"is_viewed_by_client": false,
|
||||||
|
"client_viewed_time": "",
|
||||||
|
"is_item_level_tax_calc": false,
|
||||||
|
"is_inclusive_tax": false,
|
||||||
|
"tax_rounding": "entity_level",
|
||||||
|
"is_uber_bill": false,
|
||||||
|
"is_tally_bill": false,
|
||||||
|
"track_discount_in_account": true,
|
||||||
|
"is_bill_reconciliation_violated": false,
|
||||||
|
"bill_order_type": "",
|
||||||
|
"line_items": [
|
||||||
|
{
|
||||||
|
"purchaseorder_id": "",
|
||||||
|
"purchaseorder_item_id": "",
|
||||||
|
"receive_id": "",
|
||||||
|
"line_item_id": "6206847000000103013",
|
||||||
|
"item_id": "",
|
||||||
|
"name": "AB-DEFGHI-1234-567",
|
||||||
|
"account_id": "6206847000000092271",
|
||||||
|
"account_name": "TEst",
|
||||||
|
"description": "",
|
||||||
|
"bcy_rate": 0.00,
|
||||||
|
"rate": 0.00,
|
||||||
|
"sales_rate": "",
|
||||||
|
"pricebook_id": "",
|
||||||
|
"header_id": "",
|
||||||
|
"header_name": "",
|
||||||
|
"tags": [],
|
||||||
|
"quantity": 1.00,
|
||||||
|
"discount": 0.00,
|
||||||
|
"discounts": [],
|
||||||
|
"discount_account_id": "",
|
||||||
|
"discount_account_name": "",
|
||||||
|
"markup_percent": 0.00,
|
||||||
|
"tax_id": "",
|
||||||
|
"tax_name": "",
|
||||||
|
"tax_type": "tax",
|
||||||
|
"tax_percentage": 0,
|
||||||
|
"line_item_taxes": [],
|
||||||
|
"item_total": 0.00,
|
||||||
|
"item_order": 1,
|
||||||
|
"unit": "",
|
||||||
|
"item_type": "",
|
||||||
|
"image_name": "",
|
||||||
|
"image_type": "",
|
||||||
|
"is_billable": false,
|
||||||
|
"customer_id": "",
|
||||||
|
"receipt_line_item_id": "",
|
||||||
|
"customer_name": "",
|
||||||
|
"project_id": "",
|
||||||
|
"project_name": "",
|
||||||
|
"invoice_id": "",
|
||||||
|
"invoice_number": "",
|
||||||
|
"item_custom_fields": [],
|
||||||
|
"purchase_request_items": [],
|
||||||
|
"item_matching_type": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"submitted_date": "",
|
||||||
|
"submitted_by": "",
|
||||||
|
"submitted_by_name": "",
|
||||||
|
"submitted_by_email": "",
|
||||||
|
"submitted_by_photo_url": "",
|
||||||
|
"submitter_id": "",
|
||||||
|
"approver_id": "",
|
||||||
|
"adjustment": 0.00,
|
||||||
|
"adjustment_description": "",
|
||||||
|
"discount_amount": 0.00,
|
||||||
|
"discount": 0.00,
|
||||||
|
"discount_applied_on_amount": 0.00,
|
||||||
|
"is_discount_before_tax": true,
|
||||||
|
"discount_account_id": "",
|
||||||
|
"discount_account_name": "",
|
||||||
|
"discount_type": "entity_level",
|
||||||
|
"sub_total": 0.00,
|
||||||
|
"sub_total_inclusive_of_tax": 0.00,
|
||||||
|
"tax_total": 0.00,
|
||||||
|
"discount_total": 0.00,
|
||||||
|
"discount_percent": 0.00,
|
||||||
|
"total": 0.00,
|
||||||
|
"payment_made": 0.00,
|
||||||
|
"vendor_credits_applied": 0.00,
|
||||||
|
"is_line_item_invoiced": false,
|
||||||
|
"purchaseorders": [],
|
||||||
|
"taxes": [],
|
||||||
|
"computation_type": "basic",
|
||||||
|
"tax_override_preference": "no_override",
|
||||||
|
"tds_override_preference": "no_override",
|
||||||
|
"balance": 0.00,
|
||||||
|
"unprocessed_payment_amount": 0.00,
|
||||||
|
"billing_address_id": "6206847000000100017",
|
||||||
|
"billing_address": {
|
||||||
|
"address": "",
|
||||||
|
"street2": "",
|
||||||
|
"city": "",
|
||||||
|
"state": "",
|
||||||
|
"zip": "",
|
||||||
|
"country": "",
|
||||||
|
"fax": "",
|
||||||
|
"phone": "",
|
||||||
|
"attention": ""
|
||||||
|
},
|
||||||
|
"payments": [],
|
||||||
|
"vendor_credits": [],
|
||||||
|
"created_time": "2025-05-08T21:36:04+0100",
|
||||||
|
"created_by_id": "6206847000000092001",
|
||||||
|
"last_modified_id": "6206847000000092001",
|
||||||
|
"last_modified_time": "2025-05-08T21:36:04+0100",
|
||||||
|
"reference_id": "",
|
||||||
|
"notes": "",
|
||||||
|
"terms": "",
|
||||||
|
"attachment_name": "",
|
||||||
|
"template_id": "6206847000000031017",
|
||||||
|
"template_name": "Standard Template",
|
||||||
|
"page_width": "8.27in",
|
||||||
|
"page_height": "11.69in",
|
||||||
|
"orientation": "portrait",
|
||||||
|
"template_type": "standard",
|
||||||
|
"is_approval_required": false,
|
||||||
|
"allocated_landed_costs": [],
|
||||||
|
"unallocated_landed_costs": [],
|
||||||
|
"entity_type": "bill",
|
||||||
|
"total_retention_amount": 0.00,
|
||||||
|
"retention_items": [],
|
||||||
|
"can_send_in_mail": false,
|
||||||
|
"approvers_list": []
|
||||||
|
}
|
||||||
|
}
|
||||||
177
doc/zoho/contact-create-example.json
Normal file
177
doc/zoho/contact-create-example.json
Normal file
|
|
@ -0,0 +1,177 @@
|
||||||
|
{
|
||||||
|
"code": 0,
|
||||||
|
"message": "The contact has been added.",
|
||||||
|
"contact": {
|
||||||
|
"contact_id": "777249000000077029",
|
||||||
|
"contact_name": "HQ Recyclers Network e.K.",
|
||||||
|
"company_name": "HQ Recyclers Network e.K.",
|
||||||
|
"contact_number": "CUS-00008",
|
||||||
|
"contact_tax_information": "",
|
||||||
|
"first_name": "",
|
||||||
|
"last_name": "",
|
||||||
|
"designation": "",
|
||||||
|
"department": "",
|
||||||
|
"website": "",
|
||||||
|
"is_bcy_only_contact": true,
|
||||||
|
"is_credit_limit_migration_completed": true,
|
||||||
|
"language_code": "",
|
||||||
|
"language_code_formatted": "",
|
||||||
|
"contact_salutation": "",
|
||||||
|
"email": "",
|
||||||
|
"phone": "",
|
||||||
|
"mobile": "",
|
||||||
|
"invited_by": "",
|
||||||
|
"portal_status": "disabled",
|
||||||
|
"is_client_review_asked": false,
|
||||||
|
"has_transaction": false,
|
||||||
|
"contact_type": "customer",
|
||||||
|
"customer_sub_type": "business",
|
||||||
|
"owner_id": "",
|
||||||
|
"owner_name": "",
|
||||||
|
"source": "api",
|
||||||
|
"documents": [],
|
||||||
|
"twitter": "",
|
||||||
|
"facebook": "",
|
||||||
|
"is_crm_customer": false,
|
||||||
|
"is_linked_with_zohocrm": false,
|
||||||
|
"primary_contact_id": "",
|
||||||
|
"zcrm_account_id": "",
|
||||||
|
"zcrm_contact_id": "",
|
||||||
|
"crm_owner_id": "",
|
||||||
|
"payment_terms": 0,
|
||||||
|
"payment_terms_label": "Due on Receipt",
|
||||||
|
"payment_terms_id": "",
|
||||||
|
"credit_limit_exceeded_amount": 0.00,
|
||||||
|
"currency_id": "777249000000000071",
|
||||||
|
"currency_code": "EUR",
|
||||||
|
"currency_symbol": "€",
|
||||||
|
"price_precision": 2,
|
||||||
|
"exchange_rate": "",
|
||||||
|
"can_show_customer_ob": true,
|
||||||
|
"can_show_vendor_ob": true,
|
||||||
|
"opening_balance_amount": 0.00,
|
||||||
|
"opening_balance_amount_bcy": "",
|
||||||
|
"outstanding_ob_receivable_amount": 0.00,
|
||||||
|
"outstanding_ob_payable_amount": 0.00,
|
||||||
|
"outstanding_receivable_amount": 0.00,
|
||||||
|
"outstanding_receivable_amount_bcy": 0.00,
|
||||||
|
"outstanding_payable_amount": 0.00,
|
||||||
|
"outstanding_payable_amount_bcy": 0.00,
|
||||||
|
"unused_credits_receivable_amount": 0.00,
|
||||||
|
"unused_credits_receivable_amount_bcy": 0.00,
|
||||||
|
"unused_credits_payable_amount": 0.00,
|
||||||
|
"unused_credits_payable_amount_bcy": 0.00,
|
||||||
|
"unused_retainer_payments": 0.00,
|
||||||
|
"status": "active",
|
||||||
|
"payment_reminder_enabled": true,
|
||||||
|
"is_sms_enabled": true,
|
||||||
|
"is_consent_agreed": false,
|
||||||
|
"consent_date": "",
|
||||||
|
"is_client_review_settings_enabled": false,
|
||||||
|
"custom_fields": [],
|
||||||
|
"custom_field_hash": {},
|
||||||
|
"tax_reg_label": "",
|
||||||
|
"contact_category": "",
|
||||||
|
"sales_channel": "direct_sales",
|
||||||
|
"ach_supported": false,
|
||||||
|
"portal_receipt_count": 0,
|
||||||
|
"opening_balances": [],
|
||||||
|
"entity_address_id": "777249000000077035",
|
||||||
|
"billing_address": {
|
||||||
|
"address_id": "777249000000077031",
|
||||||
|
"attention": "",
|
||||||
|
"address": "",
|
||||||
|
"street2": "",
|
||||||
|
"city": "",
|
||||||
|
"state_code": "",
|
||||||
|
"state": "",
|
||||||
|
"zip": "",
|
||||||
|
"country": "",
|
||||||
|
"county": "",
|
||||||
|
"country_code": "",
|
||||||
|
"phone": "",
|
||||||
|
"fax": ""
|
||||||
|
},
|
||||||
|
"shipping_address": {
|
||||||
|
"address_id": "777249000000077033",
|
||||||
|
"attention": "",
|
||||||
|
"address": "",
|
||||||
|
"street2": "",
|
||||||
|
"city": "",
|
||||||
|
"state_code": "",
|
||||||
|
"state": "",
|
||||||
|
"zip": "",
|
||||||
|
"country": "",
|
||||||
|
"county": "",
|
||||||
|
"country_code": "",
|
||||||
|
"phone": "",
|
||||||
|
"fax": "",
|
||||||
|
"latitude": "",
|
||||||
|
"longitude": ""
|
||||||
|
},
|
||||||
|
"contact_persons": [],
|
||||||
|
"addresses": [],
|
||||||
|
"pricebook_id": "",
|
||||||
|
"pricebook_name": "",
|
||||||
|
"default_templates": {
|
||||||
|
"statement_template_id": "",
|
||||||
|
"statement_template_name": "",
|
||||||
|
"invoice_template_id": "",
|
||||||
|
"invoice_template_name": "",
|
||||||
|
"bill_template_id": "",
|
||||||
|
"bill_template_name": "",
|
||||||
|
"estimate_template_id": "",
|
||||||
|
"estimate_template_name": "",
|
||||||
|
"creditnote_template_id": "",
|
||||||
|
"creditnote_template_name": "",
|
||||||
|
"paymentthankyou_template_id": "",
|
||||||
|
"paymentthankyou_template_name": "",
|
||||||
|
"invoice_email_template_id": "",
|
||||||
|
"invoice_email_template_name": "",
|
||||||
|
"estimate_email_template_id": "",
|
||||||
|
"estimate_email_template_name": "",
|
||||||
|
"creditnote_email_template_id": "",
|
||||||
|
"creditnote_email_template_name": "",
|
||||||
|
"paymentthankyou_email_template_id": "",
|
||||||
|
"paymentthankyou_email_template_name": "",
|
||||||
|
"payment_remittance_email_template_id": "",
|
||||||
|
"payment_remittance_email_template_name": ""
|
||||||
|
},
|
||||||
|
"associated_with_square": false,
|
||||||
|
"cards": [],
|
||||||
|
"checks": [],
|
||||||
|
"bank_accounts": [],
|
||||||
|
"vpa_list": [],
|
||||||
|
"notes": "",
|
||||||
|
"created_time": "2025-04-30T11:14:42+0200",
|
||||||
|
"created_date": "2025-04-30",
|
||||||
|
"created_by_name": "Ralph Soika",
|
||||||
|
"last_modified_time": "2025-04-30T11:14:42+0200",
|
||||||
|
"tags": [],
|
||||||
|
"zohopeople_client_id": "",
|
||||||
|
"customer_currency_summaries": [
|
||||||
|
{
|
||||||
|
"currency_id": "777249000000000071",
|
||||||
|
"currency_code": "EUR",
|
||||||
|
"currency_symbol": "€",
|
||||||
|
"price_precision": 2,
|
||||||
|
"is_base_currency": true,
|
||||||
|
"currency_name_formatted": "EUR- Euro",
|
||||||
|
"outstanding_receivable_amount": 0.00,
|
||||||
|
"unused_credits_receivable_amount": 0.00
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"is_valid_trn": false,
|
||||||
|
"trn_last_validated_time": "",
|
||||||
|
"trn_last_validated_time_formatted": "",
|
||||||
|
"approvers_list": [],
|
||||||
|
"submitted_date": "",
|
||||||
|
"submitted_by": "",
|
||||||
|
"submitted_by_name": "",
|
||||||
|
"submitted_by_email": "",
|
||||||
|
"submitted_by_photo_url": "",
|
||||||
|
"submitter_id": "",
|
||||||
|
"approver_id": "",
|
||||||
|
"integration_references": []
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
doc/zoho/disable-auto-generated-number-01.png
Normal file
BIN
doc/zoho/disable-auto-generated-number-01.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 32 KiB |
BIN
doc/zoho/disable-auto-generated-number-02.png
Normal file
BIN
doc/zoho/disable-auto-generated-number-02.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 21 KiB |
BIN
doc/zoho/image.png
Normal file
BIN
doc/zoho/image.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 105 KiB |
273
doc/zoho/invoice-create-example.json
Normal file
273
doc/zoho/invoice-create-example.json
Normal file
|
|
@ -0,0 +1,273 @@
|
||||||
|
{
|
||||||
|
"code": 0,
|
||||||
|
"message": "The invoice has been created.",
|
||||||
|
"invoice": {
|
||||||
|
"invoice_id": "777249000000082026",
|
||||||
|
"invoice_number": "INV-000018",
|
||||||
|
"date": "2024-04-03",
|
||||||
|
"due_date": "2024-05-03",
|
||||||
|
"offline_created_date_with_time": "",
|
||||||
|
"customer_id": "777249000000075016",
|
||||||
|
"contact_number": "CUS-00005",
|
||||||
|
"customer_name": "Action Agenciamento de Cargas LTDA",
|
||||||
|
"customer_custom_fields": [],
|
||||||
|
"customer_custom_field_hash": {},
|
||||||
|
"email": "",
|
||||||
|
"currency_id": "777249000000000071",
|
||||||
|
"invoice_source": "Api",
|
||||||
|
"currency_code": "EUR",
|
||||||
|
"currency_symbol": "€",
|
||||||
|
"currency_name_formatted": "EUR- Euro",
|
||||||
|
"status": "draft",
|
||||||
|
"unprocessed_payment_amount": 0.00,
|
||||||
|
"custom_fields": [],
|
||||||
|
"custom_field_hash": {},
|
||||||
|
"recurring_invoice_id": "",
|
||||||
|
"is_last_child_invoice": false,
|
||||||
|
"payment_mode": "",
|
||||||
|
"bank_account_id": "",
|
||||||
|
"payment_terms": 30,
|
||||||
|
"payment_terms_label": "Net 30",
|
||||||
|
"early_payment_discount_percentage": 0.00,
|
||||||
|
"early_payment_discount_due_days": "",
|
||||||
|
"early_payment_discount_amount": 0.00,
|
||||||
|
"payment_reminder_enabled": true,
|
||||||
|
"payment_made": 0.00,
|
||||||
|
"zcrm_potential_id": "",
|
||||||
|
"zcrm_potential_name": "",
|
||||||
|
"reference_number": "",
|
||||||
|
"preceding_invoice_id": "",
|
||||||
|
"is_early_payment_discount_applicable": false,
|
||||||
|
"lock_details": {},
|
||||||
|
"is_progress_invoice": false,
|
||||||
|
"can_show_kit_return": false,
|
||||||
|
"is_kit_partial_return": false,
|
||||||
|
"line_items": [
|
||||||
|
{
|
||||||
|
"line_item_id": "777249000000082036",
|
||||||
|
"item_id": "",
|
||||||
|
"item_order": 1,
|
||||||
|
"name": "R IM-GCA-2403-110",
|
||||||
|
"internal_name": "",
|
||||||
|
"description": "",
|
||||||
|
"discount_account_id": "",
|
||||||
|
"discount_account_name": "",
|
||||||
|
"unit": "",
|
||||||
|
"quantity": 1.00,
|
||||||
|
"discount_amount": 0.00,
|
||||||
|
"discount": 0.00,
|
||||||
|
"discounts": [],
|
||||||
|
"bcy_rate": 1995.00,
|
||||||
|
"rate": 1995.00,
|
||||||
|
"account_id": "777249000000000376",
|
||||||
|
"account_name": "Sales",
|
||||||
|
"header_id": "",
|
||||||
|
"header_name": "",
|
||||||
|
"pricebook_id": "",
|
||||||
|
"tax_id": "",
|
||||||
|
"tax_name": "",
|
||||||
|
"tax_type": "tax",
|
||||||
|
"tax_percentage": 0,
|
||||||
|
"item_total": 1995.00,
|
||||||
|
"item_custom_fields": [],
|
||||||
|
"pricing_scheme": "unit",
|
||||||
|
"tags": [],
|
||||||
|
"documents": [],
|
||||||
|
"line_item_taxes": [],
|
||||||
|
"bill_id": "",
|
||||||
|
"bill_item_id": "",
|
||||||
|
"project_id": "",
|
||||||
|
"time_entry_ids": [],
|
||||||
|
"expense_id": "",
|
||||||
|
"item_type": "",
|
||||||
|
"expense_receipt_name": "",
|
||||||
|
"sales_rate": "",
|
||||||
|
"purchase_rate": "",
|
||||||
|
"salesorder_item_id": "",
|
||||||
|
"cost_amount": 0,
|
||||||
|
"markup_percent": 0,
|
||||||
|
"mapped_items": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"total_retention_amount": 0.00,
|
||||||
|
"retention_items": [],
|
||||||
|
"retention_override_preference": "no_override",
|
||||||
|
"exchange_rate": 1.00,
|
||||||
|
"is_autobill_enabled": false,
|
||||||
|
"inprocess_transaction_present": false,
|
||||||
|
"allow_partial_payments": false,
|
||||||
|
"price_precision": 2,
|
||||||
|
"sub_total": 1995.00,
|
||||||
|
"tax_total": 0.00,
|
||||||
|
"discount_total": 0.00,
|
||||||
|
"discount_percent": 0.00,
|
||||||
|
"discount": 0.00,
|
||||||
|
"discount_applied_on_amount": 0.00,
|
||||||
|
"discount_type": "item_level",
|
||||||
|
"discount_account_id": "",
|
||||||
|
"discount_account_name": "",
|
||||||
|
"is_discount_before_tax": true,
|
||||||
|
"adjustment": 0.00,
|
||||||
|
"adjustment_description": "",
|
||||||
|
"shipping_charge_tax_id": "",
|
||||||
|
"shipping_charge_tax_name": "",
|
||||||
|
"shipping_charge_tax_type": "",
|
||||||
|
"shipping_charge_tax_percentage": "",
|
||||||
|
"shipping_charge_tax_exemption_id": "",
|
||||||
|
"shipping_charge_tax_exemption_code": "",
|
||||||
|
"shipping_charge_tax": "",
|
||||||
|
"bcy_shipping_charge_tax": "",
|
||||||
|
"shipping_charge_exclusive_of_tax": 0.000,
|
||||||
|
"shipping_charge_inclusive_of_tax": 0.000,
|
||||||
|
"shipping_charge_tax_formatted": "",
|
||||||
|
"shipping_charge_exclusive_of_tax_formatted": "€0,00",
|
||||||
|
"shipping_charge_inclusive_of_tax_formatted": "€0,00",
|
||||||
|
"shipping_charge_account_id": "",
|
||||||
|
"shipping_charge_account_name": "",
|
||||||
|
"shipping_charge": 0.00,
|
||||||
|
"bcy_shipping_charge": 0.00,
|
||||||
|
"bcy_adjustment": 0.00,
|
||||||
|
"bcy_sub_total": 1995.00,
|
||||||
|
"bcy_discount_total": 0.00,
|
||||||
|
"bcy_tax_total": 0.00,
|
||||||
|
"bcy_total": 1995.000,
|
||||||
|
"total": 1995.00,
|
||||||
|
"balance": 1995.00,
|
||||||
|
"write_off_amount": 0.00,
|
||||||
|
"roundoff_value": 0.00,
|
||||||
|
"transaction_rounding_type": "no_rounding",
|
||||||
|
"is_inclusive_tax": false,
|
||||||
|
"sub_total_inclusive_of_tax": 0.00,
|
||||||
|
"contact_category": "",
|
||||||
|
"tax_rounding": "entity_level",
|
||||||
|
"taxes": [],
|
||||||
|
"tds_calculation_type": "tds_item_level",
|
||||||
|
"can_send_invoice_sms": true,
|
||||||
|
"payment_expected_date": "",
|
||||||
|
"payment_discount": 0.00,
|
||||||
|
"stop_reminder_until_payment_expected_date": false,
|
||||||
|
"last_payment_date": "",
|
||||||
|
"ach_supported": false,
|
||||||
|
"ach_payment_initiated": false,
|
||||||
|
"payment_options": {
|
||||||
|
"payment_gateways": []
|
||||||
|
},
|
||||||
|
"reader_offline_payment_initiated": false,
|
||||||
|
"contact_persons": [],
|
||||||
|
"contact_persons_associated": [],
|
||||||
|
"bank_account_details": {
|
||||||
|
"bank_account_id": "777249000000000376",
|
||||||
|
"bank_account_name": "Sales",
|
||||||
|
"bank_account_number": "",
|
||||||
|
"is_active": false,
|
||||||
|
"iban_number": "",
|
||||||
|
"swift_code": ""
|
||||||
|
},
|
||||||
|
"attachment_name": "",
|
||||||
|
"documents": [],
|
||||||
|
"computation_type": "basic",
|
||||||
|
"deliverychallans": [],
|
||||||
|
"merchant_id": "",
|
||||||
|
"merchant_name": "",
|
||||||
|
"ecomm_operator_id": "",
|
||||||
|
"ecomm_operator_name": "",
|
||||||
|
"salesorder_id": "",
|
||||||
|
"salesorder_number": "",
|
||||||
|
"salesorders": [],
|
||||||
|
"shipping_bills": [],
|
||||||
|
"contact_persons_details": [],
|
||||||
|
"contact": {
|
||||||
|
"customer_balance": 0.00,
|
||||||
|
"credit_limit": 0.00,
|
||||||
|
"unused_customer_credits": 0.00,
|
||||||
|
"is_credit_limit_migration_completed": true
|
||||||
|
},
|
||||||
|
"salesperson_id": "",
|
||||||
|
"salesperson_name": "",
|
||||||
|
"is_emailed": false,
|
||||||
|
"reminders_sent": 0,
|
||||||
|
"last_reminder_sent_date": "",
|
||||||
|
"next_reminder_date_formatted": "",
|
||||||
|
"is_viewed_by_client": false,
|
||||||
|
"client_viewed_time": "",
|
||||||
|
"submitter_id": "",
|
||||||
|
"approver_id": "",
|
||||||
|
"submitted_date": "",
|
||||||
|
"submitted_by": "",
|
||||||
|
"submitted_by_name": "",
|
||||||
|
"submitted_by_email": "",
|
||||||
|
"submitted_by_photo_url": "",
|
||||||
|
"template_id": "777249000000000103",
|
||||||
|
"template_name": "Standard Template",
|
||||||
|
"template_type": "standard",
|
||||||
|
"notes": "Thanks for your business.",
|
||||||
|
"terms": "",
|
||||||
|
"billing_address": {
|
||||||
|
"street": "",
|
||||||
|
"address": "",
|
||||||
|
"street2": "",
|
||||||
|
"city": "",
|
||||||
|
"state": "",
|
||||||
|
"zip": "",
|
||||||
|
"country": "",
|
||||||
|
"fax": "",
|
||||||
|
"phone": "",
|
||||||
|
"attention": ""
|
||||||
|
},
|
||||||
|
"shipping_address": {
|
||||||
|
"street": "",
|
||||||
|
"address": "",
|
||||||
|
"street2": "",
|
||||||
|
"city": "",
|
||||||
|
"state": "",
|
||||||
|
"zip": "",
|
||||||
|
"country": "",
|
||||||
|
"fax": "",
|
||||||
|
"phone": "",
|
||||||
|
"attention": ""
|
||||||
|
},
|
||||||
|
"invoice_url": "https://zohosecurepay.eu/books/imixs/secure?CInvoiceID=2-64277fbd3cd8bc868d9e57c3085f4f428b1f66a1d5e3f3a32fc159e6879f623863183b0ac4651a08fdcce7621ddf18bf61770563d9fd2832f987dda624d4f11579820a40c3f55870 ",
|
||||||
|
"subject_content": "",
|
||||||
|
"can_send_in_mail": false,
|
||||||
|
"created_time": "2025-05-02T10:23:49+0200",
|
||||||
|
"last_modified_time": "2025-05-02T10:23:49+0200",
|
||||||
|
"created_date": "2025-05-02",
|
||||||
|
"created_by_id": "777249000000055227",
|
||||||
|
"created_by_name": "Ralph Soika",
|
||||||
|
"last_modified_by_id": "777249000000055227",
|
||||||
|
"page_width": "8.27in",
|
||||||
|
"page_height": "11.69in",
|
||||||
|
"orientation": "portrait",
|
||||||
|
"is_backorder": "",
|
||||||
|
"sales_channel": "direct_sales",
|
||||||
|
"color_code": "",
|
||||||
|
"current_sub_status_id": "",
|
||||||
|
"current_sub_status": "draft",
|
||||||
|
"sub_statuses": [],
|
||||||
|
"estimate_id": "",
|
||||||
|
"is_client_review_settings_enabled": false,
|
||||||
|
"unused_retainer_payments": 0.00,
|
||||||
|
"credits_applied": 0.00,
|
||||||
|
"tax_amount_withheld": 0.00,
|
||||||
|
"schedule_time": "",
|
||||||
|
"customer_default_billing_address": {
|
||||||
|
"zip": "",
|
||||||
|
"country": "",
|
||||||
|
"address": "",
|
||||||
|
"city": "",
|
||||||
|
"phone": "",
|
||||||
|
"street2": "",
|
||||||
|
"state": "",
|
||||||
|
"fax": "",
|
||||||
|
"state_code": ""
|
||||||
|
},
|
||||||
|
"includes_package_tracking_info": false,
|
||||||
|
"approvers_list": [],
|
||||||
|
"qr_code": {
|
||||||
|
"qr_source": "invoice_url",
|
||||||
|
"is_qr_enabled": false,
|
||||||
|
"qr_value": "",
|
||||||
|
"qr_description": "Scan the QR code to view the configured information."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
version: '3.6'
|
version: "3.6"
|
||||||
services:
|
services:
|
||||||
|
|
||||||
###############################################
|
###############################################
|
||||||
# Postgres DB
|
# Postgres DB
|
||||||
###############################################
|
###############################################
|
||||||
|
|
@ -26,7 +25,7 @@ services:
|
||||||
POSTGRES_CONNECTION: "jdbc:postgresql://db/office-alexander-logistics"
|
POSTGRES_CONNECTION: "jdbc:postgresql://db/office-alexander-logistics"
|
||||||
TZ: "CET"
|
TZ: "CET"
|
||||||
LANG: "en_US.UTF-8"
|
LANG: "en_US.UTF-8"
|
||||||
MAILGATEWAY: "mailgateway"
|
MAILGATEWAY: "mailpit"
|
||||||
|
|
||||||
ASYNCEVENT_PROCESSOR_ENABLED: "true"
|
ASYNCEVENT_PROCESSOR_ENABLED: "true"
|
||||||
ASYNCEVENT_PROCESSOR_INITIALDELAY: "10000"
|
ASYNCEVENT_PROCESSOR_INITIALDELAY: "10000"
|
||||||
|
|
@ -36,13 +35,21 @@ services:
|
||||||
#OCR_SERVICE_MAXFILESIZE: "1048576"
|
#OCR_SERVICE_MAXFILESIZE: "1048576"
|
||||||
#OCR_PDF_MODE: "OCR_ONLY | TEXT_ONLY | TEXT_AND_OCR (default)"
|
#OCR_PDF_MODE: "OCR_ONLY | TEXT_ONLY | TEXT_AND_OCR (default)"
|
||||||
OCR_PDF_MODE: "OCR_ONLY"
|
OCR_PDF_MODE: "OCR_ONLY"
|
||||||
ML_SERVICE_ENDPOINT: "http://imixs-ml-spacy:8000/"
|
|
||||||
# Enable Training Scheduler
|
# Rest Service BusinessPartner API
|
||||||
#ML_TRAINNG_SCHEDULER_ENABLED: "true"
|
WORKFLOW_SERVICE_ENDPOINT: "http://app:8080/api"
|
||||||
# TYPO Issue #28
|
WORKFLOW_SERVICE_USER: "admin"
|
||||||
ML_TRAINING_SCHEDULER_ENABLED: "true"
|
WORKFLOW_SERVICE_PASSWORD: "adminadmin"
|
||||||
ML_TRAINING_SCHEDULER_INTERVAL: "10000"
|
|
||||||
ML_TRAINING_SCHEDULER_INITIALDELAY: "30000"
|
# LLM Integration
|
||||||
|
LLM_CONFIG_FILE: /opt/jboss/imixs-llm.xml
|
||||||
|
|
||||||
|
# KSeF - Polen Test
|
||||||
|
KSEF_API_NIP: "9552521552"
|
||||||
|
KSEF_API_TOKEN: "20251113-EC-2751AC3000-5C5466924B-62|nip-9552521552|fc0c95d020dc45d4af491fb0aa755f3f3f674b33ecbf4250a88ea6e36fa8340b"
|
||||||
|
KSEF_API_ENDPOINT: "https://ksef-test.mf.gov.pl/api/v2"
|
||||||
|
|
||||||
|
METRICS_ENABLED: "false"
|
||||||
|
|
||||||
ports:
|
ports:
|
||||||
- "8080:8080"
|
- "8080:8080"
|
||||||
|
|
@ -50,52 +57,40 @@ services:
|
||||||
- "8787:8787"
|
- "8787:8787"
|
||||||
volumes:
|
volumes:
|
||||||
- ./docker/deployments:/opt/jboss/wildfly/standalone/deployments/
|
- ./docker/deployments:/opt/jboss/wildfly/standalone/deployments/
|
||||||
|
- ./docker/keys/imixs-llm.xml:/opt/jboss/imixs-llm.xml
|
||||||
|
- ./docker/transfer:/opt/jboss/wildfly/transfer/
|
||||||
|
|
||||||
###############################################
|
###############################################
|
||||||
# Tika OCR Service
|
# Tika OCR Service
|
||||||
###############################################
|
###############################################
|
||||||
tika:
|
tika:
|
||||||
#image: imixs/tika
|
image: apache/tika:3.2.0.0-full
|
||||||
image: apache/tika:1.24.1-full
|
|
||||||
environment:
|
environment:
|
||||||
TZ: "Europe/Berlin"
|
TZ: "Europe/Berlin"
|
||||||
ports:
|
ports:
|
||||||
- "9998:9998"
|
- "9998:9998"
|
||||||
|
|
||||||
|
##################
|
||||||
|
# Exporter Service
|
||||||
###############################################
|
##################
|
||||||
# Imixs-ML-spaCy Service
|
# imixsexporter-app:
|
||||||
###############################################
|
# image: imixs/imixs-archive-exporter
|
||||||
imixs-ml-spacy:
|
# environment:
|
||||||
#image: imixs/imixs-ml-spacy:1.1.1
|
# # EXAMPLE SETUP
|
||||||
image: imixs/imixs-ml-spacy:1.1.4
|
# WORKFLOW_SERVICE_ENDPOINT: "http://app:8080/api"
|
||||||
environment:
|
# WORKFLOW_SERVICE_USER: "admin"
|
||||||
PYTHONUNBUFFERED: 1
|
# WORKFLOW_SERVICE_PASSWORD: "adminadmin"
|
||||||
TZ: "Europe/Berlin"
|
# WORKFLOW_SERVICE_AUTHMETHOD: "form"
|
||||||
MODEL_LANGUAGE: "de"
|
# METRICS_ENDPOINT: "http://localhost:9991/metrics"
|
||||||
MODEL_PATH: "models/"
|
# HEALTH_ENDPOINT: "http://localhost:9991/health"
|
||||||
ports:
|
# EXPORT_PATH: "/agl/dwc-test"
|
||||||
- "8000:8000"
|
# EXPORT_FTP_HOST: "u248962.your-storagebox.de"
|
||||||
volumes:
|
# EXPORT_FTP_PORT: "21"
|
||||||
- ./models/:/usr/src/app/models/
|
# EXPORT_FTP_USER: "u248962-sub4"
|
||||||
|
# EXPORT_FTP_PASSWORD: "en4g3f1Jw0WlQ9Yb"
|
||||||
###############################################
|
# ports:
|
||||||
# Imixs-ML Training service
|
# - "8081:8080"
|
||||||
###############################################
|
# - "8788:8787"
|
||||||
imixs-ml-training:
|
|
||||||
image: imixs/imixs-ml-training:latest
|
|
||||||
environment:
|
|
||||||
TZ: "Europe/Berlin"
|
|
||||||
OCR_SERVICE_ENDPOINT: "http://tika:9998/tika"
|
|
||||||
#OCR_PDF_MODE: "OCR_ONLY | TEXT_ONLY | TEXT_AND_OCR (default)"
|
|
||||||
OCR_PDF_MODE: "OCR_ONLY"
|
|
||||||
# Payara-Micor ENV
|
|
||||||
MP_OPENAPI_SERVERS: "http://localhost:8081"
|
|
||||||
ports:
|
|
||||||
- "8081:8080"
|
|
||||||
- "9009:9009"
|
|
||||||
|
|
||||||
###############################################
|
###############################################
|
||||||
# Imixs-Admin
|
# Imixs-Admin
|
||||||
|
|
@ -108,25 +103,29 @@ services:
|
||||||
###############################################
|
###############################################
|
||||||
# Mailgateway
|
# Mailgateway
|
||||||
###############################################
|
###############################################
|
||||||
mailgateway:
|
mailpit:
|
||||||
image: imixs/exim4
|
image: axllent/mailpit:latest
|
||||||
|
container_name: mailpit
|
||||||
environment:
|
environment:
|
||||||
EXIM_SMARTHOST: "www149.your-server.de:25"
|
MP_SMTP_BIND_ADDR: "0.0.0.0:25"
|
||||||
EXIM_PASSWORD: "www149.your-server.de:webmaster@imixs.com:webmaster4Imixsmail"
|
ports:
|
||||||
EXIM_ALLOWED_SENDERS: "10.0.0.0/8:172.16.0.0/12:192.168.0.0/16"
|
- "1025:25" # Host:1025 -> Container:25 (SMTP)
|
||||||
|
- "8025:8025" # Web UI
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
# prometheus:
|
||||||
|
# image: prom/prometheus:latest
|
||||||
|
# ports:
|
||||||
|
# - "9090:9090"
|
||||||
|
# volumes:
|
||||||
|
# - ./docker/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
|
||||||
|
# - prometheusdata:/prometheus/
|
||||||
|
|
||||||
###############################################
|
# grafana:
|
||||||
# Gotenberg Service (HTML2PDF converter)
|
# image: grafana/grafana:latest
|
||||||
###############################################
|
# ports:
|
||||||
# gotenberg:
|
# - "3000:3000"
|
||||||
# image: thecodingmachine/gotenberg:6
|
|
||||||
# ports:
|
|
||||||
# - "3000:3000"
|
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
dbdata:
|
dbdata:
|
||||||
|
prometheusdata:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
4
docker/.env
Normal file
4
docker/.env
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
# LLM Config
|
||||||
|
|
||||||
|
LLM_API_ENDPOINT=https://api.llama.cpp.imixs.com/
|
||||||
|
LLM_API_KEY=7fdb663fa87ea16731c1e0ece8ad3214e358423eabf2403188110c731ce07321
|
||||||
220
docker/grafana/agl-dashboard.json
Normal file
220
docker/grafana/agl-dashboard.json
Normal file
|
|
@ -0,0 +1,220 @@
|
||||||
|
{
|
||||||
|
"annotations": {
|
||||||
|
"list": [
|
||||||
|
{
|
||||||
|
"builtIn": 1,
|
||||||
|
"datasource": {
|
||||||
|
"type": "grafana",
|
||||||
|
"uid": "-- Grafana --"
|
||||||
|
},
|
||||||
|
"enable": true,
|
||||||
|
"hide": true,
|
||||||
|
"iconColor": "rgba(0, 211, 255, 1)",
|
||||||
|
"name": "Annotations & Alerts",
|
||||||
|
"type": "dashboard"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"editable": true,
|
||||||
|
"fiscalYearStartMonth": 0,
|
||||||
|
"graphTooltip": 0,
|
||||||
|
"id": 1,
|
||||||
|
"links": [],
|
||||||
|
"panels": [
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "ee5zvwsdjb400f"
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"fieldConfig": {
|
||||||
|
"defaults": {
|
||||||
|
"color": {
|
||||||
|
"fixedColor": "green",
|
||||||
|
"mode": "fixed"
|
||||||
|
},
|
||||||
|
"decimals": 0,
|
||||||
|
"mappings": [],
|
||||||
|
"thresholds": {
|
||||||
|
"mode": "absolute",
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"color": "green"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "red",
|
||||||
|
"value": 80
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"unit": "locale"
|
||||||
|
},
|
||||||
|
"overrides": []
|
||||||
|
},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 4,
|
||||||
|
"w": 23,
|
||||||
|
"x": 0,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
"id": 2,
|
||||||
|
"options": {
|
||||||
|
"colorMode": "value",
|
||||||
|
"graphMode": "none",
|
||||||
|
"justifyMode": "auto",
|
||||||
|
"orientation": "auto",
|
||||||
|
"percentChangeColorMode": "standard",
|
||||||
|
"reduceOptions": {
|
||||||
|
"calcs": [
|
||||||
|
"lastNotNull"
|
||||||
|
],
|
||||||
|
"fields": "",
|
||||||
|
"values": false
|
||||||
|
},
|
||||||
|
"showPercentChange": false,
|
||||||
|
"text": {
|
||||||
|
"titleSize": 16,
|
||||||
|
"valueSize": 30
|
||||||
|
},
|
||||||
|
"textMode": "value_and_name",
|
||||||
|
"wideLayout": true
|
||||||
|
},
|
||||||
|
"pluginVersion": "11.3.2",
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"disableTextWrap": false,
|
||||||
|
"editorMode": "code",
|
||||||
|
"exemplar": false,
|
||||||
|
"expr": "sum by(department, currency) (application_dbtr_balance{department=~\".+\"})",
|
||||||
|
"fullMetaSearch": false,
|
||||||
|
"hide": false,
|
||||||
|
"includeNullMetadata": true,
|
||||||
|
"instant": false,
|
||||||
|
"interval": "",
|
||||||
|
"legendFormat": "{{department}} {{currency}}",
|
||||||
|
"range": true,
|
||||||
|
"refId": "A",
|
||||||
|
"useBackend": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"title": "Debitoren - Saldo",
|
||||||
|
"type": "stat"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "ee5zvwsdjb400f"
|
||||||
|
},
|
||||||
|
"fieldConfig": {
|
||||||
|
"defaults": {
|
||||||
|
"color": {
|
||||||
|
"mode": "palette-classic"
|
||||||
|
},
|
||||||
|
"custom": {
|
||||||
|
"axisBorderShow": false,
|
||||||
|
"axisCenteredZero": false,
|
||||||
|
"axisColorMode": "text",
|
||||||
|
"axisLabel": "",
|
||||||
|
"axisPlacement": "auto",
|
||||||
|
"barAlignment": 0,
|
||||||
|
"barWidthFactor": 0.6,
|
||||||
|
"drawStyle": "line",
|
||||||
|
"fillOpacity": 0,
|
||||||
|
"gradientMode": "none",
|
||||||
|
"hideFrom": {
|
||||||
|
"legend": false,
|
||||||
|
"tooltip": false,
|
||||||
|
"viz": false
|
||||||
|
},
|
||||||
|
"insertNulls": false,
|
||||||
|
"lineInterpolation": "linear",
|
||||||
|
"lineWidth": 2,
|
||||||
|
"pointSize": 5,
|
||||||
|
"scaleDistribution": {
|
||||||
|
"type": "linear"
|
||||||
|
},
|
||||||
|
"showPoints": "auto",
|
||||||
|
"spanNulls": false,
|
||||||
|
"stacking": {
|
||||||
|
"group": "A",
|
||||||
|
"mode": "none"
|
||||||
|
},
|
||||||
|
"thresholdsStyle": {
|
||||||
|
"mode": "off"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mappings": [],
|
||||||
|
"thresholds": {
|
||||||
|
"mode": "absolute",
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"color": "green"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "red",
|
||||||
|
"value": 80
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"overrides": []
|
||||||
|
},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 9,
|
||||||
|
"w": 24,
|
||||||
|
"x": 0,
|
||||||
|
"y": 4
|
||||||
|
},
|
||||||
|
"id": 1,
|
||||||
|
"options": {
|
||||||
|
"legend": {
|
||||||
|
"calcs": [],
|
||||||
|
"displayMode": "list",
|
||||||
|
"placement": "bottom",
|
||||||
|
"showLegend": true
|
||||||
|
},
|
||||||
|
"tooltip": {
|
||||||
|
"mode": "single",
|
||||||
|
"sort": "none"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pluginVersion": "11.3.2",
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "ee5zvwsdjb400f"
|
||||||
|
},
|
||||||
|
"disableTextWrap": false,
|
||||||
|
"editorMode": "code",
|
||||||
|
"exemplar": false,
|
||||||
|
"expr": "sum by(department) (application_dbtr_balance{department=~\".+\"})",
|
||||||
|
"fullMetaSearch": false,
|
||||||
|
"includeNullMetadata": true,
|
||||||
|
"legendFormat": "__auto",
|
||||||
|
"range": true,
|
||||||
|
"refId": "A",
|
||||||
|
"useBackend": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"title": "Kreditor",
|
||||||
|
"type": "timeseries"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"preload": false,
|
||||||
|
"schemaVersion": 40,
|
||||||
|
"tags": [],
|
||||||
|
"templating": {
|
||||||
|
"list": []
|
||||||
|
},
|
||||||
|
"time": {
|
||||||
|
"from": "now-6h",
|
||||||
|
"to": "now"
|
||||||
|
},
|
||||||
|
"timepicker": {},
|
||||||
|
"timezone": "browser",
|
||||||
|
"title": "AGL",
|
||||||
|
"uid": "ce5zwc5vzt5hce",
|
||||||
|
"version": 14,
|
||||||
|
"weekStart": ""
|
||||||
|
}
|
||||||
658
docker/grafana/debitoren-001.json
Normal file
658
docker/grafana/debitoren-001.json
Normal file
|
|
@ -0,0 +1,658 @@
|
||||||
|
{
|
||||||
|
"annotations": {
|
||||||
|
"list": [
|
||||||
|
{
|
||||||
|
"builtIn": 1,
|
||||||
|
"datasource": {
|
||||||
|
"type": "grafana",
|
||||||
|
"uid": "-- Grafana --"
|
||||||
|
},
|
||||||
|
"enable": true,
|
||||||
|
"hide": true,
|
||||||
|
"iconColor": "rgba(0, 211, 255, 1)",
|
||||||
|
"name": "Annotations & Alerts",
|
||||||
|
"type": "dashboard"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"editable": true,
|
||||||
|
"fiscalYearStartMonth": 0,
|
||||||
|
"graphTooltip": 0,
|
||||||
|
"id": 5,
|
||||||
|
"links": [],
|
||||||
|
"panels": [
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "P1809F7CD0C75ACF3"
|
||||||
|
},
|
||||||
|
"fieldConfig": {
|
||||||
|
"defaults": {
|
||||||
|
"color": {
|
||||||
|
"mode": "fixed"
|
||||||
|
},
|
||||||
|
"custom": {
|
||||||
|
"hideFrom": {
|
||||||
|
"legend": false,
|
||||||
|
"tooltip": false,
|
||||||
|
"viz": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mappings": [],
|
||||||
|
"thresholds": {
|
||||||
|
"mode": "absolute",
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"color": "green",
|
||||||
|
"value": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "red",
|
||||||
|
"value": 80
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"overrides": []
|
||||||
|
},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 8,
|
||||||
|
"w": 12,
|
||||||
|
"x": 0,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
"id": 8,
|
||||||
|
"options": {
|
||||||
|
"basemap": {
|
||||||
|
"config": {
|
||||||
|
"server": "streets",
|
||||||
|
"showLabels": true,
|
||||||
|
"theme": "auto"
|
||||||
|
},
|
||||||
|
"name": "Layer 0",
|
||||||
|
"opacity": 1,
|
||||||
|
"tooltip": false,
|
||||||
|
"type": "esri-xyz"
|
||||||
|
},
|
||||||
|
"controls": {
|
||||||
|
"mouseWheelZoom": true,
|
||||||
|
"showAttribution": true,
|
||||||
|
"showDebug": false,
|
||||||
|
"showMeasure": false,
|
||||||
|
"showScale": false,
|
||||||
|
"showZoom": true
|
||||||
|
},
|
||||||
|
"layers": [
|
||||||
|
{
|
||||||
|
"config": {
|
||||||
|
"showLegend": true,
|
||||||
|
"style": {
|
||||||
|
"color": {
|
||||||
|
"fixed": "dark-green"
|
||||||
|
},
|
||||||
|
"opacity": 0.4,
|
||||||
|
"rotation": {
|
||||||
|
"fixed": 0,
|
||||||
|
"max": 360,
|
||||||
|
"min": -360,
|
||||||
|
"mode": "mod"
|
||||||
|
},
|
||||||
|
"size": {
|
||||||
|
"field": "Value",
|
||||||
|
"fixed": 5,
|
||||||
|
"max": 50,
|
||||||
|
"min": 10
|
||||||
|
},
|
||||||
|
"symbol": {
|
||||||
|
"fixed": "img/icons/marker/circle.svg",
|
||||||
|
"mode": "fixed"
|
||||||
|
},
|
||||||
|
"symbolAlign": {
|
||||||
|
"horizontal": "center",
|
||||||
|
"vertical": "center"
|
||||||
|
},
|
||||||
|
"textConfig": {
|
||||||
|
"fontSize": 12,
|
||||||
|
"offsetX": 0,
|
||||||
|
"offsetY": 0,
|
||||||
|
"textAlign": "center",
|
||||||
|
"textBaseline": "middle"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"filterData": {
|
||||||
|
"id": "byRefId",
|
||||||
|
"options": "A"
|
||||||
|
},
|
||||||
|
"location": {
|
||||||
|
"mode": "lookup"
|
||||||
|
},
|
||||||
|
"name": "Layer 1",
|
||||||
|
"tooltip": true,
|
||||||
|
"type": "markers"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"tooltip": {
|
||||||
|
"mode": "details"
|
||||||
|
},
|
||||||
|
"view": {
|
||||||
|
"allLayers": true,
|
||||||
|
"id": "europe",
|
||||||
|
"lat": 46,
|
||||||
|
"lon": 14,
|
||||||
|
"zoom": 4
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pluginVersion": "11.4.0",
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "P1809F7CD0C75ACF3"
|
||||||
|
},
|
||||||
|
"editorMode": "code",
|
||||||
|
"expr": "sum(application_dbtr_balance) by (country)",
|
||||||
|
"format": "table",
|
||||||
|
"instant": false,
|
||||||
|
"legendFormat": "__auto",
|
||||||
|
"range": true,
|
||||||
|
"refId": "A"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"title": "",
|
||||||
|
"transparent": true,
|
||||||
|
"type": "geomap"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "P1809F7CD0C75ACF3"
|
||||||
|
},
|
||||||
|
"fieldConfig": {
|
||||||
|
"defaults": {
|
||||||
|
"color": {
|
||||||
|
"fixedColor": "yellow",
|
||||||
|
"mode": "palette-classic"
|
||||||
|
},
|
||||||
|
"custom": {
|
||||||
|
"hideFrom": {
|
||||||
|
"legend": false,
|
||||||
|
"tooltip": false,
|
||||||
|
"viz": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mappings": [],
|
||||||
|
"unit": "locale"
|
||||||
|
},
|
||||||
|
"overrides": []
|
||||||
|
},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 8,
|
||||||
|
"w": 5,
|
||||||
|
"x": 12,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
"id": 9,
|
||||||
|
"options": {
|
||||||
|
"displayLabels": [],
|
||||||
|
"legend": {
|
||||||
|
"displayMode": "list",
|
||||||
|
"placement": "bottom",
|
||||||
|
"showLegend": true
|
||||||
|
},
|
||||||
|
"pieType": "pie",
|
||||||
|
"reduceOptions": {
|
||||||
|
"calcs": [
|
||||||
|
"lastNotNull"
|
||||||
|
],
|
||||||
|
"fields": "",
|
||||||
|
"values": false
|
||||||
|
},
|
||||||
|
"tooltip": {
|
||||||
|
"mode": "single",
|
||||||
|
"sort": "none"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pluginVersion": "11.4.0",
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "P1809F7CD0C75ACF3"
|
||||||
|
},
|
||||||
|
"editorMode": "code",
|
||||||
|
"expr": "sum(application_dbtr_balance{currency=\"EUR\"}) by (department)",
|
||||||
|
"instant": false,
|
||||||
|
"legendFormat": "__auto",
|
||||||
|
"range": true,
|
||||||
|
"refId": "A"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"title": "EUR Abteilung",
|
||||||
|
"type": "piechart"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "P1809F7CD0C75ACF3"
|
||||||
|
},
|
||||||
|
"fieldConfig": {
|
||||||
|
"defaults": {
|
||||||
|
"color": {
|
||||||
|
"mode": "palette-classic"
|
||||||
|
},
|
||||||
|
"custom": {
|
||||||
|
"hideFrom": {
|
||||||
|
"legend": false,
|
||||||
|
"tooltip": false,
|
||||||
|
"viz": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mappings": []
|
||||||
|
},
|
||||||
|
"overrides": []
|
||||||
|
},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 8,
|
||||||
|
"w": 5,
|
||||||
|
"x": 17,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
"id": 2,
|
||||||
|
"options": {
|
||||||
|
"legend": {
|
||||||
|
"displayMode": "list",
|
||||||
|
"placement": "bottom",
|
||||||
|
"showLegend": true
|
||||||
|
},
|
||||||
|
"pieType": "pie",
|
||||||
|
"reduceOptions": {
|
||||||
|
"calcs": [
|
||||||
|
"lastNotNull"
|
||||||
|
],
|
||||||
|
"fields": "",
|
||||||
|
"values": false
|
||||||
|
},
|
||||||
|
"tooltip": {
|
||||||
|
"mode": "single",
|
||||||
|
"sort": "none"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pluginVersion": "11.4.0",
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "P1809F7CD0C75ACF3"
|
||||||
|
},
|
||||||
|
"editorMode": "code",
|
||||||
|
"expr": "sum(application_dbtr_balance) by (currency)",
|
||||||
|
"instant": false,
|
||||||
|
"legendFormat": "__auto",
|
||||||
|
"range": true,
|
||||||
|
"refId": "A"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"title": "Verteilung nach Währung",
|
||||||
|
"type": "piechart"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "P1809F7CD0C75ACF3"
|
||||||
|
},
|
||||||
|
"fieldConfig": {
|
||||||
|
"defaults": {
|
||||||
|
"color": {
|
||||||
|
"mode": "palette-classic"
|
||||||
|
},
|
||||||
|
"custom": {
|
||||||
|
"axisBorderShow": true,
|
||||||
|
"axisCenteredZero": false,
|
||||||
|
"axisColorMode": "text",
|
||||||
|
"axisLabel": "",
|
||||||
|
"axisPlacement": "auto",
|
||||||
|
"barAlignment": 0,
|
||||||
|
"barWidthFactor": 0.6,
|
||||||
|
"drawStyle": "line",
|
||||||
|
"fillOpacity": 0,
|
||||||
|
"gradientMode": "opacity",
|
||||||
|
"hideFrom": {
|
||||||
|
"legend": false,
|
||||||
|
"tooltip": false,
|
||||||
|
"viz": false
|
||||||
|
},
|
||||||
|
"insertNulls": false,
|
||||||
|
"lineInterpolation": "linear",
|
||||||
|
"lineWidth": 1,
|
||||||
|
"pointSize": 5,
|
||||||
|
"scaleDistribution": {
|
||||||
|
"type": "linear"
|
||||||
|
},
|
||||||
|
"showPoints": "auto",
|
||||||
|
"spanNulls": false,
|
||||||
|
"stacking": {
|
||||||
|
"group": "A",
|
||||||
|
"mode": "none"
|
||||||
|
},
|
||||||
|
"thresholdsStyle": {
|
||||||
|
"mode": "off"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mappings": [],
|
||||||
|
"thresholds": {
|
||||||
|
"mode": "absolute",
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"color": "green",
|
||||||
|
"value": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "red",
|
||||||
|
"value": 80
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"unit": "locale"
|
||||||
|
},
|
||||||
|
"overrides": []
|
||||||
|
},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 8,
|
||||||
|
"w": 12,
|
||||||
|
"x": 0,
|
||||||
|
"y": 8
|
||||||
|
},
|
||||||
|
"id": 1,
|
||||||
|
"options": {
|
||||||
|
"legend": {
|
||||||
|
"calcs": [],
|
||||||
|
"displayMode": "list",
|
||||||
|
"placement": "right",
|
||||||
|
"showLegend": true
|
||||||
|
},
|
||||||
|
"tooltip": {
|
||||||
|
"mode": "single",
|
||||||
|
"sort": "none"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pluginVersion": "11.4.0",
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "P1809F7CD0C75ACF3"
|
||||||
|
},
|
||||||
|
"editorMode": "builder",
|
||||||
|
"exemplar": false,
|
||||||
|
"expr": "sum(application_dbtr_balance) by (department)",
|
||||||
|
"format": "time_series",
|
||||||
|
"hide": false,
|
||||||
|
"instant": false,
|
||||||
|
"interval": "",
|
||||||
|
"legendFormat": "__auto",
|
||||||
|
"range": true,
|
||||||
|
"refId": "A"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"title": "Gesamtsaldo pro Abteilung",
|
||||||
|
"type": "timeseries"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "P1809F7CD0C75ACF3"
|
||||||
|
},
|
||||||
|
"fieldConfig": {
|
||||||
|
"defaults": {
|
||||||
|
"color": {
|
||||||
|
"mode": "thresholds"
|
||||||
|
},
|
||||||
|
"mappings": [],
|
||||||
|
"thresholds": {
|
||||||
|
"mode": "absolute",
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"color": "green",
|
||||||
|
"value": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "red",
|
||||||
|
"value": 80
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"overrides": []
|
||||||
|
},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 8,
|
||||||
|
"w": 5,
|
||||||
|
"x": 17,
|
||||||
|
"y": 8
|
||||||
|
},
|
||||||
|
"id": 4,
|
||||||
|
"options": {
|
||||||
|
"colorMode": "value",
|
||||||
|
"graphMode": "area",
|
||||||
|
"justifyMode": "auto",
|
||||||
|
"orientation": "auto",
|
||||||
|
"percentChangeColorMode": "standard",
|
||||||
|
"reduceOptions": {
|
||||||
|
"calcs": [
|
||||||
|
"lastNotNull"
|
||||||
|
],
|
||||||
|
"fields": "",
|
||||||
|
"values": false
|
||||||
|
},
|
||||||
|
"showPercentChange": false,
|
||||||
|
"textMode": "auto",
|
||||||
|
"wideLayout": true
|
||||||
|
},
|
||||||
|
"pluginVersion": "11.4.0",
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "P1809F7CD0C75ACF3"
|
||||||
|
},
|
||||||
|
"editorMode": "code",
|
||||||
|
"expr": "count(application_dbtr_balance)",
|
||||||
|
"instant": false,
|
||||||
|
"legendFormat": "__auto",
|
||||||
|
"range": true,
|
||||||
|
"refId": "A"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"title": "Anzahl der Debitoren",
|
||||||
|
"type": "stat"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "P1809F7CD0C75ACF3"
|
||||||
|
},
|
||||||
|
"fieldConfig": {
|
||||||
|
"defaults": {
|
||||||
|
"color": {
|
||||||
|
"mode": "thresholds"
|
||||||
|
},
|
||||||
|
"custom": {
|
||||||
|
"align": "auto",
|
||||||
|
"cellOptions": {
|
||||||
|
"type": "auto"
|
||||||
|
},
|
||||||
|
"inspect": false
|
||||||
|
},
|
||||||
|
"mappings": [],
|
||||||
|
"thresholds": {
|
||||||
|
"mode": "absolute",
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"color": "green",
|
||||||
|
"value": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "red",
|
||||||
|
"value": 80
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"overrides": [
|
||||||
|
{
|
||||||
|
"matcher": {
|
||||||
|
"id": "byName",
|
||||||
|
"options": "Value (sum)"
|
||||||
|
},
|
||||||
|
"properties": [
|
||||||
|
{
|
||||||
|
"id": "unit",
|
||||||
|
"value": "locale"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"matcher": {
|
||||||
|
"id": "byName",
|
||||||
|
"options": "currency"
|
||||||
|
},
|
||||||
|
"properties": [
|
||||||
|
{
|
||||||
|
"id": "custom.width",
|
||||||
|
"value": 87
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"matcher": {
|
||||||
|
"id": "byName",
|
||||||
|
"options": "department"
|
||||||
|
},
|
||||||
|
"properties": [
|
||||||
|
{
|
||||||
|
"id": "custom.width",
|
||||||
|
"value": 188
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"matcher": {
|
||||||
|
"id": "byName",
|
||||||
|
"options": "id"
|
||||||
|
},
|
||||||
|
"properties": [
|
||||||
|
{
|
||||||
|
"id": "custom.width",
|
||||||
|
"value": 93
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 8,
|
||||||
|
"w": 12,
|
||||||
|
"x": 0,
|
||||||
|
"y": 16
|
||||||
|
},
|
||||||
|
"id": 6,
|
||||||
|
"options": {
|
||||||
|
"cellHeight": "sm",
|
||||||
|
"footer": {
|
||||||
|
"countRows": false,
|
||||||
|
"fields": "",
|
||||||
|
"reducer": [
|
||||||
|
"sum"
|
||||||
|
],
|
||||||
|
"show": false
|
||||||
|
},
|
||||||
|
"showHeader": true,
|
||||||
|
"sortBy": []
|
||||||
|
},
|
||||||
|
"pluginVersion": "11.4.0",
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "P1809F7CD0C75ACF3"
|
||||||
|
},
|
||||||
|
"editorMode": "code",
|
||||||
|
"exemplar": false,
|
||||||
|
"expr": "topk(5, application_dbtr_balance) ",
|
||||||
|
"format": "table",
|
||||||
|
"hide": false,
|
||||||
|
"instant": false,
|
||||||
|
"legendFormat": "__auto",
|
||||||
|
"range": true,
|
||||||
|
"refId": "A"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"title": "Panel Title",
|
||||||
|
"transformations": [
|
||||||
|
{
|
||||||
|
"id": "groupBy",
|
||||||
|
"options": {
|
||||||
|
"fields": {
|
||||||
|
"Value": {
|
||||||
|
"aggregations": [
|
||||||
|
"sum"
|
||||||
|
],
|
||||||
|
"operation": "aggregate"
|
||||||
|
},
|
||||||
|
"country": {
|
||||||
|
"aggregations": [],
|
||||||
|
"operation": "groupby"
|
||||||
|
},
|
||||||
|
"currency": {
|
||||||
|
"aggregations": [],
|
||||||
|
"operation": "groupby"
|
||||||
|
},
|
||||||
|
"department": {
|
||||||
|
"aggregations": [],
|
||||||
|
"operation": "groupby"
|
||||||
|
},
|
||||||
|
"id": {
|
||||||
|
"aggregations": [],
|
||||||
|
"operation": "groupby"
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"aggregations": [],
|
||||||
|
"operation": "groupby"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "sortBy",
|
||||||
|
"options": {
|
||||||
|
"fields": {},
|
||||||
|
"sort": [
|
||||||
|
{
|
||||||
|
"desc": true,
|
||||||
|
"field": "Value (sum)"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type": "table"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"preload": false,
|
||||||
|
"schemaVersion": 40,
|
||||||
|
"tags": [],
|
||||||
|
"templating": {
|
||||||
|
"list": []
|
||||||
|
},
|
||||||
|
"time": {
|
||||||
|
"from": "now-6h",
|
||||||
|
"to": "now"
|
||||||
|
},
|
||||||
|
"timepicker": {},
|
||||||
|
"timezone": "browser",
|
||||||
|
"title": "Übersicht Debitoren",
|
||||||
|
"uid": "deb9z4knfuxhcc",
|
||||||
|
"version": 10,
|
||||||
|
"weekStart": ""
|
||||||
|
}
|
||||||
896
docker/grafana/debitoren-002.json
Normal file
896
docker/grafana/debitoren-002.json
Normal file
|
|
@ -0,0 +1,896 @@
|
||||||
|
{
|
||||||
|
"__inputs": [
|
||||||
|
{
|
||||||
|
"name": "DS_PROMETHEUS",
|
||||||
|
"label": "prometheus",
|
||||||
|
"description": "",
|
||||||
|
"type": "datasource",
|
||||||
|
"pluginId": "prometheus",
|
||||||
|
"pluginName": "Prometheus"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"__elements": {},
|
||||||
|
"__requires": [
|
||||||
|
{
|
||||||
|
"type": "panel",
|
||||||
|
"id": "bargauge",
|
||||||
|
"name": "Bar gauge",
|
||||||
|
"version": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "panel",
|
||||||
|
"id": "geomap",
|
||||||
|
"name": "Geomap",
|
||||||
|
"version": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "grafana",
|
||||||
|
"id": "grafana",
|
||||||
|
"name": "Grafana",
|
||||||
|
"version": "11.4.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "panel",
|
||||||
|
"id": "piechart",
|
||||||
|
"name": "Pie chart",
|
||||||
|
"version": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "datasource",
|
||||||
|
"id": "prometheus",
|
||||||
|
"name": "Prometheus",
|
||||||
|
"version": "1.0.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "panel",
|
||||||
|
"id": "stat",
|
||||||
|
"name": "Stat",
|
||||||
|
"version": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "panel",
|
||||||
|
"id": "table",
|
||||||
|
"name": "Table",
|
||||||
|
"version": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "panel",
|
||||||
|
"id": "timeseries",
|
||||||
|
"name": "Time series",
|
||||||
|
"version": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"annotations": {
|
||||||
|
"list": [
|
||||||
|
{
|
||||||
|
"builtIn": 1,
|
||||||
|
"datasource": {
|
||||||
|
"type": "grafana",
|
||||||
|
"uid": "-- Grafana --"
|
||||||
|
},
|
||||||
|
"enable": true,
|
||||||
|
"hide": true,
|
||||||
|
"iconColor": "rgba(0, 211, 255, 1)",
|
||||||
|
"name": "Annotations & Alerts",
|
||||||
|
"type": "dashboard"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"editable": true,
|
||||||
|
"fiscalYearStartMonth": 0,
|
||||||
|
"graphTooltip": 0,
|
||||||
|
"id": null,
|
||||||
|
"links": [],
|
||||||
|
"panels": [
|
||||||
|
{
|
||||||
|
"collapsed": false,
|
||||||
|
"gridPos": {
|
||||||
|
"h": 1,
|
||||||
|
"w": 24,
|
||||||
|
"x": 0,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
"id": 14,
|
||||||
|
"panels": [],
|
||||||
|
"title": "Salden Übersicht",
|
||||||
|
"type": "row"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "${DS_PROMETHEUS}"
|
||||||
|
},
|
||||||
|
"fieldConfig": {
|
||||||
|
"defaults": {
|
||||||
|
"color": {
|
||||||
|
"mode": "fixed"
|
||||||
|
},
|
||||||
|
"custom": {
|
||||||
|
"hideFrom": {
|
||||||
|
"legend": false,
|
||||||
|
"tooltip": false,
|
||||||
|
"viz": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mappings": [],
|
||||||
|
"thresholds": {
|
||||||
|
"mode": "absolute",
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"color": "green",
|
||||||
|
"value": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "red",
|
||||||
|
"value": 80
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"overrides": []
|
||||||
|
},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 8,
|
||||||
|
"w": 15,
|
||||||
|
"x": 0,
|
||||||
|
"y": 1
|
||||||
|
},
|
||||||
|
"id": 8,
|
||||||
|
"options": {
|
||||||
|
"basemap": {
|
||||||
|
"config": {
|
||||||
|
"server": "streets",
|
||||||
|
"showLabels": true,
|
||||||
|
"theme": "auto"
|
||||||
|
},
|
||||||
|
"name": "Layer 0",
|
||||||
|
"opacity": 1,
|
||||||
|
"tooltip": false,
|
||||||
|
"type": "esri-xyz"
|
||||||
|
},
|
||||||
|
"controls": {
|
||||||
|
"mouseWheelZoom": true,
|
||||||
|
"showAttribution": true,
|
||||||
|
"showDebug": false,
|
||||||
|
"showMeasure": false,
|
||||||
|
"showScale": false,
|
||||||
|
"showZoom": true
|
||||||
|
},
|
||||||
|
"layers": [
|
||||||
|
{
|
||||||
|
"config": {
|
||||||
|
"showLegend": true,
|
||||||
|
"style": {
|
||||||
|
"color": {
|
||||||
|
"fixed": "dark-green"
|
||||||
|
},
|
||||||
|
"opacity": 0.4,
|
||||||
|
"rotation": {
|
||||||
|
"fixed": 0,
|
||||||
|
"max": 360,
|
||||||
|
"min": -360,
|
||||||
|
"mode": "mod"
|
||||||
|
},
|
||||||
|
"size": {
|
||||||
|
"field": "Value",
|
||||||
|
"fixed": 5,
|
||||||
|
"max": 50,
|
||||||
|
"min": 10
|
||||||
|
},
|
||||||
|
"symbol": {
|
||||||
|
"fixed": "img/icons/marker/circle.svg",
|
||||||
|
"mode": "fixed"
|
||||||
|
},
|
||||||
|
"symbolAlign": {
|
||||||
|
"horizontal": "center",
|
||||||
|
"vertical": "center"
|
||||||
|
},
|
||||||
|
"textConfig": {
|
||||||
|
"fontSize": 12,
|
||||||
|
"offsetX": 0,
|
||||||
|
"offsetY": 0,
|
||||||
|
"textAlign": "center",
|
||||||
|
"textBaseline": "middle"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"filterData": {
|
||||||
|
"id": "byRefId",
|
||||||
|
"options": "A"
|
||||||
|
},
|
||||||
|
"location": {
|
||||||
|
"mode": "lookup"
|
||||||
|
},
|
||||||
|
"name": "Layer 1",
|
||||||
|
"tooltip": true,
|
||||||
|
"type": "markers"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"tooltip": {
|
||||||
|
"mode": "details"
|
||||||
|
},
|
||||||
|
"view": {
|
||||||
|
"allLayers": true,
|
||||||
|
"id": "europe",
|
||||||
|
"lat": 46,
|
||||||
|
"lon": 14,
|
||||||
|
"zoom": 4
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pluginVersion": "11.4.0",
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "${DS_PROMETHEUS}"
|
||||||
|
},
|
||||||
|
"editorMode": "code",
|
||||||
|
"expr": "sum(application_dbtr_balance) by (country)",
|
||||||
|
"format": "table",
|
||||||
|
"instant": false,
|
||||||
|
"legendFormat": "__auto",
|
||||||
|
"range": true,
|
||||||
|
"refId": "A"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"transparent": true,
|
||||||
|
"type": "geomap"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "${DS_PROMETHEUS}"
|
||||||
|
},
|
||||||
|
"fieldConfig": {
|
||||||
|
"defaults": {
|
||||||
|
"color": {
|
||||||
|
"fixedColor": "yellow",
|
||||||
|
"mode": "palette-classic"
|
||||||
|
},
|
||||||
|
"custom": {
|
||||||
|
"hideFrom": {
|
||||||
|
"legend": false,
|
||||||
|
"tooltip": false,
|
||||||
|
"viz": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mappings": [],
|
||||||
|
"unit": "locale"
|
||||||
|
},
|
||||||
|
"overrides": []
|
||||||
|
},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 8,
|
||||||
|
"w": 5,
|
||||||
|
"x": 15,
|
||||||
|
"y": 1
|
||||||
|
},
|
||||||
|
"id": 9,
|
||||||
|
"options": {
|
||||||
|
"displayLabels": [],
|
||||||
|
"legend": {
|
||||||
|
"displayMode": "list",
|
||||||
|
"placement": "bottom",
|
||||||
|
"showLegend": true
|
||||||
|
},
|
||||||
|
"pieType": "pie",
|
||||||
|
"reduceOptions": {
|
||||||
|
"calcs": [
|
||||||
|
"lastNotNull"
|
||||||
|
],
|
||||||
|
"fields": "",
|
||||||
|
"values": false
|
||||||
|
},
|
||||||
|
"tooltip": {
|
||||||
|
"mode": "single",
|
||||||
|
"sort": "none"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pluginVersion": "11.4.0",
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "${DS_PROMETHEUS}"
|
||||||
|
},
|
||||||
|
"editorMode": "code",
|
||||||
|
"expr": "sum(application_dbtr_balance{currency=~\"$currency\"}) by (department)",
|
||||||
|
"instant": false,
|
||||||
|
"legendFormat": "__auto",
|
||||||
|
"range": true,
|
||||||
|
"refId": "A"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"title": "$currency nach Abteilung",
|
||||||
|
"type": "piechart"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "${DS_PROMETHEUS}"
|
||||||
|
},
|
||||||
|
"fieldConfig": {
|
||||||
|
"defaults": {
|
||||||
|
"color": {
|
||||||
|
"mode": "palette-classic"
|
||||||
|
},
|
||||||
|
"custom": {
|
||||||
|
"hideFrom": {
|
||||||
|
"legend": false,
|
||||||
|
"tooltip": false,
|
||||||
|
"viz": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mappings": []
|
||||||
|
},
|
||||||
|
"overrides": []
|
||||||
|
},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 8,
|
||||||
|
"w": 4,
|
||||||
|
"x": 20,
|
||||||
|
"y": 1
|
||||||
|
},
|
||||||
|
"id": 2,
|
||||||
|
"options": {
|
||||||
|
"legend": {
|
||||||
|
"displayMode": "list",
|
||||||
|
"placement": "bottom",
|
||||||
|
"showLegend": true
|
||||||
|
},
|
||||||
|
"pieType": "pie",
|
||||||
|
"reduceOptions": {
|
||||||
|
"calcs": [
|
||||||
|
"lastNotNull"
|
||||||
|
],
|
||||||
|
"fields": "",
|
||||||
|
"values": false
|
||||||
|
},
|
||||||
|
"tooltip": {
|
||||||
|
"mode": "single",
|
||||||
|
"sort": "none"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pluginVersion": "11.4.0",
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "${DS_PROMETHEUS}"
|
||||||
|
},
|
||||||
|
"editorMode": "code",
|
||||||
|
"expr": "sum(application_dbtr_balance) by (currency)",
|
||||||
|
"instant": false,
|
||||||
|
"legendFormat": "__auto",
|
||||||
|
"range": true,
|
||||||
|
"refId": "A"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"title": "Verteilung nach Währung",
|
||||||
|
"type": "piechart"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "${DS_PROMETHEUS}"
|
||||||
|
},
|
||||||
|
"fieldConfig": {
|
||||||
|
"defaults": {
|
||||||
|
"color": {
|
||||||
|
"mode": "palette-classic-by-name"
|
||||||
|
},
|
||||||
|
"mappings": [],
|
||||||
|
"thresholds": {
|
||||||
|
"mode": "absolute",
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"color": "green",
|
||||||
|
"value": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "red",
|
||||||
|
"value": 80
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"unit": "locale"
|
||||||
|
},
|
||||||
|
"overrides": []
|
||||||
|
},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 6,
|
||||||
|
"w": 20,
|
||||||
|
"x": 0,
|
||||||
|
"y": 9
|
||||||
|
},
|
||||||
|
"id": 11,
|
||||||
|
"options": {
|
||||||
|
"displayMode": "basic",
|
||||||
|
"legend": {
|
||||||
|
"calcs": [],
|
||||||
|
"displayMode": "list",
|
||||||
|
"placement": "bottom",
|
||||||
|
"showLegend": false
|
||||||
|
},
|
||||||
|
"maxVizHeight": 300,
|
||||||
|
"minVizHeight": 16,
|
||||||
|
"minVizWidth": 8,
|
||||||
|
"namePlacement": "auto",
|
||||||
|
"orientation": "auto",
|
||||||
|
"reduceOptions": {
|
||||||
|
"calcs": [
|
||||||
|
"lastNotNull"
|
||||||
|
],
|
||||||
|
"fields": "",
|
||||||
|
"values": false
|
||||||
|
},
|
||||||
|
"showUnfilled": true,
|
||||||
|
"sizing": "auto",
|
||||||
|
"text": {
|
||||||
|
"titleSize": 10,
|
||||||
|
"valueSize": 10
|
||||||
|
},
|
||||||
|
"valueMode": "color"
|
||||||
|
},
|
||||||
|
"pluginVersion": "11.4.0",
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"editorMode": "code",
|
||||||
|
"expr": "sum by (department) (application_cdtr_balance{currency=~\"$currency\"})",
|
||||||
|
"legendFormat": "__auto",
|
||||||
|
"range": true,
|
||||||
|
"refId": "A",
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "${DS_PROMETHEUS}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"title": "Saldo in $currency nach Abteilung",
|
||||||
|
"type": "bargauge"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "${DS_PROMETHEUS}"
|
||||||
|
},
|
||||||
|
"fieldConfig": {
|
||||||
|
"defaults": {
|
||||||
|
"color": {
|
||||||
|
"mode": "thresholds"
|
||||||
|
},
|
||||||
|
"mappings": [],
|
||||||
|
"thresholds": {
|
||||||
|
"mode": "absolute",
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"color": "green",
|
||||||
|
"value": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "red",
|
||||||
|
"value": 80
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"overrides": []
|
||||||
|
},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 6,
|
||||||
|
"w": 4,
|
||||||
|
"x": 20,
|
||||||
|
"y": 9
|
||||||
|
},
|
||||||
|
"id": 4,
|
||||||
|
"options": {
|
||||||
|
"colorMode": "value",
|
||||||
|
"graphMode": "area",
|
||||||
|
"justifyMode": "auto",
|
||||||
|
"orientation": "auto",
|
||||||
|
"percentChangeColorMode": "standard",
|
||||||
|
"reduceOptions": {
|
||||||
|
"calcs": [
|
||||||
|
"lastNotNull"
|
||||||
|
],
|
||||||
|
"fields": "",
|
||||||
|
"values": false
|
||||||
|
},
|
||||||
|
"showPercentChange": false,
|
||||||
|
"textMode": "auto",
|
||||||
|
"wideLayout": true
|
||||||
|
},
|
||||||
|
"pluginVersion": "11.4.0",
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "${DS_PROMETHEUS}"
|
||||||
|
},
|
||||||
|
"editorMode": "code",
|
||||||
|
"expr": "count(application_dbtr_balance)",
|
||||||
|
"instant": false,
|
||||||
|
"legendFormat": "__auto",
|
||||||
|
"range": true,
|
||||||
|
"refId": "A"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"title": "Anzahl der Debitoren",
|
||||||
|
"type": "stat"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "${DS_PROMETHEUS}"
|
||||||
|
},
|
||||||
|
"fieldConfig": {
|
||||||
|
"defaults": {
|
||||||
|
"color": {
|
||||||
|
"mode": "palette-classic"
|
||||||
|
},
|
||||||
|
"custom": {
|
||||||
|
"axisBorderShow": true,
|
||||||
|
"axisCenteredZero": false,
|
||||||
|
"axisColorMode": "text",
|
||||||
|
"axisLabel": "",
|
||||||
|
"axisPlacement": "auto",
|
||||||
|
"barAlignment": 0,
|
||||||
|
"barWidthFactor": 0.6,
|
||||||
|
"drawStyle": "line",
|
||||||
|
"fillOpacity": 30,
|
||||||
|
"gradientMode": "opacity",
|
||||||
|
"hideFrom": {
|
||||||
|
"legend": false,
|
||||||
|
"tooltip": false,
|
||||||
|
"viz": false
|
||||||
|
},
|
||||||
|
"insertNulls": false,
|
||||||
|
"lineInterpolation": "smooth",
|
||||||
|
"lineStyle": {
|
||||||
|
"fill": "solid"
|
||||||
|
},
|
||||||
|
"lineWidth": 3,
|
||||||
|
"pointSize": 9,
|
||||||
|
"scaleDistribution": {
|
||||||
|
"type": "linear"
|
||||||
|
},
|
||||||
|
"showPoints": "auto",
|
||||||
|
"spanNulls": true,
|
||||||
|
"stacking": {
|
||||||
|
"group": "A",
|
||||||
|
"mode": "none"
|
||||||
|
},
|
||||||
|
"thresholdsStyle": {
|
||||||
|
"mode": "off"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mappings": [],
|
||||||
|
"thresholds": {
|
||||||
|
"mode": "absolute",
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"color": "green",
|
||||||
|
"value": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "red",
|
||||||
|
"value": 80
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"unit": "locale"
|
||||||
|
},
|
||||||
|
"overrides": []
|
||||||
|
},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 8,
|
||||||
|
"w": 12,
|
||||||
|
"x": 0,
|
||||||
|
"y": 15
|
||||||
|
},
|
||||||
|
"id": 1,
|
||||||
|
"options": {
|
||||||
|
"legend": {
|
||||||
|
"calcs": [],
|
||||||
|
"displayMode": "list",
|
||||||
|
"placement": "right",
|
||||||
|
"showLegend": false
|
||||||
|
},
|
||||||
|
"tooltip": {
|
||||||
|
"mode": "single",
|
||||||
|
"sort": "none"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pluginVersion": "11.4.0",
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "${DS_PROMETHEUS}"
|
||||||
|
},
|
||||||
|
"editorMode": "code",
|
||||||
|
"exemplar": false,
|
||||||
|
"expr": "sum(application_dbtr_balance{currency=~\"$currency\", department=~\"$department\"}) ",
|
||||||
|
"format": "time_series",
|
||||||
|
"hide": false,
|
||||||
|
"instant": false,
|
||||||
|
"interval": "",
|
||||||
|
"legendFormat": "__auto",
|
||||||
|
"range": true,
|
||||||
|
"refId": "A"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"title": "$department - Saldo in $currency",
|
||||||
|
"type": "timeseries"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "${DS_PROMETHEUS}"
|
||||||
|
},
|
||||||
|
"fieldConfig": {
|
||||||
|
"defaults": {
|
||||||
|
"color": {
|
||||||
|
"mode": "thresholds"
|
||||||
|
},
|
||||||
|
"custom": {
|
||||||
|
"align": "auto",
|
||||||
|
"cellOptions": {
|
||||||
|
"type": "auto"
|
||||||
|
},
|
||||||
|
"inspect": false
|
||||||
|
},
|
||||||
|
"mappings": [],
|
||||||
|
"thresholds": {
|
||||||
|
"mode": "absolute",
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"color": "green",
|
||||||
|
"value": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "red",
|
||||||
|
"value": 80
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"overrides": [
|
||||||
|
{
|
||||||
|
"matcher": {
|
||||||
|
"id": "byName",
|
||||||
|
"options": "Value (sum)"
|
||||||
|
},
|
||||||
|
"properties": [
|
||||||
|
{
|
||||||
|
"id": "unit",
|
||||||
|
"value": "locale"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"matcher": {
|
||||||
|
"id": "byName",
|
||||||
|
"options": "currency"
|
||||||
|
},
|
||||||
|
"properties": [
|
||||||
|
{
|
||||||
|
"id": "custom.width",
|
||||||
|
"value": 81
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"matcher": {
|
||||||
|
"id": "byName",
|
||||||
|
"options": "department"
|
||||||
|
},
|
||||||
|
"properties": [
|
||||||
|
{
|
||||||
|
"id": "custom.width",
|
||||||
|
"value": 188
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"matcher": {
|
||||||
|
"id": "byName",
|
||||||
|
"options": "id"
|
||||||
|
},
|
||||||
|
"properties": [
|
||||||
|
{
|
||||||
|
"id": "custom.width",
|
||||||
|
"value": 93
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"matcher": {
|
||||||
|
"id": "byName",
|
||||||
|
"options": "country"
|
||||||
|
},
|
||||||
|
"properties": [
|
||||||
|
{
|
||||||
|
"id": "custom.width",
|
||||||
|
"value": 81
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"matcher": {
|
||||||
|
"id": "byName",
|
||||||
|
"options": "Kunde"
|
||||||
|
},
|
||||||
|
"properties": [
|
||||||
|
{
|
||||||
|
"id": "custom.width",
|
||||||
|
"value": 308
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 8,
|
||||||
|
"w": 12,
|
||||||
|
"x": 12,
|
||||||
|
"y": 15
|
||||||
|
},
|
||||||
|
"id": 6,
|
||||||
|
"options": {
|
||||||
|
"cellHeight": "sm",
|
||||||
|
"footer": {
|
||||||
|
"countRows": false,
|
||||||
|
"fields": "",
|
||||||
|
"reducer": [
|
||||||
|
"sum"
|
||||||
|
],
|
||||||
|
"show": false
|
||||||
|
},
|
||||||
|
"showHeader": true,
|
||||||
|
"sortBy": []
|
||||||
|
},
|
||||||
|
"pluginVersion": "11.4.0",
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "${DS_PROMETHEUS}"
|
||||||
|
},
|
||||||
|
"editorMode": "code",
|
||||||
|
"exemplar": false,
|
||||||
|
"expr": "topk(5,application_dbtr_balance{currency=~\"$currency\", department=~\"$department\"}) ",
|
||||||
|
"format": "table",
|
||||||
|
"hide": false,
|
||||||
|
"instant": false,
|
||||||
|
"legendFormat": "__auto",
|
||||||
|
"range": true,
|
||||||
|
"refId": "A"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"title": "Top 5",
|
||||||
|
"transformations": [
|
||||||
|
{
|
||||||
|
"id": "groupBy",
|
||||||
|
"options": {
|
||||||
|
"fields": {
|
||||||
|
"Value": {
|
||||||
|
"aggregations": [
|
||||||
|
"sum"
|
||||||
|
],
|
||||||
|
"operation": "aggregate"
|
||||||
|
},
|
||||||
|
"country": {
|
||||||
|
"aggregations": [],
|
||||||
|
"operation": "groupby"
|
||||||
|
},
|
||||||
|
"currency": {
|
||||||
|
"aggregations": [],
|
||||||
|
"operation": "groupby"
|
||||||
|
},
|
||||||
|
"department": {
|
||||||
|
"aggregations": []
|
||||||
|
},
|
||||||
|
"id": {
|
||||||
|
"aggregations": [],
|
||||||
|
"operation": "groupby"
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"aggregations": [],
|
||||||
|
"operation": "groupby"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "sortBy",
|
||||||
|
"options": {
|
||||||
|
"fields": {},
|
||||||
|
"sort": [
|
||||||
|
{
|
||||||
|
"desc": true,
|
||||||
|
"field": "Value (sum)"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "organize",
|
||||||
|
"options": {
|
||||||
|
"excludeByName": {},
|
||||||
|
"includeByName": {},
|
||||||
|
"indexByName": {
|
||||||
|
"Value (sum)": 3,
|
||||||
|
"country": 2,
|
||||||
|
"currency": 4,
|
||||||
|
"id": 1,
|
||||||
|
"name": 0
|
||||||
|
},
|
||||||
|
"renameByName": {
|
||||||
|
"Value (sum)": "Saldo Aktuell",
|
||||||
|
"country": "Land",
|
||||||
|
"currency": " ",
|
||||||
|
"id": "Nummer",
|
||||||
|
"name": "Kunde"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type": "table"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"schemaVersion": 40,
|
||||||
|
"tags": [],
|
||||||
|
"templating": {
|
||||||
|
"list": [
|
||||||
|
{
|
||||||
|
"current": {},
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "${DS_PROMETHEUS}"
|
||||||
|
},
|
||||||
|
"definition": "label_values(currency)",
|
||||||
|
"label": "Währung",
|
||||||
|
"name": "currency",
|
||||||
|
"options": [],
|
||||||
|
"query": {
|
||||||
|
"qryType": 1,
|
||||||
|
"query": "label_values(currency)",
|
||||||
|
"refId": "PrometheusVariableQueryEditor-VariableQuery"
|
||||||
|
},
|
||||||
|
"refresh": 1,
|
||||||
|
"regex": "",
|
||||||
|
"type": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"current": {},
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "${DS_PROMETHEUS}"
|
||||||
|
},
|
||||||
|
"definition": "label_values(department)",
|
||||||
|
"label": "Abteilung",
|
||||||
|
"name": "department",
|
||||||
|
"options": [],
|
||||||
|
"query": {
|
||||||
|
"qryType": 1,
|
||||||
|
"query": "label_values(department)",
|
||||||
|
"refId": "PrometheusVariableQueryEditor-VariableQuery"
|
||||||
|
},
|
||||||
|
"refresh": 1,
|
||||||
|
"regex": "",
|
||||||
|
"type": "query"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"time": {
|
||||||
|
"from": "now-12h",
|
||||||
|
"to": "now"
|
||||||
|
},
|
||||||
|
"timepicker": {},
|
||||||
|
"timezone": "browser",
|
||||||
|
"title": "Übersicht Debitoren",
|
||||||
|
"uid": "deb9z4knfuxhcc",
|
||||||
|
"version": 20,
|
||||||
|
"weekStart": ""
|
||||||
|
}
|
||||||
888
docker/grafana/debitoren-003.json
Normal file
888
docker/grafana/debitoren-003.json
Normal file
|
|
@ -0,0 +1,888 @@
|
||||||
|
{
|
||||||
|
"__inputs": [
|
||||||
|
{
|
||||||
|
"name": "DS_PROMETHEUS",
|
||||||
|
"label": "prometheus",
|
||||||
|
"description": "",
|
||||||
|
"type": "datasource",
|
||||||
|
"pluginId": "prometheus",
|
||||||
|
"pluginName": "Prometheus"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"__elements": {},
|
||||||
|
"__requires": [
|
||||||
|
{
|
||||||
|
"type": "panel",
|
||||||
|
"id": "bargauge",
|
||||||
|
"name": "Bar gauge",
|
||||||
|
"version": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "panel",
|
||||||
|
"id": "geomap",
|
||||||
|
"name": "Geomap",
|
||||||
|
"version": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "grafana",
|
||||||
|
"id": "grafana",
|
||||||
|
"name": "Grafana",
|
||||||
|
"version": "11.4.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "panel",
|
||||||
|
"id": "piechart",
|
||||||
|
"name": "Pie chart",
|
||||||
|
"version": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "datasource",
|
||||||
|
"id": "prometheus",
|
||||||
|
"name": "Prometheus",
|
||||||
|
"version": "1.0.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "panel",
|
||||||
|
"id": "stat",
|
||||||
|
"name": "Stat",
|
||||||
|
"version": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "panel",
|
||||||
|
"id": "table",
|
||||||
|
"name": "Table",
|
||||||
|
"version": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "panel",
|
||||||
|
"id": "timeseries",
|
||||||
|
"name": "Time series",
|
||||||
|
"version": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"annotations": {
|
||||||
|
"list": [
|
||||||
|
{
|
||||||
|
"builtIn": 1,
|
||||||
|
"datasource": {
|
||||||
|
"type": "grafana",
|
||||||
|
"uid": "-- Grafana --"
|
||||||
|
},
|
||||||
|
"enable": true,
|
||||||
|
"hide": true,
|
||||||
|
"iconColor": "rgba(0, 211, 255, 1)",
|
||||||
|
"name": "Annotations & Alerts",
|
||||||
|
"type": "dashboard"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"editable": true,
|
||||||
|
"fiscalYearStartMonth": 0,
|
||||||
|
"graphTooltip": 0,
|
||||||
|
"id": null,
|
||||||
|
"links": [],
|
||||||
|
"panels": [
|
||||||
|
{
|
||||||
|
"collapsed": false,
|
||||||
|
"gridPos": {
|
||||||
|
"h": 1,
|
||||||
|
"w": 24,
|
||||||
|
"x": 0,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
"id": 14,
|
||||||
|
"panels": [],
|
||||||
|
"title": "Salden Übersicht Debitoren",
|
||||||
|
"type": "row"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "${DS_PROMETHEUS}"
|
||||||
|
},
|
||||||
|
"fieldConfig": {
|
||||||
|
"defaults": {
|
||||||
|
"color": {
|
||||||
|
"mode": "fixed"
|
||||||
|
},
|
||||||
|
"custom": {
|
||||||
|
"hideFrom": {
|
||||||
|
"legend": false,
|
||||||
|
"tooltip": false,
|
||||||
|
"viz": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mappings": [],
|
||||||
|
"thresholds": {
|
||||||
|
"mode": "absolute",
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"color": "green",
|
||||||
|
"value": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "red",
|
||||||
|
"value": 80
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"unit": "locale"
|
||||||
|
},
|
||||||
|
"overrides": []
|
||||||
|
},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 9,
|
||||||
|
"w": 15,
|
||||||
|
"x": 0,
|
||||||
|
"y": 1
|
||||||
|
},
|
||||||
|
"id": 8,
|
||||||
|
"options": {
|
||||||
|
"basemap": {
|
||||||
|
"config": {
|
||||||
|
"server": "streets",
|
||||||
|
"showLabels": true,
|
||||||
|
"theme": "auto"
|
||||||
|
},
|
||||||
|
"name": "Layer 0",
|
||||||
|
"opacity": 1,
|
||||||
|
"tooltip": false,
|
||||||
|
"type": "esri-xyz"
|
||||||
|
},
|
||||||
|
"controls": {
|
||||||
|
"mouseWheelZoom": true,
|
||||||
|
"showAttribution": true,
|
||||||
|
"showDebug": false,
|
||||||
|
"showMeasure": false,
|
||||||
|
"showScale": false,
|
||||||
|
"showZoom": true
|
||||||
|
},
|
||||||
|
"layers": [
|
||||||
|
{
|
||||||
|
"config": {
|
||||||
|
"showLegend": false,
|
||||||
|
"style": {
|
||||||
|
"color": {
|
||||||
|
"fixed": "blue"
|
||||||
|
},
|
||||||
|
"opacity": 0.4,
|
||||||
|
"rotation": {
|
||||||
|
"fixed": 0,
|
||||||
|
"max": 360,
|
||||||
|
"min": -360,
|
||||||
|
"mode": "mod"
|
||||||
|
},
|
||||||
|
"size": {
|
||||||
|
"field": "Value",
|
||||||
|
"fixed": 5,
|
||||||
|
"max": 60,
|
||||||
|
"min": 10
|
||||||
|
},
|
||||||
|
"symbol": {
|
||||||
|
"fixed": "img/icons/marker/circle.svg",
|
||||||
|
"mode": "fixed"
|
||||||
|
},
|
||||||
|
"symbolAlign": {
|
||||||
|
"horizontal": "center",
|
||||||
|
"vertical": "center"
|
||||||
|
},
|
||||||
|
"textConfig": {
|
||||||
|
"fontSize": 12,
|
||||||
|
"offsetX": 0,
|
||||||
|
"offsetY": 0,
|
||||||
|
"textAlign": "center",
|
||||||
|
"textBaseline": "middle"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"filterData": {
|
||||||
|
"id": "byRefId",
|
||||||
|
"options": "A"
|
||||||
|
},
|
||||||
|
"location": {
|
||||||
|
"lookup": "country",
|
||||||
|
"mode": "lookup"
|
||||||
|
},
|
||||||
|
"name": "Saldo",
|
||||||
|
"tooltip": true,
|
||||||
|
"type": "markers"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"tooltip": {
|
||||||
|
"mode": "details"
|
||||||
|
},
|
||||||
|
"view": {
|
||||||
|
"allLayers": true,
|
||||||
|
"id": "europe",
|
||||||
|
"lat": 46,
|
||||||
|
"lon": 14,
|
||||||
|
"zoom": 4
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pluginVersion": "11.4.0",
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "${DS_PROMETHEUS}"
|
||||||
|
},
|
||||||
|
"editorMode": "code",
|
||||||
|
"exemplar": false,
|
||||||
|
"expr": "sum(last_over_time(application_dbtr_balance{currency=~\"$currency\"}[24h])) by (country, currency)",
|
||||||
|
"format": "table",
|
||||||
|
"instant": true,
|
||||||
|
"legendFormat": "__auto",
|
||||||
|
"range": false,
|
||||||
|
"refId": "A"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type": "geomap"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "${DS_PROMETHEUS}"
|
||||||
|
},
|
||||||
|
"fieldConfig": {
|
||||||
|
"defaults": {
|
||||||
|
"color": {
|
||||||
|
"fixedColor": "yellow",
|
||||||
|
"mode": "palette-classic"
|
||||||
|
},
|
||||||
|
"custom": {
|
||||||
|
"hideFrom": {
|
||||||
|
"legend": false,
|
||||||
|
"tooltip": false,
|
||||||
|
"viz": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mappings": [],
|
||||||
|
"unit": "locale"
|
||||||
|
},
|
||||||
|
"overrides": []
|
||||||
|
},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 9,
|
||||||
|
"w": 5,
|
||||||
|
"x": 15,
|
||||||
|
"y": 1
|
||||||
|
},
|
||||||
|
"id": 9,
|
||||||
|
"options": {
|
||||||
|
"displayLabels": [],
|
||||||
|
"legend": {
|
||||||
|
"displayMode": "list",
|
||||||
|
"placement": "bottom",
|
||||||
|
"showLegend": true
|
||||||
|
},
|
||||||
|
"pieType": "pie",
|
||||||
|
"reduceOptions": {
|
||||||
|
"calcs": [
|
||||||
|
"lastNotNull"
|
||||||
|
],
|
||||||
|
"fields": "",
|
||||||
|
"values": false
|
||||||
|
},
|
||||||
|
"tooltip": {
|
||||||
|
"mode": "single",
|
||||||
|
"sort": "none"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pluginVersion": "11.4.0",
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "${DS_PROMETHEUS}"
|
||||||
|
},
|
||||||
|
"editorMode": "code",
|
||||||
|
"exemplar": false,
|
||||||
|
"expr": "sum(application_dbtr_balance{currency=~\"$currency\"}) by (department)",
|
||||||
|
"format": "time_series",
|
||||||
|
"instant": true,
|
||||||
|
"legendFormat": "__auto",
|
||||||
|
"range": true,
|
||||||
|
"refId": "A"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"title": "$currency nach Abteilung",
|
||||||
|
"type": "piechart"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "${DS_PROMETHEUS}"
|
||||||
|
},
|
||||||
|
"fieldConfig": {
|
||||||
|
"defaults": {
|
||||||
|
"color": {
|
||||||
|
"mode": "palette-classic"
|
||||||
|
},
|
||||||
|
"custom": {
|
||||||
|
"hideFrom": {
|
||||||
|
"legend": false,
|
||||||
|
"tooltip": false,
|
||||||
|
"viz": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mappings": []
|
||||||
|
},
|
||||||
|
"overrides": []
|
||||||
|
},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 9,
|
||||||
|
"w": 4,
|
||||||
|
"x": 20,
|
||||||
|
"y": 1
|
||||||
|
},
|
||||||
|
"id": 2,
|
||||||
|
"options": {
|
||||||
|
"legend": {
|
||||||
|
"displayMode": "list",
|
||||||
|
"placement": "bottom",
|
||||||
|
"showLegend": true
|
||||||
|
},
|
||||||
|
"pieType": "pie",
|
||||||
|
"reduceOptions": {
|
||||||
|
"calcs": [
|
||||||
|
"lastNotNull"
|
||||||
|
],
|
||||||
|
"fields": "",
|
||||||
|
"values": false
|
||||||
|
},
|
||||||
|
"tooltip": {
|
||||||
|
"mode": "single",
|
||||||
|
"sort": "none"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pluginVersion": "11.4.0",
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "${DS_PROMETHEUS}"
|
||||||
|
},
|
||||||
|
"editorMode": "code",
|
||||||
|
"expr": "sum(application_dbtr_balance) by (currency)",
|
||||||
|
"instant": false,
|
||||||
|
"legendFormat": "__auto",
|
||||||
|
"range": true,
|
||||||
|
"refId": "A"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"title": "Verteilung nach Währung",
|
||||||
|
"type": "piechart"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "${DS_PROMETHEUS}"
|
||||||
|
},
|
||||||
|
"fieldConfig": {
|
||||||
|
"defaults": {
|
||||||
|
"color": {
|
||||||
|
"mode": "palette-classic-by-name"
|
||||||
|
},
|
||||||
|
"mappings": [],
|
||||||
|
"thresholds": {
|
||||||
|
"mode": "absolute",
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"color": "green",
|
||||||
|
"value": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "red",
|
||||||
|
"value": 80
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"unit": "locale"
|
||||||
|
},
|
||||||
|
"overrides": []
|
||||||
|
},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 6,
|
||||||
|
"w": 20,
|
||||||
|
"x": 0,
|
||||||
|
"y": 10
|
||||||
|
},
|
||||||
|
"id": 11,
|
||||||
|
"options": {
|
||||||
|
"displayMode": "basic",
|
||||||
|
"legend": {
|
||||||
|
"calcs": [],
|
||||||
|
"displayMode": "list",
|
||||||
|
"placement": "bottom",
|
||||||
|
"showLegend": false
|
||||||
|
},
|
||||||
|
"maxVizHeight": 300,
|
||||||
|
"minVizHeight": 16,
|
||||||
|
"minVizWidth": 8,
|
||||||
|
"namePlacement": "auto",
|
||||||
|
"orientation": "auto",
|
||||||
|
"reduceOptions": {
|
||||||
|
"calcs": [
|
||||||
|
"lastNotNull"
|
||||||
|
],
|
||||||
|
"fields": "",
|
||||||
|
"values": false
|
||||||
|
},
|
||||||
|
"showUnfilled": true,
|
||||||
|
"sizing": "auto",
|
||||||
|
"text": {
|
||||||
|
"titleSize": 10,
|
||||||
|
"valueSize": 10
|
||||||
|
},
|
||||||
|
"valueMode": "color"
|
||||||
|
},
|
||||||
|
"pluginVersion": "11.4.0",
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"editorMode": "code",
|
||||||
|
"expr": "sum by (department) (application_dbtr_balance{currency=~\"$currency\"})",
|
||||||
|
"legendFormat": "__auto",
|
||||||
|
"range": true,
|
||||||
|
"refId": "A",
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "${DS_PROMETHEUS}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"title": "Saldo in $currency nach Abteilung",
|
||||||
|
"type": "bargauge"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "${DS_PROMETHEUS}"
|
||||||
|
},
|
||||||
|
"fieldConfig": {
|
||||||
|
"defaults": {
|
||||||
|
"color": {
|
||||||
|
"mode": "thresholds"
|
||||||
|
},
|
||||||
|
"mappings": [],
|
||||||
|
"thresholds": {
|
||||||
|
"mode": "absolute",
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"color": "green",
|
||||||
|
"value": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "red",
|
||||||
|
"value": 80
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"overrides": []
|
||||||
|
},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 6,
|
||||||
|
"w": 4,
|
||||||
|
"x": 20,
|
||||||
|
"y": 10
|
||||||
|
},
|
||||||
|
"id": 4,
|
||||||
|
"options": {
|
||||||
|
"colorMode": "value",
|
||||||
|
"graphMode": "area",
|
||||||
|
"justifyMode": "auto",
|
||||||
|
"orientation": "auto",
|
||||||
|
"percentChangeColorMode": "standard",
|
||||||
|
"reduceOptions": {
|
||||||
|
"calcs": [
|
||||||
|
"lastNotNull"
|
||||||
|
],
|
||||||
|
"fields": "",
|
||||||
|
"values": false
|
||||||
|
},
|
||||||
|
"showPercentChange": false,
|
||||||
|
"textMode": "auto",
|
||||||
|
"wideLayout": true
|
||||||
|
},
|
||||||
|
"pluginVersion": "11.4.0",
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "${DS_PROMETHEUS}"
|
||||||
|
},
|
||||||
|
"editorMode": "code",
|
||||||
|
"expr": "count(last_over_time(application_dbtr_balance[2h]))",
|
||||||
|
"hide": false,
|
||||||
|
"instant": false,
|
||||||
|
"legendFormat": "__auto",
|
||||||
|
"range": true,
|
||||||
|
"refId": "A"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"title": "Anzahl der Debitoren",
|
||||||
|
"type": "stat"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"collapsed": false,
|
||||||
|
"gridPos": {
|
||||||
|
"h": 1,
|
||||||
|
"w": 24,
|
||||||
|
"x": 0,
|
||||||
|
"y": 16
|
||||||
|
},
|
||||||
|
"id": 16,
|
||||||
|
"panels": [],
|
||||||
|
"title": "Salden Übersicht Debitoren - nach Abteilung",
|
||||||
|
"type": "row"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "${DS_PROMETHEUS}"
|
||||||
|
},
|
||||||
|
"fieldConfig": {
|
||||||
|
"defaults": {
|
||||||
|
"color": {
|
||||||
|
"mode": "palette-classic"
|
||||||
|
},
|
||||||
|
"custom": {
|
||||||
|
"axisBorderShow": true,
|
||||||
|
"axisCenteredZero": false,
|
||||||
|
"axisColorMode": "text",
|
||||||
|
"axisLabel": "",
|
||||||
|
"axisPlacement": "auto",
|
||||||
|
"barAlignment": 0,
|
||||||
|
"barWidthFactor": 0.6,
|
||||||
|
"drawStyle": "line",
|
||||||
|
"fillOpacity": 30,
|
||||||
|
"gradientMode": "opacity",
|
||||||
|
"hideFrom": {
|
||||||
|
"legend": false,
|
||||||
|
"tooltip": false,
|
||||||
|
"viz": false
|
||||||
|
},
|
||||||
|
"insertNulls": false,
|
||||||
|
"lineInterpolation": "smooth",
|
||||||
|
"lineStyle": {
|
||||||
|
"fill": "solid"
|
||||||
|
},
|
||||||
|
"lineWidth": 3,
|
||||||
|
"pointSize": 9,
|
||||||
|
"scaleDistribution": {
|
||||||
|
"type": "linear"
|
||||||
|
},
|
||||||
|
"showPoints": "auto",
|
||||||
|
"spanNulls": true,
|
||||||
|
"stacking": {
|
||||||
|
"group": "A",
|
||||||
|
"mode": "none"
|
||||||
|
},
|
||||||
|
"thresholdsStyle": {
|
||||||
|
"mode": "off"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mappings": [],
|
||||||
|
"thresholds": {
|
||||||
|
"mode": "absolute",
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"color": "green",
|
||||||
|
"value": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "red",
|
||||||
|
"value": 80
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"unit": "locale"
|
||||||
|
},
|
||||||
|
"overrides": []
|
||||||
|
},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 9,
|
||||||
|
"w": 12,
|
||||||
|
"x": 0,
|
||||||
|
"y": 17
|
||||||
|
},
|
||||||
|
"id": 1,
|
||||||
|
"options": {
|
||||||
|
"legend": {
|
||||||
|
"calcs": [],
|
||||||
|
"displayMode": "list",
|
||||||
|
"placement": "right",
|
||||||
|
"showLegend": false
|
||||||
|
},
|
||||||
|
"tooltip": {
|
||||||
|
"mode": "single",
|
||||||
|
"sort": "none"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pluginVersion": "11.4.0",
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "${DS_PROMETHEUS}"
|
||||||
|
},
|
||||||
|
"editorMode": "code",
|
||||||
|
"exemplar": false,
|
||||||
|
"expr": "sum(application_dbtr_balance{currency=~\"$currency\", department=~\"$department\"}) ",
|
||||||
|
"format": "time_series",
|
||||||
|
"hide": false,
|
||||||
|
"instant": false,
|
||||||
|
"interval": "",
|
||||||
|
"legendFormat": "__auto",
|
||||||
|
"range": true,
|
||||||
|
"refId": "A"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"title": "$department - Saldo in $currency",
|
||||||
|
"type": "timeseries"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "${DS_PROMETHEUS}"
|
||||||
|
},
|
||||||
|
"fieldConfig": {
|
||||||
|
"defaults": {
|
||||||
|
"color": {
|
||||||
|
"mode": "thresholds"
|
||||||
|
},
|
||||||
|
"custom": {
|
||||||
|
"align": "auto",
|
||||||
|
"cellOptions": {
|
||||||
|
"type": "auto"
|
||||||
|
},
|
||||||
|
"inspect": false
|
||||||
|
},
|
||||||
|
"decimals": 2,
|
||||||
|
"fieldMinMax": false,
|
||||||
|
"mappings": [],
|
||||||
|
"thresholds": {
|
||||||
|
"mode": "absolute",
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"color": "green",
|
||||||
|
"value": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "red",
|
||||||
|
"value": 80
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"unit": "locale"
|
||||||
|
},
|
||||||
|
"overrides": [
|
||||||
|
{
|
||||||
|
"matcher": {
|
||||||
|
"id": "byName",
|
||||||
|
"options": "name"
|
||||||
|
},
|
||||||
|
"properties": [
|
||||||
|
{
|
||||||
|
"id": "custom.width",
|
||||||
|
"value": 558
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"matcher": {
|
||||||
|
"id": "byName",
|
||||||
|
"options": "currency"
|
||||||
|
},
|
||||||
|
"properties": [
|
||||||
|
{
|
||||||
|
"id": "custom.width",
|
||||||
|
"value": 97
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"matcher": {
|
||||||
|
"id": "byName",
|
||||||
|
"options": "id"
|
||||||
|
},
|
||||||
|
"properties": [
|
||||||
|
{
|
||||||
|
"id": "custom.width",
|
||||||
|
"value": 81
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"matcher": {
|
||||||
|
"id": "byName",
|
||||||
|
"options": "Lieferant"
|
||||||
|
},
|
||||||
|
"properties": [
|
||||||
|
{
|
||||||
|
"id": "custom.width",
|
||||||
|
"value": 515
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"matcher": {
|
||||||
|
"id": "byName",
|
||||||
|
"options": "Saldo"
|
||||||
|
},
|
||||||
|
"properties": [
|
||||||
|
{
|
||||||
|
"id": "decimals",
|
||||||
|
"value": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "unit",
|
||||||
|
"value": "none"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"gridPos": {
|
||||||
|
"h": 9,
|
||||||
|
"w": 12,
|
||||||
|
"x": 12,
|
||||||
|
"y": 17
|
||||||
|
},
|
||||||
|
"id": 15,
|
||||||
|
"options": {
|
||||||
|
"cellHeight": "sm",
|
||||||
|
"footer": {
|
||||||
|
"countRows": false,
|
||||||
|
"fields": "",
|
||||||
|
"reducer": [
|
||||||
|
"sum"
|
||||||
|
],
|
||||||
|
"show": false
|
||||||
|
},
|
||||||
|
"showHeader": true,
|
||||||
|
"sortBy": []
|
||||||
|
},
|
||||||
|
"pluginVersion": "11.4.0",
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "${DS_PROMETHEUS}"
|
||||||
|
},
|
||||||
|
"editorMode": "code",
|
||||||
|
"exemplar": false,
|
||||||
|
"expr": "sum(last_over_time(application_dbtr_balance{currency=~\"$currency\", department=~\"$department\"}[2h]))\n by (name, id,department, currency)",
|
||||||
|
"format": "table",
|
||||||
|
"instant": true,
|
||||||
|
"legendFormat": "__auto",
|
||||||
|
"range": false,
|
||||||
|
"refId": "A"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"title": "Saldo By Debitor",
|
||||||
|
"transformations": [
|
||||||
|
{
|
||||||
|
"id": "organize",
|
||||||
|
"options": {
|
||||||
|
"excludeByName": {
|
||||||
|
"Time": true,
|
||||||
|
"department": true
|
||||||
|
},
|
||||||
|
"includeByName": {},
|
||||||
|
"indexByName": {
|
||||||
|
"Time": 0,
|
||||||
|
"Value": 5,
|
||||||
|
"currency": 3,
|
||||||
|
"department": 4,
|
||||||
|
"id": 2,
|
||||||
|
"name": 1
|
||||||
|
},
|
||||||
|
"renameByName": {
|
||||||
|
"Value": "Saldo",
|
||||||
|
"currency": " ",
|
||||||
|
"department": "",
|
||||||
|
"name": "Lieferant"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "sortBy",
|
||||||
|
"options": {
|
||||||
|
"fields": {},
|
||||||
|
"sort": [
|
||||||
|
{
|
||||||
|
"desc": true,
|
||||||
|
"field": "Saldo"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type": "table"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"schemaVersion": 40,
|
||||||
|
"tags": [],
|
||||||
|
"templating": {
|
||||||
|
"list": [
|
||||||
|
{
|
||||||
|
"current": {},
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "${DS_PROMETHEUS}"
|
||||||
|
},
|
||||||
|
"definition": "label_values(currency)",
|
||||||
|
"label": "Währung",
|
||||||
|
"name": "currency",
|
||||||
|
"options": [],
|
||||||
|
"query": {
|
||||||
|
"qryType": 1,
|
||||||
|
"query": "label_values(currency)",
|
||||||
|
"refId": "PrometheusVariableQueryEditor-VariableQuery"
|
||||||
|
},
|
||||||
|
"refresh": 1,
|
||||||
|
"regex": "",
|
||||||
|
"type": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"current": {},
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "${DS_PROMETHEUS}"
|
||||||
|
},
|
||||||
|
"definition": "label_values(department)",
|
||||||
|
"label": "Abteilung",
|
||||||
|
"name": "department",
|
||||||
|
"options": [],
|
||||||
|
"query": {
|
||||||
|
"qryType": 1,
|
||||||
|
"query": "label_values(department)",
|
||||||
|
"refId": "PrometheusVariableQueryEditor-VariableQuery"
|
||||||
|
},
|
||||||
|
"refresh": 1,
|
||||||
|
"regex": "",
|
||||||
|
"type": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasource": {
|
||||||
|
"type": "prometheus",
|
||||||
|
"uid": "P1809F7CD0C75ACF3"
|
||||||
|
},
|
||||||
|
"filters": [],
|
||||||
|
"name": "Filters",
|
||||||
|
"type": "adhoc"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"time": {
|
||||||
|
"from": "now-24h",
|
||||||
|
"to": "now"
|
||||||
|
},
|
||||||
|
"timepicker": {},
|
||||||
|
"timezone": "browser",
|
||||||
|
"title": "Übersicht Debitoren",
|
||||||
|
"uid": "deb9z4knfuxhcc",
|
||||||
|
"version": 31,
|
||||||
|
"weekStart": ""
|
||||||
|
}
|
||||||
55
docker/keys/imixs-llm.xml
Normal file
55
docker/keys/imixs-llm.xml
Normal file
|
|
@ -0,0 +1,55 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
imixs-llm.xml - LLM Model Registry
|
||||||
|
======================================
|
||||||
|
Place this file in your deployment so it is available on the classpath,
|
||||||
|
e.g. in src/main/resources/ for a Maven project.
|
||||||
|
|
||||||
|
Each <model> element defines one logical LLM service endpoint.
|
||||||
|
A model is either a completion model OR an embedding model - never both.
|
||||||
|
The BPMN configuration references them separately by their id:
|
||||||
|
|
||||||
|
<imixs-ai name="CONDITION">
|
||||||
|
<endpoint>my-llm</endpoint>
|
||||||
|
...
|
||||||
|
</imixs-ai>
|
||||||
|
|
||||||
|
<imixs-ai name="RAG_INDEX">
|
||||||
|
<endpoint-completion>my-llm</endpoint-completion>
|
||||||
|
<endpoint-embeddings>my-embeddings</endpoint-embeddings>
|
||||||
|
...
|
||||||
|
</imixs-ai>
|
||||||
|
|
||||||
|
Environment variable placeholders are supported via ${env.VAR_NAME}.
|
||||||
|
-->
|
||||||
|
<imixs-llm>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Completion model – used for chat completions, conditions, analysis etc.
|
||||||
|
This example connects to a local llama.cpp server.
|
||||||
|
-->
|
||||||
|
<endpoint id="api.llama.cpp.imixs.com">
|
||||||
|
<url>https://api.llama.cpp.imixs.com/</url>
|
||||||
|
<apikey>7fdb663fa87ea16731c1e0ece8ad3214e358423eabf2403188110c731ce07321</apikey>
|
||||||
|
<options>{
|
||||||
|
"temperature": 0.2,
|
||||||
|
"max_tokens": 1024
|
||||||
|
}
|
||||||
|
</options>
|
||||||
|
</endpoint>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Embedding model – used for RAG indexing and retrieval.
|
||||||
|
This example connects to a separate embedding server.
|
||||||
|
No apikey needed for a locally hosted instance.
|
||||||
|
-->
|
||||||
|
<endpoint id="embeddings.llama.cpp.imixs.com">
|
||||||
|
<url>https://embeddings.llama.cpp.imixs.com/</url>
|
||||||
|
<apikey>7fdb663fa87ea16731c1e0ece8ad3214e358423eabf2403188110c731ce07321</apikey>
|
||||||
|
<options>{
|
||||||
|
"max_tokens": 512
|
||||||
|
}
|
||||||
|
</options>
|
||||||
|
</endpoint>
|
||||||
|
|
||||||
|
</imixs-llm>
|
||||||
15
docker/prometheus/prometheus.yml
Normal file
15
docker/prometheus/prometheus.yml
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
global:
|
||||||
|
scrape_interval: 15s # By default, scrape targets every 15 seconds.
|
||||||
|
|
||||||
|
# Attach these labels to any time series or alerts when communicating with
|
||||||
|
# external systems (federation, remote storage, Alertmanager).
|
||||||
|
external_labels:
|
||||||
|
monitor: "imixs-monitor"
|
||||||
|
|
||||||
|
scrape_configs:
|
||||||
|
# Imixs-Office-Workflow Job (Wildfly Metrics)
|
||||||
|
- job_name: "imixs"
|
||||||
|
scrape_interval: 3600s
|
||||||
|
metrics_path: /metrics
|
||||||
|
static_configs:
|
||||||
|
- targets: ["app:9990"]
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,53 +0,0 @@
|
||||||
# ML Models
|
|
||||||
|
|
||||||
Wir verwenden bei Alexander-Global Logistics ein standard Invoice ML Modell. Dieses basiert im Grund auf unserem offizielen spacy modell 'invoice-de-0.1.0'.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Modell Nachtrainieren
|
|
||||||
|
|
||||||
Das Modell bei Alexander Logistics läst sich in der Dev Umggebung bei Bedarf nachtrainieren. Dazu geht man wie folgt vor:
|
|
||||||
|
|
||||||
**1.)** Aktuelles Modell auf Tikal Cloud Server sichern:
|
|
||||||
|
|
||||||
$ ssh imixs@master-1.tikal.imixs.com
|
|
||||||
$ cd tikal-cloud/
|
|
||||||
$ ./apps/alexander-logistics.office-workflow.de/ml_model_backup.sh
|
|
||||||
|
|
||||||
# Falls es zu einem io/error kommt, muss der spacy ml pod neu gestartet werden!
|
|
||||||
|
|
||||||
|
|
||||||
**2.)** Die Tikal-Cloud Pullen
|
|
||||||
|
|
||||||
**3.)** Um auf dem aktuellen Modell weiter zu trainierne, den Inhalt des invoice-de-0.1.0 Folders aus dem Backup directory in die lokale Dev Umgebung kopieren /
|
|
||||||
um ein neues Modell zu genereiren einfach den localen ordner 'invoice-de-0.1.0' umbenennen oder leeren.
|
|
||||||
|
|
||||||
**4.)** Jetzt lokal den Trainingsserver aufrufen
|
|
||||||
|
|
||||||
http://localhost:8081/api/openapi-ui/index.html
|
|
||||||
|
|
||||||
und das training beginnen mit der datei 'training-config-prod.xml'. Man kann das training 3-4 mal durchführen.
|
|
||||||
|
|
||||||
|
|
||||||
**5.)** Nun kann man die Inhalte des invoice-de-0.1.0 Folders zurück auf den Tikal in den modell folder /invoice-de-0.1.0 einspielen
|
|
||||||
|
|
||||||
**6.)** Nun die änderungen nach Git Puschen.
|
|
||||||
|
|
||||||
**7.)** auf dem Tikal Sever nun das aktuellisete Modell wieder einspielen
|
|
||||||
|
|
||||||
$ git pull
|
|
||||||
$ ./apps/alexander-logistics.office-workflow.de/ml_model_deploy.sh invoice-de-0.1.0/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## 22.05.2021 - invoice-de-0.1.0
|
|
||||||
|
|
||||||
NER=2.1948
|
|
||||||
|
|
||||||
|
|
||||||
## 17.02.2020 - invoice-de-0.1.0
|
|
||||||
|
|
||||||
Modell trainiert anhand der alexander-logistics Produtiv daten
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,491 +0,0 @@
|
||||||
# Test Protokoll Alexander Logistic invoice-de-0.1.0
|
|
||||||
|
|
||||||
|
|
||||||
**Validierung**
|
|
||||||
f4eaceda-f28a-4394-928e-1a05daaf2760
|
|
||||||
a5d1e7fe-d74a-4fa2-9b06-3221865759fa
|
|
||||||
c0290497-f613-4492-81b6-4ae1e1680029
|
|
||||||
d8e3fce4-d11c-46a4-8ba0-369b4c6e902f
|
|
||||||
8b766f35-828a-41f1-be04-00b4b62da4d0
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
**********************************************************************
|
|
||||||
** invoice-de-0.1.0-falsemodell
|
|
||||||
**12.10.2021 15:50** (sort order created)
|
|
||||||
**********************************************************************
|
|
||||||
workflow.query ($workflowgroup:"Rechnungseingang" OR $workflowgroup:"Sachrechnung") AND ($taskid:5900)
|
|
||||||
workflow.pagesize 500
|
|
||||||
ml.training.filepattern .pdf
|
|
||||||
ml.training.iterations 10
|
|
||||||
ml.training.dropoutrate 0,25
|
|
||||||
multiOccurrence false
|
|
||||||
ml.training.quality LOW
|
|
||||||
min_losses 0
|
|
||||||
|
|
||||||
RESULT
|
|
||||||
-----------------------------------------------------------------------
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 53.33% (200)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 31.47% (118)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 15.2% (57)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 17.195895012525614
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 51.73% (194)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 32.8% (123)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 15.47% (58)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 6.50170386961344
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 53.87% (202)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 31.73% (119)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 14.4% (54)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 4.8940276912225
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 52.8% (198)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 32% (120)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 15.2% (57)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 3.9605563888416824
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 54.13% (203)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 29.6% (111)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 16.27% (61)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 3.744507591826106
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 53.07% (199)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 31.2% (117)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 15.73% (59)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 2.8395576715820736
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 53.87% (202)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 32% (120)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 14.13% (53)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 2.6799682681142363
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 53.6% (201)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 31.47% (118)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 14.93% (56)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 2.520244211218683
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 49.33% (185)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 34.93% (131)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 15.73% (59)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 2.1511980661715193
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 53.87% (202)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 31.2% (117)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 14.93% (56)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 2.2739690429824475
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
**13.10.2021 12:00**
|
|
||||||
workflow.query ($workflowgroup:"Rechnungseingang" OR $workflowgroup:"Sachrechnung") AND ($taskid:5900)
|
|
||||||
workflow.pagesize 500
|
|
||||||
ml.training.filepattern .pdf|.PDF
|
|
||||||
ml.training.iterations 10
|
|
||||||
ml.training.dropoutrate 0,25
|
|
||||||
multiOccurrence false
|
|
||||||
ml.training.quality LOW
|
|
||||||
min_losses 0
|
|
||||||
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 61.33% (230)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 38.67% (145)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0% (0)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 3.790466332166552
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 61.07% (229)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 38.93% (146)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0% (0)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 3.160620521438082
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 58.13% (218)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 41.87% (157)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0% (0)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 2.636420357788331
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 58.13% (218)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 41.87% (157)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0% (0)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 2.506552163520219
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 58.93% (221)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 41.07% (154)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0% (0)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 2.3495061575286793
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 59.47% (223)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 40.53% (152)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0% (0)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 1.9351332692220107
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 61.33% (230)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 38.67% (145)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0% (0)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 1.8881396005118698
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 57.87% (217)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 42.13% (158)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0% (0)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 1.9754112840739593
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 59.73% (224)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 40.27% (151)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0% (0)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 1.7839739270522237
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 59.73% (224)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 40.27% (151)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0% (0)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 1.6024293913431429
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
**********************************************************************
|
|
||||||
** invoice-de-0.1.0
|
|
||||||
**12.10.2021 15:50** (sort order created)
|
|
||||||
**********************************************************************
|
|
||||||
workflow.query ($workflowgroup:"Rechnungseingang" OR $workflowgroup:"Sachrechnung") AND ($taskid:5900)
|
|
||||||
workflow.pagesize 500
|
|
||||||
ml.training.filepattern .pdf|.PDF
|
|
||||||
ml.training.iterations 10
|
|
||||||
ml.training.dropoutrate 0,25
|
|
||||||
multiOccurrence true
|
|
||||||
ml.training.quality LOW
|
|
||||||
min_losses 0
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 68.27% (256)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 31.47% (118)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.27% (1)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 21.57255353509432
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 67.73% (254)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 32.27% (121)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0% (0)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 8.249835149395697
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 68.53% (257)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 31.2% (117)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.27% (1)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 5.892598287488733
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 68.53% (257)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 31.2% (117)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.27% (1)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 4.964129124089013
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 68.53% (257)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 31.2% (117)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.27% (1)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 3.5603186705177947
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 67.2% (252)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 32.53% (122)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.27% (1)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 2.692053828307031
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 68% (255)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 31.73% (119)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.27% (1)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 2.3509401762802873
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 65.87% (247)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 34.13% (128)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0% (0)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 2.2695994889458104
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 68.27% (256)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 31.47% (118)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.27% (1)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 1.844410364015416
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 70.67% (265)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 29.07% (109)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.27% (1)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 1.6153951610034658
|
|
||||||
|
|
||||||
|
|
||||||
page=1 (count=500)
|
|
||||||
--------------------------------
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 69.6% (261)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 30.4% (114)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0% (0)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 7.093659738880595
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 66.4% (249)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 33.6% (126)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0% (0)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 5.201780406598962
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 68.27% (256)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 31.73% (119)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0% (0)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 3.8116329003426204
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 66.67% (250)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 33.33% (125)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0% (0)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 3.3164488404836154
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 66.93% (251)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 33.07% (124)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0% (0)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 2.7822570929398576
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 69.07% (259)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 30.93% (116)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0% (0)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 2.31773083524846
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 68.8% (258)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 31.2% (117)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0% (0)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 2.165804551920185
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 66.4% (249)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 33.6% (126)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0% (0)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 1.9591955652007715
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 66.4% (249)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 33.6% (126)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0% (0)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 1.5473874007025803
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 375
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 65.87% (247)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 34.13% (128)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0% (0)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 1.705957084193204
|
|
||||||
imixs-ml-training_1 | |#]
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
|
|
||||||
page=0 (count=1000)
|
|
||||||
--------------------------------
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 750
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 67.47% (506)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 32.53% (244)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0% (0)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 3.2147245242951565
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 750
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 68.8% (516)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 31.07% (233)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.13% (1)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 2.2084385109690565
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 750
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 67.73% (508)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 32.27% (242)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0% (0)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 2.1797281610496464
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 750
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 67.2% (504)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 32.67% (245)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.13% (1)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 1.8908819163368502
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 750
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 66% (495)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 33.87% (254)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.13% (1)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 1.7774978150912477
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 750
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 67.6% (507)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 32.27% (242)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.13% (1)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 1.669098427922433
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 750
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 67.33% (505)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 32.53% (244)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.13% (1)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 1.6048149396167861
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 750
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 67.6% (507)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 32.27% (242)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.13% (1)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 1.4026393956412981
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 750
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 67.87% (509)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 32% (240)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.13% (1)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 1.1139796046407426
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 750
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 65.87% (494)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 34% (255)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.13% (1)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 1.2621875029460226
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
page=1 (count=1000)
|
|
||||||
--------------------------------
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 750
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 63.47% (476)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 36.4% (273)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.13% (1)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 3.7501272727903876
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 750
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 64% (480)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 35.87% (269)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.13% (1)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 2.7749715296165482
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 750
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 65.47% (491)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 34.27% (257)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.27% (2)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 2.191986221088383
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 750
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 63.2% (474)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 36.53% (274)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.27% (2)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 1.836000005105162
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 750
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 64.8% (486)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 34.93% (262)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.27% (2)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 1.629252182245437
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 750
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 64.27% (482)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 35.47% (266)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.27% (2)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 1.5023185259959349
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 750
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 63.6% (477)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 36.13% (271)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.27% (2)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 1.1618358977500587
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 750
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 64.93% (487)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 34.93% (262)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.13% (1)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 1.1362052688492958
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 750
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 64.4% (483)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 35.33% (265)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.27% (2)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 1.0497074333838767
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 750
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 65.33% (490)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 34.4% (258)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.27% (2)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 0.8865013575787167
|
|
||||||
|
|
||||||
page=1 (count=1000)
|
|
||||||
--------------------------------
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 750
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 63.33% (475)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 36.4% (273)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.27% (2)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 1.6325150460009787
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 750
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 61.73% (463)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 38% (285)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.27% (2)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 1.5385085364524884
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 750
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 63.6% (477)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 36.13% (271)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.27% (2)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 1.343965340697668
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 750
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 64.13% (481)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 35.73% (268)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.13% (1)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 1.1842750119930687
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 750
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 63.73% (478)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 36% (270)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.27% (2)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 1.112559219903824
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 750
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 62.8% (471)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 36.93% (277)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.27% (2)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 0.9444137586901881
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 750
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 64% (480)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 35.73% (268)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.27% (2)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 0.9175624525798468
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 750
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 63.47% (476)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 36.27% (272)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.27% (2)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 0.8877949306723629
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 750
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 62.53% (469)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 37.2% (279)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.27% (2)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 0.7669201996298972
|
|
||||||
imixs-ml-training_1 |
|
|
||||||
imixs-ml-training_1 | ......documents trained in total = 750
|
|
||||||
imixs-ml-training_1 | ...... quality level GOOD = 62.8% (471)
|
|
||||||
imixs-ml-training_1 | ...... quality level LOW = 37.07% (278)
|
|
||||||
imixs-ml-training_1 | ...... quality level BAD = 0.13% (1)
|
|
||||||
imixs-ml-training_1 | ...... average NER = 0.7161310708827515
|
|
||||||
|
|
@ -1,127 +0,0 @@
|
||||||
[paths]
|
|
||||||
train = null
|
|
||||||
dev = null
|
|
||||||
vectors = null
|
|
||||||
init_tok2vec = null
|
|
||||||
|
|
||||||
[system]
|
|
||||||
seed = 0
|
|
||||||
gpu_allocator = null
|
|
||||||
|
|
||||||
[nlp]
|
|
||||||
lang = "de"
|
|
||||||
pipeline = ["ner"]
|
|
||||||
disabled = []
|
|
||||||
before_creation = null
|
|
||||||
after_creation = null
|
|
||||||
after_pipeline_creation = null
|
|
||||||
batch_size = 1000
|
|
||||||
tokenizer = {"@tokenizers":"spacy.Tokenizer.v1"}
|
|
||||||
|
|
||||||
[components]
|
|
||||||
|
|
||||||
[components.ner]
|
|
||||||
factory = "ner"
|
|
||||||
incorrect_spans_key = null
|
|
||||||
moves = null
|
|
||||||
update_with_oracle_cut_size = 100
|
|
||||||
|
|
||||||
[components.ner.model]
|
|
||||||
@architectures = "spacy.TransitionBasedParser.v2"
|
|
||||||
state_type = "ner"
|
|
||||||
extra_state_tokens = false
|
|
||||||
hidden_width = 64
|
|
||||||
maxout_pieces = 2
|
|
||||||
use_upper = true
|
|
||||||
nO = null
|
|
||||||
|
|
||||||
[components.ner.model.tok2vec]
|
|
||||||
@architectures = "spacy.HashEmbedCNN.v2"
|
|
||||||
pretrained_vectors = null
|
|
||||||
width = 96
|
|
||||||
depth = 4
|
|
||||||
embed_size = 2000
|
|
||||||
window_size = 1
|
|
||||||
maxout_pieces = 3
|
|
||||||
subword_features = true
|
|
||||||
|
|
||||||
[corpora]
|
|
||||||
|
|
||||||
[corpora.dev]
|
|
||||||
@readers = "spacy.Corpus.v1"
|
|
||||||
path = ${paths.dev}
|
|
||||||
gold_preproc = false
|
|
||||||
max_length = 0
|
|
||||||
limit = 0
|
|
||||||
augmenter = null
|
|
||||||
|
|
||||||
[corpora.train]
|
|
||||||
@readers = "spacy.Corpus.v1"
|
|
||||||
path = ${paths.train}
|
|
||||||
gold_preproc = false
|
|
||||||
max_length = 0
|
|
||||||
limit = 0
|
|
||||||
augmenter = null
|
|
||||||
|
|
||||||
[training]
|
|
||||||
seed = ${system.seed}
|
|
||||||
gpu_allocator = ${system.gpu_allocator}
|
|
||||||
dropout = 0.1
|
|
||||||
accumulate_gradient = 1
|
|
||||||
patience = 1600
|
|
||||||
max_epochs = 0
|
|
||||||
max_steps = 20000
|
|
||||||
eval_frequency = 200
|
|
||||||
frozen_components = []
|
|
||||||
annotating_components = []
|
|
||||||
dev_corpus = "corpora.dev"
|
|
||||||
train_corpus = "corpora.train"
|
|
||||||
before_to_disk = null
|
|
||||||
|
|
||||||
[training.batcher]
|
|
||||||
@batchers = "spacy.batch_by_words.v1"
|
|
||||||
discard_oversize = false
|
|
||||||
tolerance = 0.2
|
|
||||||
get_length = null
|
|
||||||
|
|
||||||
[training.batcher.size]
|
|
||||||
@schedules = "compounding.v1"
|
|
||||||
start = 100
|
|
||||||
stop = 1000
|
|
||||||
compound = 1.001
|
|
||||||
t = 0.0
|
|
||||||
|
|
||||||
[training.logger]
|
|
||||||
@loggers = "spacy.ConsoleLogger.v1"
|
|
||||||
progress_bar = false
|
|
||||||
|
|
||||||
[training.optimizer]
|
|
||||||
@optimizers = "Adam.v1"
|
|
||||||
beta1 = 0.9
|
|
||||||
beta2 = 0.999
|
|
||||||
L2_is_weight_decay = true
|
|
||||||
L2 = 0.01
|
|
||||||
grad_clip = 1.0
|
|
||||||
use_averages = false
|
|
||||||
eps = 0.00000001
|
|
||||||
learn_rate = 0.001
|
|
||||||
|
|
||||||
[training.score_weights]
|
|
||||||
ents_f = 1.0
|
|
||||||
ents_p = 0.0
|
|
||||||
ents_r = 0.0
|
|
||||||
ents_per_type = null
|
|
||||||
|
|
||||||
[pretraining]
|
|
||||||
|
|
||||||
[initialize]
|
|
||||||
vectors = ${paths.vectors}
|
|
||||||
init_tok2vec = ${paths.init_tok2vec}
|
|
||||||
vocab_data = null
|
|
||||||
lookups = null
|
|
||||||
before_init = null
|
|
||||||
after_init = null
|
|
||||||
|
|
||||||
[initialize.components]
|
|
||||||
|
|
||||||
[initialize.tokenizer]
|
|
||||||
|
|
@ -1,40 +0,0 @@
|
||||||
{
|
|
||||||
"lang":"de",
|
|
||||||
"name":"pipeline",
|
|
||||||
"version":"0.0.0",
|
|
||||||
"spacy_version":">=3.1.1,<3.2.0",
|
|
||||||
"description":"",
|
|
||||||
"author":"",
|
|
||||||
"email":"",
|
|
||||||
"url":"",
|
|
||||||
"license":"",
|
|
||||||
"spacy_git_version":"ffaead8fe",
|
|
||||||
"vectors":{
|
|
||||||
"width":0,
|
|
||||||
"vectors":0,
|
|
||||||
"keys":0,
|
|
||||||
"name":null
|
|
||||||
},
|
|
||||||
"labels":{
|
|
||||||
"ner":[
|
|
||||||
"cdtr.bic",
|
|
||||||
"cdtr.iban",
|
|
||||||
"cdtr.name",
|
|
||||||
"invoice.date",
|
|
||||||
"invoice.number",
|
|
||||||
"invoice.total"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"pipeline":[
|
|
||||||
"ner"
|
|
||||||
],
|
|
||||||
"components":[
|
|
||||||
"ner"
|
|
||||||
],
|
|
||||||
"disabled":[
|
|
||||||
|
|
||||||
],
|
|
||||||
"_sourced_vectors_hashes":{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
{
|
|
||||||
"moves":null,
|
|
||||||
"update_with_oracle_cut_size":100,
|
|
||||||
"multitasks":[
|
|
||||||
|
|
||||||
],
|
|
||||||
"min_action_freq":1,
|
|
||||||
"learn_tokens":false,
|
|
||||||
"beam_width":1,
|
|
||||||
"beam_density":0.0,
|
|
||||||
"beam_update_prob":0.0,
|
|
||||||
"incorrect_spans_key":null
|
|
||||||
}
|
|
||||||
Binary file not shown.
|
|
@ -1 +0,0 @@
|
||||||
‚¥movesÚÄ{"0":{},"1":{"cdtr.name":-1,"cdtr.iban":-2,"cdtr.bic":-3,"invoice.total":-4,"invoice.date":-5,"invoice.number":-6},"2":{"cdtr.name":-1,"cdtr.iban":-2,"cdtr.bic":-3,"invoice.total":-4,"invoice.date":-5,"invoice.number":-6},"3":{"cdtr.name":-1,"cdtr.iban":-2,"cdtr.bic":-3,"invoice.total":-4,"invoice.date":-5,"invoice.number":-6},"4":{"":1,"cdtr.name":-1,"cdtr.iban":-2,"cdtr.bic":-3,"invoice.total":-4,"invoice.date":-5,"invoice.number":-6},"5":{"":1}}£cfg<66>§neg_keyÀ
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -1 +0,0 @@
|
||||||
<EFBFBD>
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
<EFBFBD>
|
|
||||||
File diff suppressed because it is too large
Load diff
Binary file not shown.
|
|
@ -1,127 +0,0 @@
|
||||||
[paths]
|
|
||||||
train = null
|
|
||||||
dev = null
|
|
||||||
vectors = null
|
|
||||||
init_tok2vec = null
|
|
||||||
|
|
||||||
[system]
|
|
||||||
seed = 0
|
|
||||||
gpu_allocator = null
|
|
||||||
|
|
||||||
[nlp]
|
|
||||||
lang = "de"
|
|
||||||
pipeline = ["ner"]
|
|
||||||
disabled = []
|
|
||||||
before_creation = null
|
|
||||||
after_creation = null
|
|
||||||
after_pipeline_creation = null
|
|
||||||
batch_size = 1000
|
|
||||||
tokenizer = {"@tokenizers":"spacy.Tokenizer.v1"}
|
|
||||||
|
|
||||||
[components]
|
|
||||||
|
|
||||||
[components.ner]
|
|
||||||
factory = "ner"
|
|
||||||
incorrect_spans_key = null
|
|
||||||
moves = null
|
|
||||||
update_with_oracle_cut_size = 100
|
|
||||||
|
|
||||||
[components.ner.model]
|
|
||||||
@architectures = "spacy.TransitionBasedParser.v2"
|
|
||||||
state_type = "ner"
|
|
||||||
extra_state_tokens = false
|
|
||||||
hidden_width = 64
|
|
||||||
maxout_pieces = 2
|
|
||||||
use_upper = true
|
|
||||||
nO = null
|
|
||||||
|
|
||||||
[components.ner.model.tok2vec]
|
|
||||||
@architectures = "spacy.HashEmbedCNN.v2"
|
|
||||||
pretrained_vectors = null
|
|
||||||
width = 96
|
|
||||||
depth = 4
|
|
||||||
embed_size = 2000
|
|
||||||
window_size = 1
|
|
||||||
maxout_pieces = 3
|
|
||||||
subword_features = true
|
|
||||||
|
|
||||||
[corpora]
|
|
||||||
|
|
||||||
[corpora.dev]
|
|
||||||
@readers = "spacy.Corpus.v1"
|
|
||||||
path = ${paths.dev}
|
|
||||||
gold_preproc = false
|
|
||||||
max_length = 0
|
|
||||||
limit = 0
|
|
||||||
augmenter = null
|
|
||||||
|
|
||||||
[corpora.train]
|
|
||||||
@readers = "spacy.Corpus.v1"
|
|
||||||
path = ${paths.train}
|
|
||||||
gold_preproc = false
|
|
||||||
max_length = 0
|
|
||||||
limit = 0
|
|
||||||
augmenter = null
|
|
||||||
|
|
||||||
[training]
|
|
||||||
seed = ${system.seed}
|
|
||||||
gpu_allocator = ${system.gpu_allocator}
|
|
||||||
dropout = 0.1
|
|
||||||
accumulate_gradient = 1
|
|
||||||
patience = 1600
|
|
||||||
max_epochs = 0
|
|
||||||
max_steps = 20000
|
|
||||||
eval_frequency = 200
|
|
||||||
frozen_components = []
|
|
||||||
annotating_components = []
|
|
||||||
dev_corpus = "corpora.dev"
|
|
||||||
train_corpus = "corpora.train"
|
|
||||||
before_to_disk = null
|
|
||||||
|
|
||||||
[training.batcher]
|
|
||||||
@batchers = "spacy.batch_by_words.v1"
|
|
||||||
discard_oversize = false
|
|
||||||
tolerance = 0.2
|
|
||||||
get_length = null
|
|
||||||
|
|
||||||
[training.batcher.size]
|
|
||||||
@schedules = "compounding.v1"
|
|
||||||
start = 100
|
|
||||||
stop = 1000
|
|
||||||
compound = 1.001
|
|
||||||
t = 0.0
|
|
||||||
|
|
||||||
[training.logger]
|
|
||||||
@loggers = "spacy.ConsoleLogger.v1"
|
|
||||||
progress_bar = false
|
|
||||||
|
|
||||||
[training.optimizer]
|
|
||||||
@optimizers = "Adam.v1"
|
|
||||||
beta1 = 0.9
|
|
||||||
beta2 = 0.999
|
|
||||||
L2_is_weight_decay = true
|
|
||||||
L2 = 0.01
|
|
||||||
grad_clip = 1.0
|
|
||||||
use_averages = false
|
|
||||||
eps = 0.00000001
|
|
||||||
learn_rate = 0.001
|
|
||||||
|
|
||||||
[training.score_weights]
|
|
||||||
ents_f = 1.0
|
|
||||||
ents_p = 0.0
|
|
||||||
ents_r = 0.0
|
|
||||||
ents_per_type = null
|
|
||||||
|
|
||||||
[pretraining]
|
|
||||||
|
|
||||||
[initialize]
|
|
||||||
vectors = ${paths.vectors}
|
|
||||||
init_tok2vec = ${paths.init_tok2vec}
|
|
||||||
vocab_data = null
|
|
||||||
lookups = null
|
|
||||||
before_init = null
|
|
||||||
after_init = null
|
|
||||||
|
|
||||||
[initialize.components]
|
|
||||||
|
|
||||||
[initialize.tokenizer]
|
|
||||||
|
|
@ -1,36 +0,0 @@
|
||||||
{
|
|
||||||
"lang":"de",
|
|
||||||
"name":"pipeline",
|
|
||||||
"version":"0.0.0",
|
|
||||||
"spacy_version":">=3.1.1,<3.2.0",
|
|
||||||
"description":"",
|
|
||||||
"author":"",
|
|
||||||
"email":"",
|
|
||||||
"url":"",
|
|
||||||
"license":"",
|
|
||||||
"spacy_git_version":"ffaead8fe",
|
|
||||||
"vectors":{
|
|
||||||
"width":0,
|
|
||||||
"vectors":0,
|
|
||||||
"keys":0,
|
|
||||||
"name":null
|
|
||||||
},
|
|
||||||
"labels":{
|
|
||||||
"ner":[
|
|
||||||
"iban",
|
|
||||||
"price"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"pipeline":[
|
|
||||||
"ner"
|
|
||||||
],
|
|
||||||
"components":[
|
|
||||||
"ner"
|
|
||||||
],
|
|
||||||
"disabled":[
|
|
||||||
|
|
||||||
],
|
|
||||||
"_sourced_vectors_hashes":{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
{
|
|
||||||
"moves":null,
|
|
||||||
"update_with_oracle_cut_size":100,
|
|
||||||
"multitasks":[
|
|
||||||
|
|
||||||
],
|
|
||||||
"min_action_freq":1,
|
|
||||||
"learn_tokens":false,
|
|
||||||
"beam_width":1,
|
|
||||||
"beam_density":0.0,
|
|
||||||
"beam_update_prob":0.0,
|
|
||||||
"incorrect_spans_key":null
|
|
||||||
}
|
|
||||||
Binary file not shown.
|
|
@ -1 +0,0 @@
|
||||||
‚ĄmovesŮ„{"0":{},"1":{"iban":-1,"price":-2},"2":{"iban":-1,"price":-2},"3":{"iban":-1,"price":-2},"4":{"":1,"iban":-1,"price":-2},"5":{"":1}}Łcfg<66>§neg_keyŔ
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -1 +0,0 @@
|
||||||
<EFBFBD>
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
<EFBFBD>
|
|
||||||
File diff suppressed because it is too large
Load diff
Binary file not shown.
|
|
@ -1,52 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
||||||
<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
|
||||||
|
|
||||||
<!-- Workflow Instance -->
|
|
||||||
<item name="workflow.endpoint"><value xsi:type="xs:string">https://alexander-logistics.office-workflow.de/api/</value></item>
|
|
||||||
<item name="workflow.userid"><value xsi:type="xs:string">admin</value></item>
|
|
||||||
<item name="workflow.password"><value xsi:type="xs:string">imixs4.null</value></item>
|
|
||||||
|
|
||||||
<!-- Erledigte Rechnungen -->
|
|
||||||
<item name="workflow.query"><value xsi:type="xs:string">($workflowgroup:"Rechnungseingang" OR $workflowgroup:"Sachrechnung") AND ($taskid:5900)</value></item>
|
|
||||||
|
|
||||||
<item name="workflow.pagesize"><value xsi:type="xs:int">500</value></item>
|
|
||||||
<item name="workflow.pageindex"><value xsi:type="xs:int">0</value></item>
|
|
||||||
<item name="workflow.entities">
|
|
||||||
<value xsi:type="xs:string">cdtr.name</value>
|
|
||||||
<value xsi:type="xs:string">cdtr.iban</value>
|
|
||||||
<value xsi:type="xs:string">cdtr.bic</value>
|
|
||||||
<value xsi:type="xs:string">invoice.total</value>
|
|
||||||
<value xsi:type="xs:string">invoice.date</value>
|
|
||||||
<value xsi:type="xs:string">invoice.number</value>
|
|
||||||
</item>
|
|
||||||
<item name="workflow.locale">
|
|
||||||
<value xsi:type="xs:string">en_GB</value>
|
|
||||||
<value xsi:type="xs:string">en_US</value>
|
|
||||||
<value xsi:type="xs:string">de_DE</value>
|
|
||||||
</item>
|
|
||||||
|
|
||||||
<!-- Tika OCR Server -->
|
|
||||||
<item name="tika.ocrmode"><value xsi:type="xs:string">OCR_ONLY</value></item>
|
|
||||||
<item name="tika.options">
|
|
||||||
<value xsi:type="xs:string">X-Tika-OCRLanguage=eng+deu</value>
|
|
||||||
<value xsi:type="xs:string">X-Tika-PDFocrStrategy=OCR_ONLY</value>
|
|
||||||
</item>
|
|
||||||
|
|
||||||
<!-- ML spaCy Server -->
|
|
||||||
<item name="ml.training.endpoint"><value xsi:type="xs:string">http://imixs-ml-spacy:8000/</value></item>
|
|
||||||
<item name="ml.training.model"><value xsi:type="xs:string">invoice-de-0.1.0</value></item>
|
|
||||||
<item name="ml.training.filepattern"><value xsi:type="xs:string">.pdf|.PDF</value></item>
|
|
||||||
<!-- LOW | GOOD -->
|
|
||||||
<item name="ml.training.quality"><value xsi:type="xs:string">LOW</value></item>
|
|
||||||
<item name="ml.training.iterations"><value xsi:type="xs:string">10</value></item>
|
|
||||||
<item name="ml.training.dropoutrate"><value xsi:type="xs:string">0.25</value></item>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ML Max Accuracy - should be between 1 and 0 -->
|
|
||||||
<item name="ml.options"><value xsi:type="xs:string">min_losses=0</value></item>
|
|
||||||
|
|
||||||
</document>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,44 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
||||||
<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
|
||||||
|
|
||||||
<!-- Workflow Instance -->
|
|
||||||
<item name="workflow.endpoint"><value xsi:type="xs:string">https://alexander-logistics.office-workflow.de/api/</value></item>
|
|
||||||
<item name="workflow.userid"><value xsi:type="xs:string">admin</value></item>
|
|
||||||
<item name="workflow.password"><value xsi:type="xs:string">imixs4.null</value></item>
|
|
||||||
|
|
||||||
<!-- -->
|
|
||||||
<item name="workflow.query"><value xsi:type="xs:string">($uniqueid:f4eaceda-f28a-4394-928e-1a05daaf2760) OR ($uniqueid:a5d1e7fe-d74a-4fa2-9b06-3221865759fa) OR ($uniqueid:c0290497-f613-4492-81b6-4ae1e1680029) OR ($uniqueid:d8e3fce4-d11c-46a4-8ba0-369b4c6e902f) OR ($uniqueid:8b766f35-828a-41f1-be04-00b4b62da4d0)</value></item>
|
|
||||||
|
|
||||||
<item name="workflow.pagesize"><value xsi:type="xs:int">100</value></item>
|
|
||||||
<item name="workflow.pageindex"><value xsi:type="xs:int">0</value></item>
|
|
||||||
<item name="workflow.entities">
|
|
||||||
<value xsi:type="xs:string">cdtr.name</value>
|
|
||||||
<value xsi:type="xs:string">cdtr.iban</value>
|
|
||||||
<value xsi:type="xs:string">cdtr.bic</value>
|
|
||||||
<value xsi:type="xs:string">invoice.total</value>
|
|
||||||
<value xsi:type="xs:string">invoice.date</value>
|
|
||||||
<value xsi:type="xs:string">invoice.number</value>
|
|
||||||
</item>
|
|
||||||
<item name="workflow.locale">
|
|
||||||
<value xsi:type="xs:string">en_GB</value>
|
|
||||||
<value xsi:type="xs:string">en_US</value>
|
|
||||||
<value xsi:type="xs:string">de_DE</value>
|
|
||||||
</item>
|
|
||||||
|
|
||||||
<!-- Tika OCR Server -->
|
|
||||||
<item name="tika.ocrmode"><value xsi:type="xs:string">OCR_ONLY</value></item>
|
|
||||||
<item name="tika.options">
|
|
||||||
<value xsi:type="xs:string">X-Tika-OCRLanguage=eng+deu</value>
|
|
||||||
<value xsi:type="xs:string">X-Tika-PDFocrStrategy=OCR_ONLY</value>
|
|
||||||
</item>
|
|
||||||
|
|
||||||
<!-- ML spaCy Server -->
|
|
||||||
<item name="ml.validation.endpoint"><value xsi:type="xs:string">http://imixs-ml-spacy:8000/</value></item>
|
|
||||||
<item name="ml.validation.model"><value xsi:type="xs:string">invoice-de-0.1.0</value></item>
|
|
||||||
<item name="ml.validation.filepattern"><value xsi:type="xs:string">.pdf|.PDF</value></item>
|
|
||||||
|
|
||||||
</document>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
1
office-alexander-logistics-app/.gitignore
vendored
1
office-alexander-logistics-app/.gitignore
vendored
|
|
@ -1 +0,0 @@
|
||||||
/target/
|
|
||||||
|
|
@ -1,287 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
<parent>
|
|
||||||
<artifactId>office-alexander-logistics</artifactId>
|
|
||||||
<groupId>com.alexander-logistics</groupId>
|
|
||||||
<version>1.2.3</version>
|
|
||||||
</parent>
|
|
||||||
<artifactId>office-alexander-logistics-app</artifactId>
|
|
||||||
<packaging>war</packaging>
|
|
||||||
<name>Imixs Office Workflow App</name>
|
|
||||||
|
|
||||||
<profiles>
|
|
||||||
<profile>
|
|
||||||
<id>docker</id>
|
|
||||||
<build>
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-antrun-plugin</artifactId>
|
|
||||||
<version>1.8</version>
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<phase>install</phase>
|
|
||||||
<configuration>
|
|
||||||
<target>
|
|
||||||
<exec executable="docker">
|
|
||||||
<arg value="build" />
|
|
||||||
<arg value="-t" />
|
|
||||||
<arg value="imixs/${imixs-office.applicationname}" />
|
|
||||||
<arg value="../." />
|
|
||||||
</exec>
|
|
||||||
</target>
|
|
||||||
</configuration>
|
|
||||||
<goals>
|
|
||||||
<goal>run</goal>
|
|
||||||
</goals>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
</profile>
|
|
||||||
|
|
||||||
<profile>
|
|
||||||
<id>debug</id>
|
|
||||||
<build>
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-antrun-plugin</artifactId>
|
|
||||||
<version>1.8</version>
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<phase>install</phase>
|
|
||||||
<configuration>
|
|
||||||
<target>
|
|
||||||
<exec executable="docker">
|
|
||||||
<arg value="build" />
|
|
||||||
<arg value="-f" />
|
|
||||||
<arg value="../Dockerfile-wildfly-debug" />
|
|
||||||
<arg value="-t" />
|
|
||||||
<arg value="imixs/${imixs-office.applicationname}" />
|
|
||||||
<arg value="../." />
|
|
||||||
</exec>
|
|
||||||
</target>
|
|
||||||
</configuration>
|
|
||||||
<goals>
|
|
||||||
<goal>run</goal>
|
|
||||||
</goals>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
</profile>
|
|
||||||
|
|
||||||
<profile>
|
|
||||||
<id>kubernetes</id>
|
|
||||||
<build>
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-antrun-plugin</artifactId>
|
|
||||||
<version>1.8</version>
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<phase>install</phase>
|
|
||||||
<configuration>
|
|
||||||
<target>
|
|
||||||
<exec executable="docker">
|
|
||||||
<arg value="build" />
|
|
||||||
<arg value="-t" />
|
|
||||||
<arg
|
|
||||||
value="imixs/${imixs-office.applicationname}:${project.version}" />
|
|
||||||
<arg value="../." />
|
|
||||||
</exec>
|
|
||||||
<exec executable="docker">
|
|
||||||
<arg value="tag" />
|
|
||||||
<arg
|
|
||||||
value="imixs/${imixs-office.applicationname}:${project.version}" />
|
|
||||||
<arg
|
|
||||||
value="${org.imixs.kubernetes.registry}/imixs/${imixs-office.applicationname}:${project.version}" />
|
|
||||||
</exec>
|
|
||||||
<exec executable="docker">
|
|
||||||
<arg value="push" />
|
|
||||||
<arg
|
|
||||||
value="${org.imixs.kubernetes.registry}/imixs/${imixs-office.applicationname}:${project.version}" />
|
|
||||||
</exec>
|
|
||||||
</target>
|
|
||||||
</configuration>
|
|
||||||
<goals>
|
|
||||||
<goal>run</goal>
|
|
||||||
</goals>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
</profile>
|
|
||||||
|
|
||||||
</profiles>
|
|
||||||
<build>
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<artifactId>maven-war-plugin</artifactId>
|
|
||||||
<version>2.6</version>
|
|
||||||
<configuration>
|
|
||||||
<failOnMissingWebXml>false</failOnMissingWebXml>
|
|
||||||
<webResources>
|
|
||||||
<resource>
|
|
||||||
<filtering>true</filtering>
|
|
||||||
<!-- this is relative to the pom.xml directory -->
|
|
||||||
<directory>${custom.webResources}</directory>
|
|
||||||
<includes>
|
|
||||||
<include>**/WEB-INF/*</include>
|
|
||||||
<!-- include any other file types you want to filter -->
|
|
||||||
</includes>
|
|
||||||
</resource>
|
|
||||||
</webResources>
|
|
||||||
<workDirectory>target/overlay-war-folder</workDirectory>
|
|
||||||
<!-- We exclude libs form the parent WAR artifact -->
|
|
||||||
<overlays>
|
|
||||||
<overlay>
|
|
||||||
<groupId>org.imixs.workflow</groupId>
|
|
||||||
<artifactId>imixs-office-workflow-app</artifactId>
|
|
||||||
<excludes>
|
|
||||||
<exclude>WEB-INF/lib/*.jar</exclude>
|
|
||||||
</excludes>
|
|
||||||
</overlay>
|
|
||||||
</overlays>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
|
|
||||||
|
|
||||||
<dependencies>
|
|
||||||
<!-- Imixs Workflow -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.imixs.workflow</groupId>
|
|
||||||
<artifactId>imixs-workflow-core</artifactId>
|
|
||||||
<type>jar</type>
|
|
||||||
<scope>compile</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.imixs.workflow</groupId>
|
|
||||||
<artifactId>imixs-workflow-engine</artifactId>
|
|
||||||
<type>jar</type>
|
|
||||||
<scope>compile</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.imixs.workflow</groupId>
|
|
||||||
<artifactId>imixs-workflow-jax-rs</artifactId>
|
|
||||||
<type>jar</type>
|
|
||||||
<scope>compile</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.imixs.workflow</groupId>
|
|
||||||
<artifactId>imixs-workflow-faces</artifactId>
|
|
||||||
<type>jar</type>
|
|
||||||
<scope>compile</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.imixs.workflow</groupId>
|
|
||||||
<artifactId>imixs-workflow-index-lucene</artifactId>
|
|
||||||
<scope>compile</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- Marty -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.imixs.workflow</groupId>
|
|
||||||
<artifactId>imixs-marty</artifactId>
|
|
||||||
<type>jar</type>
|
|
||||||
<scope>compile</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- Imixs-Office-Workflow -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.imixs.workflow</groupId>
|
|
||||||
<artifactId>imixs-office-workflow-app</artifactId>
|
|
||||||
<type>war</type>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.imixs.workflow</groupId>
|
|
||||||
<artifactId>imixs-office-workflow-util</artifactId>
|
|
||||||
<scope>compile</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- Imixs-Archive -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.imixs.workflow</groupId>
|
|
||||||
<artifactId>imixs-archive-api</artifactId>
|
|
||||||
<scope>compile</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- Imixs-Archive Documents -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.imixs.workflow</groupId>
|
|
||||||
<artifactId>imixs-archive-documents</artifactId>
|
|
||||||
<scope>compile</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- Imixs-Archive Importer -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.imixs.workflow</groupId>
|
|
||||||
<artifactId>imixs-archive-importer</artifactId>
|
|
||||||
<scope>compile</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- SEPA Adapter -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.imixs.workflow</groupId>
|
|
||||||
<artifactId>imixs-adapters-sepa</artifactId>
|
|
||||||
<scope>compile</scope>
|
|
||||||
</dependency>
|
|
||||||
<!-- QR Code -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.imixs.workflow</groupId>
|
|
||||||
<artifactId>imixs-adapters-qrcode</artifactId>
|
|
||||||
<scope>compile</scope>
|
|
||||||
</dependency>
|
|
||||||
<!-- POI Adapter -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.imixs.workflow</groupId>
|
|
||||||
<artifactId>imixs-adapters-poi</artifactId>
|
|
||||||
<scope>compile</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- Imixs-ML -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.imixs.workflow</groupId>
|
|
||||||
<artifactId>imixs-ml-workflow</artifactId>
|
|
||||||
<version>${org.imixs.ml.version}</version>
|
|
||||||
<scope>compile</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- Apache PDFBox -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.pdfbox</groupId>
|
|
||||||
<artifactId>pdfbox</artifactId>
|
|
||||||
<version>2.0.19</version>
|
|
||||||
<scope>compile</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- xsl 2.0 support -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>net.sf.saxon</groupId>
|
|
||||||
<artifactId>Saxon-HE</artifactId>
|
|
||||||
<version>9.9.1-4</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Apache Commons FTP Client -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>commons-net</groupId>
|
|
||||||
<artifactId>commons-net</artifactId>
|
|
||||||
<version>3.6</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
</dependencies>
|
|
||||||
</project>
|
|
||||||
|
|
@ -1,157 +0,0 @@
|
||||||
package com.alexanderlogistics;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.logging.Logger;
|
|
||||||
|
|
||||||
import javax.enterprise.context.ConversationScoped;
|
|
||||||
import javax.faces.context.FacesContext;
|
|
||||||
import javax.inject.Inject;
|
|
||||||
import javax.inject.Named;
|
|
||||||
|
|
||||||
import org.imixs.workflow.ItemCollection;
|
|
||||||
import org.imixs.workflow.engine.DocumentService;
|
|
||||||
import org.imixs.workflow.exceptions.QueryException;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The CargosoftController CDI Bean provides Front-End methods for the cargosoft
|
|
||||||
* kreditore objects.
|
|
||||||
* <p>
|
|
||||||
* The method search provides a suggest list searching a phrase within the
|
|
||||||
* cargosoft creditor list (type=cargosoftkreditor).
|
|
||||||
*
|
|
||||||
* @author rsoika
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@Named
|
|
||||||
@ConversationScoped
|
|
||||||
public class CargosoftController implements Serializable {
|
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
|
||||||
private static Logger logger = Logger.getLogger(CargosoftController.class.getName());
|
|
||||||
|
|
||||||
public static final String TYPE_CARGOSOFTKREDITOR = "cargosoftkreditor";
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
protected DocumentService documentService;
|
|
||||||
|
|
||||||
private List<String> searchResult = null;
|
|
||||||
|
|
||||||
private ItemCollection kreditor = null; // used for zahlungsziel (kreidtor.xhtml)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method searches a text phrase within the list of cargosoft kreditor
|
|
||||||
* objects (type=cargosoftkreditor).
|
|
||||||
* <p>
|
|
||||||
* JSF Integration:
|
|
||||||
*
|
|
||||||
* {@code
|
|
||||||
*
|
|
||||||
* <h:commandScript name="imixsOfficeWorkflow.mlSearch" action=
|
|
||||||
* "#{cargosoftController.search()}" rendered="#{cargosoftController!=null}"
|
|
||||||
* render= "cargosoft-results" /> }
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* JavaScript Example:
|
|
||||||
*
|
|
||||||
* <pre>
|
|
||||||
* {@code
|
|
||||||
* imixsOfficeWorkflow.cargosoftSearch({ item: '_invoicenumber' })
|
|
||||||
* }
|
|
||||||
* </pre>
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void searchCreditor() {
|
|
||||||
|
|
||||||
searchResult = new ArrayList<String>();
|
|
||||||
// get the param from faces context....
|
|
||||||
FacesContext fc = FacesContext.getCurrentInstance();
|
|
||||||
String phrase = fc.getExternalContext().getRequestParameterMap().get("phrase");
|
|
||||||
if (phrase == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
logger.fine("search prase '" + phrase + "'");
|
|
||||||
|
|
||||||
// String input =workflowController.getWorkitem().getItemValueString(itemName);
|
|
||||||
if (phrase == null || phrase.length() < 2) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// die cargosoft Kreditornummer beginnt seltsamerweise mit einem K
|
|
||||||
// und die Debitoren mit einem D.....
|
|
||||||
String query = "(type:" + TYPE_CARGOSOFTKREDITOR + ") AND ( (name:K" + phrase + "*) OR (name:D" + phrase
|
|
||||||
+ "*) OR (" + phrase.toLowerCase() + "*) )";
|
|
||||||
|
|
||||||
try {
|
|
||||||
List<ItemCollection> result = documentService.find(query, 20, 0);
|
|
||||||
logger.info("found " + result.size() + " creditors...");
|
|
||||||
if (result != null) {
|
|
||||||
for (ItemCollection cdtr : result) {
|
|
||||||
|
|
||||||
String cdtrNo = cdtr.getItemValueString("_VENDOR_NUM");
|
|
||||||
// Aenderugn 22. Jun wir geben das K/D direkt witer
|
|
||||||
// if (cdtrNo.startsWith("K")) {
|
|
||||||
// wir entfernen das führende K
|
|
||||||
// cdtrNo=cdtrNo.substring(1);
|
|
||||||
// }
|
|
||||||
searchResult.add(cdtrNo + " - " + cdtr.getItemValueString("_VENDOR_Name") + " - "
|
|
||||||
+ cdtr.getItemValueString("cdtr.creditperiod"));
|
|
||||||
// logger.finest("...add: " + cdtr.getItemValueString("_VENDOR_NUM") + " -
|
|
||||||
// "+cdtr.getItemValueString("_VENDOR_Name"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (QueryException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> getSearchResult() {
|
|
||||||
return searchResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method reset the search and input state.
|
|
||||||
*/
|
|
||||||
public void reset() {
|
|
||||||
searchResult = new ArrayList<String>();
|
|
||||||
logger.fine("reset");
|
|
||||||
}
|
|
||||||
|
|
||||||
public ItemCollection getKreditor() {
|
|
||||||
if (kreditor == null) {
|
|
||||||
kreditor = new ItemCollection();
|
|
||||||
}
|
|
||||||
return kreditor;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setKreditor(ItemCollection kreditor) {
|
|
||||||
this.kreditor = kreditor;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateZahlungsziel() {
|
|
||||||
|
|
||||||
String cdtrNumber = kreditor.getItemValueString("cdtr.number");
|
|
||||||
String period = kreditor.getItemValueString("cdtr.creditperiod");
|
|
||||||
logger.info("Zahlungsziel = " + cdtrNumber + " / " + period);
|
|
||||||
|
|
||||||
// search workitem
|
|
||||||
String query = "(type:" + TYPE_CARGOSOFTKREDITOR + ") AND (name:" + cdtrNumber + ")";
|
|
||||||
|
|
||||||
List<ItemCollection> result;
|
|
||||||
try {
|
|
||||||
result = documentService.find(query, 1, 0);
|
|
||||||
if (result.size() == 1) {
|
|
||||||
ItemCollection cargoCreditor = result.get(0);
|
|
||||||
cargoCreditor.setItemValue("cdtr.creditperiod", Integer.parseInt(period));
|
|
||||||
documentService.save(cargoCreditor);
|
|
||||||
}
|
|
||||||
} catch (QueryException | NumberFormatException e) {
|
|
||||||
logger.severe("Unable to find cargosoft kreditor "+e.getMessage());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,168 +0,0 @@
|
||||||
package com.alexanderlogistics;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.time.YearMonth;
|
|
||||||
import java.time.ZoneId;
|
|
||||||
import java.util.Calendar;
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.logging.Logger;
|
|
||||||
|
|
||||||
import javax.enterprise.context.ConversationScoped;
|
|
||||||
import javax.enterprise.context.SessionScoped;
|
|
||||||
import javax.inject.Inject;
|
|
||||||
import javax.inject.Named;
|
|
||||||
|
|
||||||
import org.imixs.workflow.ItemCollection;
|
|
||||||
import org.imixs.workflow.engine.DocumentService;
|
|
||||||
import org.imixs.workflow.engine.index.Category;
|
|
||||||
import org.imixs.workflow.engine.index.SearchService;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Der InvoiceAnalyseController dient zur Auswertung der Sachprüfungs WOrklfow
|
|
||||||
* Schritte. Die Analyse Seite ist büer das Admin Menü erreichbar.
|
|
||||||
*
|
|
||||||
* @author rsoika
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@Named
|
|
||||||
@ConversationScoped
|
|
||||||
public class InvoiceAnalyseController implements Serializable {
|
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
|
||||||
private static Logger logger = Logger.getLogger(InvoiceAnalyseController.class.getName());
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
protected DocumentService documentService;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
SearchService searchService;
|
|
||||||
|
|
||||||
Category sachpruefung;
|
|
||||||
Category verteilung;
|
|
||||||
Category buchhaltung;
|
|
||||||
|
|
||||||
private ItemCollection filter;
|
|
||||||
|
|
||||||
public ItemCollection getFilter() {
|
|
||||||
if (filter == null) {
|
|
||||||
filter = new ItemCollection();
|
|
||||||
// compute start stop based on current month
|
|
||||||
YearMonth startYearMonth = YearMonth.now();
|
|
||||||
java.time.LocalDate startOfMonthDate = startYearMonth.atDay(1);
|
|
||||||
java.time.LocalDate endOfMonthDate = startYearMonth.atEndOfMonth();
|
|
||||||
filter.setItemValue("start",
|
|
||||||
java.util.Date.from(startOfMonthDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant()));
|
|
||||||
filter.setItemValue("stop",
|
|
||||||
java.util.Date.from(endOfMonthDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant()));
|
|
||||||
}
|
|
||||||
return filter;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFilter(ItemCollection filter) {
|
|
||||||
this.filter = filter;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Category getSachpruefung() {
|
|
||||||
return sachpruefung;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Category getVerteilung() {
|
|
||||||
return verteilung;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Category getBuchhaltung() {
|
|
||||||
return buchhaltung;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int totalCountByCategory(Category cat) {
|
|
||||||
int result = 0;
|
|
||||||
|
|
||||||
Collection<Integer> allCounts = cat.getLabels().values();
|
|
||||||
result = allCounts.stream().reduce(0, Integer::sum);
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Fuert verschiedene Queries aus um eine Analyse der Sachprufung durchzuführen.
|
|
||||||
*/
|
|
||||||
public void analyse() {
|
|
||||||
|
|
||||||
logger.info("start analyse....");
|
|
||||||
verteilung = null;
|
|
||||||
sachpruefung = null;
|
|
||||||
Date start = filter.getItemValueDate("start");
|
|
||||||
Date stop = filter.getItemValueDate("stop");
|
|
||||||
|
|
||||||
logger.info("...daterange=" + start + " - " + stop);
|
|
||||||
|
|
||||||
// serach date range?
|
|
||||||
String sDateFrom = "191401070000"; // because * did not work here
|
|
||||||
String sDateTo = "211401070000";
|
|
||||||
SimpleDateFormat dateformat = new SimpleDateFormat("yyyyMMddHHmm");
|
|
||||||
|
|
||||||
if (start != null) {
|
|
||||||
Calendar cal = Calendar.getInstance();
|
|
||||||
cal.setTime(start);
|
|
||||||
sDateFrom = dateformat.format(cal.getTime());
|
|
||||||
}
|
|
||||||
if (stop != null) {
|
|
||||||
Calendar cal = Calendar.getInstance();
|
|
||||||
cal.setTime(stop);
|
|
||||||
cal.add(Calendar.DATE, 1);
|
|
||||||
sDateTo = dateformat.format(cal.getTime());
|
|
||||||
}
|
|
||||||
|
|
||||||
// query Verteilung
|
|
||||||
String query = "(type:workitem OR type:workitemarchive) ";
|
|
||||||
if (start != null || stop != null) {
|
|
||||||
query += "AND (taxonomy.verteilung.stop:[" + sDateFrom + " TO " + sDateTo + "]) ";
|
|
||||||
}
|
|
||||||
logger.info(query);
|
|
||||||
List<Category> taxResult = searchService.getTaxonomyByQuery(query, "taxonomy.verteilung.stop.by");
|
|
||||||
if (taxResult.size() > 0) {
|
|
||||||
verteilung = taxResult.get(0);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// query Sachprüfung
|
|
||||||
query = "(type:workitem OR type:workitemarchive) ";
|
|
||||||
if (start != null || stop != null) {
|
|
||||||
query += "AND (taxonomy.sachpruefung.stop:[" + sDateFrom + " TO " + sDateTo + "]) ";
|
|
||||||
}
|
|
||||||
logger.info(query);
|
|
||||||
taxResult = searchService.getTaxonomyByQuery(query, "taxonomy.sachpruefung.stop.by");
|
|
||||||
if (taxResult.size() > 0) {
|
|
||||||
sachpruefung = taxResult.get(0);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// query Buchhaltung
|
|
||||||
query = "(type:workitem OR type:workitemarchive) ";
|
|
||||||
if (start != null || stop != null) {
|
|
||||||
query += "AND (taxonomy.buchhaltung.stop:[" + sDateFrom + " TO " + sDateTo + "]) ";
|
|
||||||
}
|
|
||||||
logger.info(query);
|
|
||||||
taxResult = searchService.getTaxonomyByQuery(query, "taxonomy.buchhaltung.stop.by");
|
|
||||||
if (taxResult.size() > 0) {
|
|
||||||
buchhaltung = taxResult.get(0);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method reset the search and input state.
|
|
||||||
*/
|
|
||||||
public void reset() {
|
|
||||||
filter = new ItemCollection();
|
|
||||||
sachpruefung = null;
|
|
||||||
verteilung = null;
|
|
||||||
buchhaltung = null;
|
|
||||||
logger.fine("reset");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,372 +0,0 @@
|
||||||
package com.alexanderlogistics;
|
|
||||||
|
|
||||||
import java.time.LocalDate;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.logging.Logger;
|
|
||||||
|
|
||||||
import org.imixs.workflow.ItemCollection;
|
|
||||||
import org.imixs.workflow.engine.plugins.AbstractPlugin;
|
|
||||||
import org.imixs.workflow.exceptions.PluginException;
|
|
||||||
import org.imixs.workflow.exceptions.QueryException;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Das InvoicePlugin prüft die Eingaben auf gültigkeit, so dass diese problemlos
|
|
||||||
* nach Cargosoft expoertier werden können.
|
|
||||||
* <p>
|
|
||||||
* Konkret geht es darum, das im Status 5200 in den ChildItems keine leeren
|
|
||||||
* Zeilen vorkommen dürfen.
|
|
||||||
* <p>
|
|
||||||
* Im Status 5000 muss immer der payment.type ausgewählt werden. Dies wird vom
|
|
||||||
* Plugin explizit geprüft
|
|
||||||
* <p>
|
|
||||||
* Das Plugin prüft auch auf doppelte Rechnungsnummern. Dabei wird Systemweit
|
|
||||||
* geprüft ob die Rechnungsnummer schon einmal vorkam. Falls ja, wird eine
|
|
||||||
* Warnung ausgegeben. Der Benutzer kann diese dann skippen.
|
|
||||||
* <p>
|
|
||||||
* 2.2.22 - Das Plugin erzeugt auch das Feld _img welches die Images von
|
|
||||||
* Sofortüberweisung, Mahnung und Ablehnung anzeigt.
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* @author rsoika
|
|
||||||
* @version 1.0
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public class InvoicePlugin extends AbstractPlugin {
|
|
||||||
|
|
||||||
public static final int TASK_ERFASSUNG = 5001;
|
|
||||||
public static final int TASK_SACHPRUEFUNG = 5200;
|
|
||||||
public static final int TASK_SACHPRUEFUNG_DELEGATION = 5210;
|
|
||||||
public static final int EVENT_FREIGEBEN = 20;
|
|
||||||
public static final String ITEM_INVOICE_PERIOD = "invoice.period";
|
|
||||||
|
|
||||||
public static final String CHILD_ITEM_PROPERTY = "_ChildItems";
|
|
||||||
public static final String ERROR_MISSING_DATA = "MISSING_DATA";
|
|
||||||
public static final String ERROR_DUPPLICATE_INVOICE_NUMBER = "DUPPLICATE_INVOICE_NUMBER";
|
|
||||||
|
|
||||||
// XX-YYY-####-###
|
|
||||||
public static final String REGEX_POSNUMER = "([A-Z]{2}-[A-Z]{3}-[0-9]{4}-[0-9]{3})";
|
|
||||||
|
|
||||||
private static Logger logger = Logger.getLogger(InvoicePlugin.class.getName());
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Test childworkitems for empty lines
|
|
||||||
*
|
|
||||||
* @throws PluginException - if data is missing
|
|
||||||
*
|
|
||||||
**/
|
|
||||||
@Override
|
|
||||||
public ItemCollection run(ItemCollection workitem, ItemCollection event) throws PluginException {
|
|
||||||
|
|
||||||
updateImg(workitem);
|
|
||||||
|
|
||||||
// skip if validaten tag is required=false
|
|
||||||
ItemCollection evalItemCollection = this.getWorkflowService().evalWorkflowResult(event, "validation", workitem);
|
|
||||||
if (evalItemCollection != null) {
|
|
||||||
// evaluate the validation rules...
|
|
||||||
if ("false".equalsIgnoreCase(evalItemCollection.getItemValueString("required"))) {
|
|
||||||
return workitem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
boolean isPublicEvent = !("0".equals(event.getItemValueString("keypublicresult")));
|
|
||||||
boolean isCargoRechnung = ("Rechnungseingang".equals(workitem.getWorkflowGroup()));
|
|
||||||
|
|
||||||
// Payment.type muss immer eingetragne werden!
|
|
||||||
if (isPublicEvent && workitem.getTaskID() >= TASK_ERFASSUNG && workitem.getEventID() < 900) {
|
|
||||||
if (workitem.getItemValueString("payment.type").trim().isEmpty()) {
|
|
||||||
// throw a plugin exception!
|
|
||||||
throw new PluginException(InvoicePlugin.class.getName(), ERROR_MISSING_DATA,
|
|
||||||
"Eingabefehler - Bitte wählen Sie eine Zahlungsart aus!");
|
|
||||||
}
|
|
||||||
// doppelte Rechnungsnummer prüfen
|
|
||||||
if (workitem.getTaskID() == TASK_ERFASSUNG) {
|
|
||||||
validateInvoiceNumber(workitem);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (workitem.getTaskID() == TASK_ERFASSUNG || ((workitem.getTaskID() == TASK_SACHPRUEFUNG
|
|
||||||
|| workitem.getTaskID() == TASK_SACHPRUEFUNG_DELEGATION)
|
|
||||||
&& workitem.getEventID() == EVENT_FREIGEBEN)) {
|
|
||||||
// Buchungsperiode auf plausi prüfen
|
|
||||||
if (isCargoRechnung && "workitem".equals(workitem.getType())) {
|
|
||||||
validateBuchungsperiode(workitem.getItemValueString(ITEM_INVOICE_PERIOD));
|
|
||||||
}
|
|
||||||
// Cargosoft Kreditorennnummer prüfen
|
|
||||||
if (isCargoRechnung) {
|
|
||||||
validateCargosoftCdtrNumber(workitem);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// die prüfung der positionsnummern und Category erfolgt nur im Status
|
|
||||||
// Sachprüfung (5200) und nur beim Freigeben (20)!
|
|
||||||
if (isCargoRechnung
|
|
||||||
&& ((workitem.getTaskID() == TASK_SACHPRUEFUNG || workitem.getTaskID() == TASK_SACHPRUEFUNG_DELEGATION)
|
|
||||||
&& workitem.getEventID() == EVENT_FREIGEBEN)) {
|
|
||||||
List<ItemCollection> childs = explodeChildList(workitem);
|
|
||||||
for (ItemCollection posItem : childs) {
|
|
||||||
if (posItem.getItemValueString("name").trim().isEmpty()) {
|
|
||||||
// throw a plugin exception - because name is missing!
|
|
||||||
throw new PluginException(InvoicePlugin.class.getName(), ERROR_MISSING_DATA,
|
|
||||||
"Eingabefehler - Die Positionsnummer in Zeile " + posItem.getItemValueString("numpos")
|
|
||||||
+ " muss ausgefüllt sein!");
|
|
||||||
}
|
|
||||||
|
|
||||||
// validate pos for regex pattern 'XX-YYY-####-###'
|
|
||||||
if (!posItem.getItemValueString("name").matches(REGEX_POSNUMER)) {
|
|
||||||
// throw a plugin exception - because name is missing!
|
|
||||||
throw new PluginException(InvoicePlugin.class.getName(), ERROR_MISSING_DATA,
|
|
||||||
"Eingabefehler - Die Positionsnummer in Zeile " + posItem.getItemValueString("numpos")
|
|
||||||
+ " muss im Format 'XX-YYY-####-###' eingegeben werden!");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (posItem.getItemValueString("category").trim().isEmpty()) {
|
|
||||||
// throw a plugin exception - because name is missing!
|
|
||||||
throw new PluginException(InvoicePlugin.class.getName(), ERROR_MISSING_DATA,
|
|
||||||
"Eingabefehler - Die Leistungsart in Zeile " + posItem.getItemValueString("numpos")
|
|
||||||
+ " muss ausgefüllt sein!");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (posItem.getItemValueString("tax").trim().isEmpty()) {
|
|
||||||
// throw a plugin exception - because name is missing!
|
|
||||||
throw new PluginException(InvoicePlugin.class.getName(), ERROR_MISSING_DATA,
|
|
||||||
"Eingabefehler - Die Steuer in Zeile " + posItem.getItemValueString("numpos")
|
|
||||||
+ " muss ausgefüllt sein!");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (posItem.getItemValueFloat("amount") == 0) {
|
|
||||||
// throw a plugin exception - because name is missing!
|
|
||||||
throw new PluginException(InvoicePlugin.class.getName(), ERROR_MISSING_DATA,
|
|
||||||
"Eingabefehler - Der Nettobetrag in Zeile " + posItem.getItemValueString("numpos")
|
|
||||||
+ " darf nicht 0 sein!");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Buchunsperiode
|
|
||||||
if (!posItem.getItemValueString(ITEM_INVOICE_PERIOD).trim().isEmpty()) {
|
|
||||||
validateBuchungsperiode(posItem.getItemValueString(ITEM_INVOICE_PERIOD));
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Ergaenzung 18.05.2021:
|
|
||||||
// es kann vorkommen, das die Anwender abweichende Buchungsperioden eingeben so
|
|
||||||
// das die Hauptbuchungsperiode gar ncht merh vorkommt. Das darf aber nicht der
|
|
||||||
// fall sein.
|
|
||||||
// Im folgenden überprüfen wir ob eine Buchungszeile vorkommt in der keine oder
|
|
||||||
// die Hauptbuchunsperiode ausgewählt wurde. Ist das nicht der Fal gibt es eine
|
|
||||||
// Fehlermeldung für den Anwendere
|
|
||||||
if (isCargoRechnung && childs.size() > 0) {
|
|
||||||
String hauptBuchungsperiode = workitem.getItemValueString("invoice.period");
|
|
||||||
boolean buchungsperiodenValid = false;
|
|
||||||
for (ItemCollection posItem : childs) {
|
|
||||||
String posBuchungsperiode = posItem.getItemValueString("invoice.period");
|
|
||||||
if (posBuchungsperiode.isEmpty() || posBuchungsperiode.equals(hauptBuchungsperiode)) {
|
|
||||||
// alles fein!
|
|
||||||
buchungsperiodenValid = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (buchungsperiodenValid == false) {
|
|
||||||
// fehlerhafte Buchungsperioden.
|
|
||||||
throw new PluginException(InvoicePlugin.class.getName(), ERROR_MISSING_DATA,
|
|
||||||
"Eingabefehler - Bitte überprüfen Sie die Hauptbuchungsperiode mit den Buchungsperioden der einzelnen Positionen!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return workitem;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Hilfsroutine die das _img item aktualisiert.
|
|
||||||
*/
|
|
||||||
private void updateImg(ItemCollection workitem) {
|
|
||||||
|
|
||||||
// Update _img icon list
|
|
||||||
String img=workitem.getItemValueString("_img");
|
|
||||||
// 031=ablehnen
|
|
||||||
// 100=sofortüberweichung
|
|
||||||
// 074=mahnen
|
|
||||||
// sofortüberweisung
|
|
||||||
if (workitem.getEventID()==96 && !img.contains("100.png")) {
|
|
||||||
img=img+"<img title='Sofortüberweisung' src=\"/layout/icons/icon100.png\">";
|
|
||||||
}
|
|
||||||
// mahnen
|
|
||||||
if (workitem.getEventID()==95 && !img.contains("103.png")) {
|
|
||||||
img=img+"<img title='Mahnen' src=\"/layout/icons/icon103.png\">";
|
|
||||||
|
|
||||||
}
|
|
||||||
// ablehnen
|
|
||||||
if (workitem.getTaskID()==5100 && workitem.getEventID()==90 && !img.contains("028.png")) {
|
|
||||||
img=img+"<img title='Abgelehnt' src=\"/layout/icons/icon028.png\">";
|
|
||||||
}
|
|
||||||
if (workitem.getTaskID()==5200 && workitem.getEventID()==90 && !img.contains("028.png")) {
|
|
||||||
img=img+"<img title='Abgelehnt' src=\"/layout/icons/icon028.png\">";
|
|
||||||
}
|
|
||||||
workitem.setItemValue("_img", img);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
for (String entry: eventLog) {
|
|
||||||
// sofortüberweisung
|
|
||||||
if (entry.contains(".96") && !img.contains("100.png")) {
|
|
||||||
img=img+"<img src=\"/layout/icons/icon100.png\">";
|
|
||||||
}
|
|
||||||
// mahnen
|
|
||||||
if (entry.contains(".95") && !img.contains("074.png")) {
|
|
||||||
img=img+"<img src=\"/layout/icons/icon074.png\">";
|
|
||||||
}
|
|
||||||
// ablehnen
|
|
||||||
if (entry.contains("5100.90") && !img.contains("031.png")) {
|
|
||||||
img=img+"<img src=\"/layout/icons/icon031.png\">";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
workitem.setItemValue("_img", img);
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Diese Method prüft die Buchungsperiode auf Plausibilität
|
|
||||||
*
|
|
||||||
* YYYY(+1)01-12
|
|
||||||
*
|
|
||||||
* z.b. 202110 oder 202107 oder 202201
|
|
||||||
*
|
|
||||||
* @param workitem
|
|
||||||
* @throws PluginException
|
|
||||||
*/
|
|
||||||
private void validateBuchungsperiode(String period) throws PluginException {
|
|
||||||
|
|
||||||
// buchungsperionde nur prüfen wenn noch nicht archiviert
|
|
||||||
if (!period.isEmpty()) {
|
|
||||||
LocalDate localDate = LocalDate.now();
|
|
||||||
int year = localDate.getYear();
|
|
||||||
// build regex....
|
|
||||||
String regex = "(" + year + "|" + (year + 1) + "|" + (year - 1) + ")(1[0-2]|0[1-9])";
|
|
||||||
|
|
||||||
if (!period.matches(regex)) {
|
|
||||||
// throw a plugin exception - because name is missing!
|
|
||||||
throw new PluginException(InvoicePlugin.class.getName(), ERROR_MISSING_DATA,
|
|
||||||
"Eingabefehler - Bitte geben Sie eine gültige Buchungsperiode ein! Prüfen Sie auch die Spalte BP in der Positionstabelle.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Diese Method prüft ob die "invoice.number" bereits einmal im
|
|
||||||
* Rechnugnsworkflow vergeben wurde. Falls ja wird eine PluginExcpetion
|
|
||||||
* ausgelöst.
|
|
||||||
* <p>
|
|
||||||
* Query Example:
|
|
||||||
* <p>
|
|
||||||
* <code>NOT $uniqueid:"9f72fa50-4845-41ea-b6b9-ccd518c353be" AND
|
|
||||||
txtcooperatespace:"9dba107e-f8ef-4150-a832-040d75a6eda7" AND invoice.number:"45"</code>
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* in case a duplicate invoice was detected the item invoice.number.duplicate is
|
|
||||||
* filled. This item is used for a conditional event. The case is displayed as a
|
|
||||||
* warning in the form.
|
|
||||||
*
|
|
||||||
* @throws PluginException
|
|
||||||
* @throws QueryException
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
private void validateInvoiceNumber(ItemCollection workitem) throws PluginException {
|
|
||||||
|
|
||||||
String invoiceNumber = workitem.getItemValueString("invoice.number");
|
|
||||||
String invoiceNumberDuplicate = workitem.getItemValueString("invoice.number.duplicate");
|
|
||||||
|
|
||||||
// wenn keine Rechnungsnummer eingegeben wurde gehts weiter!
|
|
||||||
if (invoiceNumber.isEmpty()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// rechnungseingang only workitems...
|
|
||||||
String query = "(type:workitem OR type:workitemarchive) AND ($modelversion:rechnungseingang*) AND NOT ($uniqueid:\""
|
|
||||||
+ workitem.getUniqueID() + "\") AND (invoice.number:\"" + invoiceNumber + "\")";
|
|
||||||
try {
|
|
||||||
int result = this.getWorkflowService().getDocumentService().count(query, 1);
|
|
||||||
if (result > 0) {
|
|
||||||
// wenn _invoicenumber_duplicate bereits gesetzt ist - dann geht es ohne prüfung
|
|
||||||
// weiter
|
|
||||||
if (!invoiceNumberDuplicate.isEmpty()) {
|
|
||||||
logger.warning("...validateion skipped by user with duplicate invoice number: " + invoiceNumber);
|
|
||||||
} else {
|
|
||||||
|
|
||||||
// set _invoicenumber_duplicate - dadurch wird die warnmeldung ausgegeben und
|
|
||||||
// der Vorgang nicht weitergeleitet
|
|
||||||
workitem.replaceItemValue("invoice.number.duplicate", invoiceNumber);
|
|
||||||
throw new PluginException(InvoicePlugin.class.getName(), ERROR_DUPPLICATE_INVOICE_NUMBER,
|
|
||||||
"ACHTUNG: Die Rechnungsnummer wurde bereits gebucht. Bitte prüfen Sie den Beleg. Sollte die Belegnummer korrekt sein, wiederholen Sie die Aktion.");
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// clear !
|
|
||||||
workitem.appendItemValue("invoice.number.duplicate.history",
|
|
||||||
workitem.getItemValueString("invoice.number.duplicate"));
|
|
||||||
workitem.replaceItemValue("invoice.number.duplicate", "");
|
|
||||||
}
|
|
||||||
} catch (QueryException e) {
|
|
||||||
throw new PluginException(PluginException.class.getName(), "QUERY ERROR", e.getMessage(), e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Hilfsmethod prüft ob die cdtr.nummer mit einer nummer aus der Cargosoft
|
|
||||||
* Import Datei übereinstimmt.
|
|
||||||
*
|
|
||||||
* @param workitem
|
|
||||||
* @throws PluginException
|
|
||||||
*/
|
|
||||||
private void validateCargosoftCdtrNumber(ItemCollection workitem) throws PluginException {
|
|
||||||
String crdtrNumber = workitem.getItemValueString("cdtr.number");
|
|
||||||
|
|
||||||
// wenn keine Nummer eingegeben wurde gehts weiter!
|
|
||||||
if (crdtrNumber.isEmpty()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// search creditor number in cargosoft...
|
|
||||||
// die cargosoft Kreditornummer beginnt seltsamerweise mit einem K.....
|
|
||||||
try {
|
|
||||||
String query = "(type:cargosoftkreditor) AND (name:K" + crdtrNumber + " OR name:" + crdtrNumber + ")";
|
|
||||||
List<ItemCollection> result = this.getWorkflowService().getDocumentService().find(query, 1, 0);
|
|
||||||
if (result == null || result.size() == 0) {
|
|
||||||
throw new PluginException(InvoicePlugin.class.getName(), ERROR_MISSING_DATA,
|
|
||||||
"Die Kreditorennummer ist nicht gültig.");
|
|
||||||
|
|
||||||
} else {
|
|
||||||
// update cargosoft crediotr name
|
|
||||||
ItemCollection cargo = result.get(0);
|
|
||||||
workitem.setItemValue("cdtr.name.cargosoft", cargo.getItemValueString("_VENDOR_Name"));
|
|
||||||
}
|
|
||||||
} catch (QueryException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* converts the Map List of a workitem into a List of ItemCollectons
|
|
||||||
*/
|
|
||||||
@SuppressWarnings({ "rawtypes", "unchecked" })
|
|
||||||
protected static List<ItemCollection> explodeChildList(ItemCollection workitem) {
|
|
||||||
// convert current list of childItems into ItemCollection elements
|
|
||||||
ArrayList<ItemCollection> childItems = new ArrayList<ItemCollection>();
|
|
||||||
|
|
||||||
List<Object> mapOrderItems = workitem.getItemValue(CHILD_ITEM_PROPERTY);
|
|
||||||
for (Object mapOderItem : mapOrderItems) {
|
|
||||||
if (mapOderItem instanceof Map) {
|
|
||||||
ItemCollection itemCol = new ItemCollection((Map) mapOderItem);
|
|
||||||
childItems.add(itemCol);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return childItems;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
# Custom resource bundle
|
|
||||||
|
|
||||||
application_title=Alexander Global Logistics
|
|
||||||
application_build=${project.version}
|
|
||||||
|
|
||||||
alexander_form_basic=
|
|
||||||
alexander_form_basic_read=
|
|
||||||
alexander_sub_positionen=
|
|
||||||
alexander_sub_positionen_read=
|
|
||||||
alexander_sub_responsible=
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ERROR_INVALID_IBANBIC=Die Eingabe der IBAN/BIC is ungültig. Bitte überprüfen Sie Ihre Eingaben.
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
# Custom resource bundle
|
|
||||||
|
|
||||||
application_title=Alexander Global Logistics
|
|
||||||
application_build=${project.version}
|
|
||||||
|
|
||||||
alexander_form_basic=
|
|
||||||
alexander_form_basic_read=
|
|
||||||
alexander_sub_positionen=
|
|
||||||
alexander_sub_positionen_read=
|
|
||||||
alexander_sub_responsible=
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ERROR_INVALID_IBANBIC=Your input of the IBAN/BIC is invalid. Please check your data.
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_2_0.xsd"
|
|
||||||
bean-discovery-mode="all" version="2.0">
|
|
||||||
</beans>
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
<f:subview xmlns="http://www.w3.org/1999/xhtml"
|
|
||||||
xmlns:f="http://java.sun.com/jsf/core"
|
|
||||||
xmlns:h="http://java.sun.com/jsf/html"
|
|
||||||
xmlns:ui="http://java.sun.com/jsf/facelets">
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li><h:link outcome="/pages/admin/document_import">Dokument Import</h:link></li>
|
|
||||||
<li><h:link outcome="/pages/admin/sepa_config">SEPA</h:link></li>
|
|
||||||
<li><h:link outcome="/pages/admin/analyse_invoicing">Analyse Rechnungseingang</h:link></li>
|
|
||||||
<li><h:link outcome="/pages/admin/kreditor">Kreditoren Zahlungsziele</h:link></li>
|
|
||||||
</ul>
|
|
||||||
</f:subview>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
/* Custom Design */
|
|
||||||
|
|
||||||
|
|
||||||
.alexander-logistic-date {
|
|
||||||
width: 110px !important;
|
|
||||||
background: url(./calendar_14.png) no-repeat scroll left center white
|
|
||||||
!important;
|
|
||||||
background-position: 4px 6px, center !important;
|
|
||||||
padding-left: 22px !important;
|
|
||||||
}
|
|
||||||
|
|
@ -1,344 +0,0 @@
|
||||||
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
|
|
||||||
xmlns:f="http://java.sun.com/jsf/core"
|
|
||||||
xmlns:h="http://java.sun.com/jsf/html"
|
|
||||||
xmlns:ui="http://java.sun.com/jsf/facelets"
|
|
||||||
xmlns:i="http://java.sun.com/jsf/composite/imixs"
|
|
||||||
xmlns:c="http://java.sun.com/jsp/jstl/core"
|
|
||||||
xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"
|
|
||||||
xmlns:fn="http://xmlns.jcp.org/jsp/jstl/functions"
|
|
||||||
xmlns:marty="http://java.sun.com/jsf/composite/marty"
|
|
||||||
template="/layout/template.xhtml">
|
|
||||||
|
|
||||||
<ui:define name="content">
|
|
||||||
<f:view>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<script type="text/javascript">
|
|
||||||
/*<![CDATA[*/
|
|
||||||
$(document).ready(function() {
|
|
||||||
//$('.imixsdatatable').layoutImixsTable();
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
// This method refreshs the layout
|
|
||||||
function updateOptions(data) {
|
|
||||||
if (data.status === 'success') {
|
|
||||||
$('[id$=Optionlist]').imixsLayout();
|
|
||||||
|
|
||||||
/* var id='#'+data.source.id;
|
|
||||||
if (id.indexOf("input")>-1) {
|
|
||||||
$(id).focus();
|
|
||||||
} */
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*]]>*/
|
|
||||||
</script>
|
|
||||||
|
|
||||||
|
|
||||||
<h:form id="import_form_id">
|
|
||||||
<!-- ########## Error ########## -->
|
|
||||||
<ui:include src="/pages/error_message.xhtml" />
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="imixs-form">
|
|
||||||
<div class="imixs-header">
|
|
||||||
<h1>Document Importer</h1>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="imixs-body">
|
|
||||||
|
|
||||||
|
|
||||||
<div class="imixs-tabs">
|
|
||||||
<ul>
|
|
||||||
<li><a href="#tab-1">Timer Setting</a></li>
|
|
||||||
<li><a href="#tab-2">Data Sources</a></li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<!-- ### Timer ### -->
|
|
||||||
<div id="tab-1">
|
|
||||||
|
|
||||||
<div class="ui-state-highlight ui-corner-all"
|
|
||||||
style="margin-bottom: 10px; padding: .5em;">
|
|
||||||
<p><span class="typcn typcn-lightbulb"></span> Define a crontab to schedule the import processor.</p>
|
|
||||||
</div>
|
|
||||||
<ui:include src="sub_scheduler_control.xhtml">
|
|
||||||
<ui:param name="schedulerController"
|
|
||||||
value="#{documentImportController}" />
|
|
||||||
</ui:include>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- ### SMTP ### -->
|
|
||||||
<div id="tab-2">
|
|
||||||
|
|
||||||
<div class="ui-state-highlight ui-corner-all"
|
|
||||||
style="margin-bottom: 10px; padding: .5em;">
|
|
||||||
<p><span class="typcn typcn-lightbulb"></span> Define a destination IMAP server and assign mail addresses to specific workflow groups.</p>
|
|
||||||
</div>
|
|
||||||
<div class="imixs-form-panel">
|
|
||||||
|
|
||||||
<!-- ### Sources ### -->
|
|
||||||
<h:panelGroup layout="block"
|
|
||||||
id="imapOptionlist" binding="#{imapOptionlistContainer}">
|
|
||||||
<f:ajax onevent="updateOptions">
|
|
||||||
<table class="imixsdatatable"
|
|
||||||
style="width: 100%;">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th style="width: 10px;text-align: center;">Pos</th>
|
|
||||||
<th style="width: 100px;text-align: center;">Type</th>
|
|
||||||
<th style="">Workflowgroup</th>
|
|
||||||
<th style="">Modelversion</th>
|
|
||||||
<th style="">Task</th>
|
|
||||||
<th style="">Event</th>
|
|
||||||
<th style="width: 110px;">
|
|
||||||
<!-- delete -->
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
|
|
||||||
<tbody>
|
|
||||||
<ui:repeat var="source" value="#{documentImportController.sources}">
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<!-- pos -->
|
|
||||||
<td style=" text-align: center;">
|
|
||||||
<h:commandLink
|
|
||||||
actionListener="#{documentImportController.selectSource(source.item['index'])}">#<h:outputText
|
|
||||||
value="#{source.item['index']}" />
|
|
||||||
<f:ajax render="#{imapOptionlistContainer.clientId}"
|
|
||||||
onevent="updateOptions" />
|
|
||||||
</h:commandLink>
|
|
||||||
</td>
|
|
||||||
|
|
||||||
<!-- type -->
|
|
||||||
<td style="text-align: center;">
|
|
||||||
<h:outputText value="#{source.item['type']}" />
|
|
||||||
</td>
|
|
||||||
<!-- Workflowgroup -->
|
|
||||||
<td><h:outputText
|
|
||||||
value="#{source.item['workflowgroup']}" />
|
|
||||||
</td>
|
|
||||||
|
|
||||||
<td><h:outputText
|
|
||||||
value="#{source.item['workflowmodel']}" />
|
|
||||||
</td>
|
|
||||||
<td><h:outputText
|
|
||||||
value="#{source.item['task']}" />
|
|
||||||
</td>
|
|
||||||
<td><h:outputText
|
|
||||||
value="#{source.item['event']}" />
|
|
||||||
</td>
|
|
||||||
|
|
||||||
<td>
|
|
||||||
<h:commandLink
|
|
||||||
actionListener="#{documentImportController.moveSourceDown(source.item['index'])}">
|
|
||||||
<span class="typcn typcn-arrow-down-thick imixs-state-info"></span>
|
|
||||||
<f:ajax render="#{imapOptionlistContainer.clientId}"
|
|
||||||
onevent="updateOptions" />
|
|
||||||
</h:commandLink>
|
|
||||||
<h:commandLink
|
|
||||||
actionListener="#{documentImportController.moveSourceUp(source.item['index'])}">
|
|
||||||
<span class="typcn typcn-arrow-up-thick imixs-state-info"></span>
|
|
||||||
<f:ajax render="#{imapOptionlistContainer.clientId}"
|
|
||||||
onevent="updateOptions" />
|
|
||||||
</h:commandLink>
|
|
||||||
|
|
||||||
<h:commandLink
|
|
||||||
actionListener="#{documentImportController.removeSource(source.item['index'])}">
|
|
||||||
<span class="typcn typcn-trash imixs-state-info"></span>
|
|
||||||
<f:ajax render="#{imapOptionlistContainer.clientId}"
|
|
||||||
onevent="updateOptions" />
|
|
||||||
</h:commandLink></td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
|
|
||||||
</ui:repeat>
|
|
||||||
</tbody>
|
|
||||||
|
|
||||||
</table>
|
|
||||||
<!-- add button -->
|
|
||||||
<h:commandButton
|
|
||||||
value="#{message.add}"
|
|
||||||
actionListener="#{documentImportController.addSource()}">
|
|
||||||
<f:ajax render="#{imapOptionlistContainer.clientId}"
|
|
||||||
onevent="updateOptions" />
|
|
||||||
</h:commandButton>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ### Subform for selected source ### -->
|
|
||||||
|
|
||||||
<h:panelGroup layout="block" rendered="#{! empty documentImportController.source}" styleClass="imixs-form-panel">
|
|
||||||
<h3>Order ID #<h:outputText value="#{documentImportController.source.item['index']}"/></h3>
|
|
||||||
<div class="imixs-form-section-3">
|
|
||||||
<dl>
|
|
||||||
<dt>Type</dt>
|
|
||||||
<dd>
|
|
||||||
<h:selectOneRadio value="#{documentImportController.source.item['type']}">
|
|
||||||
<f:selectItem itemLabel="IMAP" itemValue="IMAP"/>
|
|
||||||
<f:selectItem itemLabel="FTP" itemValue="FTP"/>
|
|
||||||
<f:selectItem itemLabel="CSV" itemValue="CSV"/>
|
|
||||||
</h:selectOneRadio>
|
|
||||||
|
|
||||||
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
<dl>
|
|
||||||
<dt>Workflowgroup</dt>
|
|
||||||
<dd>
|
|
||||||
<h:selectOneMenu
|
|
||||||
value="#{documentImportController.source.item['workflowgroup']}">
|
|
||||||
<f:selectItem itemLabel=" - " itemValue=""/>
|
|
||||||
<c:forEach items="#{modelController.workflowGroups}" var="group">
|
|
||||||
<f:selectItem itemLabel="#{group}" itemValue="#{group}" />
|
|
||||||
</c:forEach>
|
|
||||||
</h:selectOneMenu>
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
</div>
|
|
||||||
<div class="imixs-form-section-3">
|
|
||||||
|
|
||||||
<dl>
|
|
||||||
<dt>Workflowmodel</dt>
|
|
||||||
<dd>
|
|
||||||
<h:inputText
|
|
||||||
value="#{documentImportController.source.item['workflowmodel']}"/>
|
|
||||||
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
<dl>
|
|
||||||
<dt>Task ID</dt>
|
|
||||||
<dd>
|
|
||||||
<h:inputText
|
|
||||||
value="#{documentImportController.source.item['task']}"/>
|
|
||||||
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
<dl>
|
|
||||||
<dt>Event ID</dt>
|
|
||||||
<dd>
|
|
||||||
<h:inputText
|
|
||||||
value="#{documentImportController.source.item['event']}"/>
|
|
||||||
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<hr />
|
|
||||||
<!-- IMAP -->
|
|
||||||
<div class="imixs-form-section-3">
|
|
||||||
<dl>
|
|
||||||
<dt>Server : Port</dt>
|
|
||||||
<dd>
|
|
||||||
<h:inputText style="width:80%;"
|
|
||||||
value="#{documentImportController.source.item['server']}">
|
|
||||||
</h:inputText> : <h:inputText style="width:15%;"
|
|
||||||
value="#{documentImportController.source.item['port']}">
|
|
||||||
</h:inputText>
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
|
|
||||||
<dl>
|
|
||||||
<dt>User</dt>
|
|
||||||
<dd>
|
|
||||||
<h:inputText required="false"
|
|
||||||
value="#{documentImportController.source.item['user']}">
|
|
||||||
</h:inputText>
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
<dl>
|
|
||||||
<dt>Password</dt>
|
|
||||||
<dd>
|
|
||||||
<h:inputSecret required="false" redisplay="true"
|
|
||||||
value="#{documentImportController.source.item['password']}">
|
|
||||||
</h:inputSecret>
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
</div>
|
|
||||||
<div class="imixs-form-section">
|
|
||||||
<dl>
|
|
||||||
<dt>Selector</dt>
|
|
||||||
<dd>
|
|
||||||
<h:inputText required="false"
|
|
||||||
value="#{documentImportController.source.item['selector']}">
|
|
||||||
</h:inputText>
|
|
||||||
<p class="small">A selector can be an optional regular expression to be used to select a subset of data</p>
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
<dl>
|
|
||||||
<dt>Options</dt>
|
|
||||||
<dd>
|
|
||||||
<h:inputTextarea required="false"
|
|
||||||
style="height: 5em; width: 100%;"
|
|
||||||
value="#{documentImportController.source.item['options']}">
|
|
||||||
</h:inputTextarea>
|
|
||||||
<p class="small">You can apply custom properties here.
|
|
||||||
</p>
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
</div>
|
|
||||||
</h:panelGroup> <!-- end of source subform -->
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</f:ajax>
|
|
||||||
|
|
||||||
|
|
||||||
</h:panelGroup>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="imixs-footer">
|
|
||||||
<h:outputLabel value="#{message.modified}: " />
|
|
||||||
<h:outputText
|
|
||||||
value="#{documentImportController.configuration.item['$modified']}">
|
|
||||||
<f:convertDateTime timeZone="#{message.timeZone}" type="both"
|
|
||||||
pattern="#{message.dateTimePattern}" />
|
|
||||||
</h:outputText>
|
|
||||||
|
|
||||||
|
|
||||||
<br />
|
|
||||||
|
|
||||||
<h:commandButton
|
|
||||||
actionListener="#{documentImportController.saveConfiguration()}"
|
|
||||||
action="/pages/admin/document_import"
|
|
||||||
value="#{message.save}">
|
|
||||||
</h:commandButton>
|
|
||||||
|
|
||||||
|
|
||||||
<h:commandButton value="#{message.close}" action="notes" />
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</h:form>
|
|
||||||
</f:view>
|
|
||||||
</ui:define>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ui:composition>
|
|
||||||
|
|
@ -1,93 +0,0 @@
|
||||||
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
|
|
||||||
xmlns:f="http://xmlns.jcp.org/jsf/core"
|
|
||||||
xmlns:h="http://xmlns.jcp.org/jsf/html"
|
|
||||||
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
|
|
||||||
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
|
|
||||||
xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"
|
|
||||||
xmlns:marty="http://xmlns.jcp.org/jsf/composite/marty"
|
|
||||||
xmlns:i="http://xmlns.jcp.org/jsf/composite/imixs"
|
|
||||||
template="/layout/template.xhtml">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<ui:define name="content">
|
|
||||||
|
|
||||||
|
|
||||||
<f:view>
|
|
||||||
<h:form id="zahlungsziel_form_id">
|
|
||||||
<!-- Cargosoft Creditor Search integration -->
|
|
||||||
<ui:include
|
|
||||||
src="/pages/workitems/forms/alexander/cargsoft-creditor-search.xhtml">
|
|
||||||
<ui:param name="workitem" value="#{cargosoftController.kreditor}" />
|
|
||||||
</ui:include>
|
|
||||||
<div class="imixs-form">
|
|
||||||
<div class="imixs-header">
|
|
||||||
<h1>
|
|
||||||
<h:outputText value="Kreditoren Zahlungsziele " />
|
|
||||||
</h1>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ########## Error ########## -->
|
|
||||||
<ui:include src="/pages/error_message.xhtml" />
|
|
||||||
|
|
||||||
<div class="imixs-body">
|
|
||||||
|
|
||||||
<div class="imixs-form-panel">
|
|
||||||
<div class="imixs-form-section-2">
|
|
||||||
|
|
||||||
<dl>
|
|
||||||
<dt>Kreditor:</dt>
|
|
||||||
|
|
||||||
<dd>
|
|
||||||
<h:inputText
|
|
||||||
value="#{cargosoftController.kreditor.item['cdtr.number']}"
|
|
||||||
pt:data-item="cdtr.number" />
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<h:panelGroup layout="block" styleClass="imixs-form-section"
|
|
||||||
id="contentIputID">
|
|
||||||
<dl>
|
|
||||||
<dt>Zahlungsziel:</dt>
|
|
||||||
<dd><h:inputText style="width:5em;"
|
|
||||||
value="#{cargosoftController.kreditor.item['cdtr.creditperiod']}"
|
|
||||||
pt:data-item="cdtr.creditperiod"
|
|
||||||
/> Tage</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
</h:panelGroup>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="imixs-footer">
|
|
||||||
<h:commandButton
|
|
||||||
action="/pages/admin/kreditor.xhtml?faces-redirect=true"
|
|
||||||
actionListener="#{cargosoftController.updateZahlungsziel()}"
|
|
||||||
value="#{message.save}" />
|
|
||||||
|
|
||||||
<h:commandButton value="#{message.close}" immediate="true"
|
|
||||||
action="/pages/notes.xhtml?faces-redirect=true"
|
|
||||||
actionListener="#{documentController.close()}" />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</h:form>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</f:view>
|
|
||||||
</ui:define>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ui:composition>
|
|
||||||
|
|
||||||
|
|
@ -1,210 +0,0 @@
|
||||||
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
|
|
||||||
xmlns:f="http://java.sun.com/jsf/core"
|
|
||||||
xmlns:h="http://java.sun.com/jsf/html"
|
|
||||||
xmlns:ui="http://java.sun.com/jsf/facelets"
|
|
||||||
xmlns:i="http://java.sun.com/jsf/composite/imixs"
|
|
||||||
xmlns:c="http://java.sun.com/jsp/jstl/core"
|
|
||||||
xmlns:marty="http://java.sun.com/jsf/composite/marty"
|
|
||||||
xmlns:a="http://xmlns.jcp.org/jsf/passthrough"
|
|
||||||
template="/layout/template.xhtml">
|
|
||||||
|
|
||||||
<ui:define name="content">
|
|
||||||
<f:view>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<script type="text/javascript">
|
|
||||||
/*<![CDATA[*/
|
|
||||||
|
|
||||||
function updateStatustPanel(data) {
|
|
||||||
//initUserInput($('#userselector_id'));
|
|
||||||
if (data.status === 'success') {
|
|
||||||
// select with wildcard operator
|
|
||||||
$('[id$=status_panel]').imixsLayout();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// display summary
|
|
||||||
$(document).ready(function() {
|
|
||||||
// erste Zeile hinzufügen, falls tabelle noch leer ist
|
|
||||||
var posTableEmpty=#{empty sepaController.dbtrList};
|
|
||||||
if (posTableEmpty) {
|
|
||||||
// click on add button
|
|
||||||
posButton=$("[data-id='addposbutton_id']");
|
|
||||||
if (posButton) {
|
|
||||||
$(posButton).click();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// This method refreshs the layout
|
|
||||||
function updateSepaList(data) {
|
|
||||||
if (data.status === 'success') {
|
|
||||||
$('[id$=oderlist]').imixsLayout();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*]]>*/
|
|
||||||
</script>
|
|
||||||
|
|
||||||
|
|
||||||
<h:form id="import_form_id">
|
|
||||||
<!-- ########## Error ########## -->
|
|
||||||
<ui:include src="/pages/error_message.xhtml" />
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="imixs-form">
|
|
||||||
<div class="imixs-header">
|
|
||||||
<h1>SEPA</h1>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="imixs-body">
|
|
||||||
<!-- **** General info ***** -->
|
|
||||||
|
|
||||||
<div class="imixs-form-panel">
|
|
||||||
<h1>Model Configuration</h1>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="imixs-form-section-2">
|
|
||||||
<dl>
|
|
||||||
<dt>SEPA Model Version</dt>
|
|
||||||
<dd>
|
|
||||||
<h:inputText required="false"
|
|
||||||
value="#{sepaController.configuration.item['_model_version']}">
|
|
||||||
</h:inputText>
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
|
|
||||||
<dl>
|
|
||||||
<dt>SEPA Initial Task</dt>
|
|
||||||
<dd>
|
|
||||||
<h:inputText required="false"
|
|
||||||
value="#{sepaController.configuration.item['_initial_task']}">
|
|
||||||
</h:inputText>
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="imixs-form-section">
|
|
||||||
<p>
|
|
||||||
<span class="typcn typcn-lightbulb"></span> The initial task
|
|
||||||
must define a report containing the query and style sheet
|
|
||||||
information. Invoices will be automatically grouped by the
|
|
||||||
attribute "_sepa_iban". If this attribute is not set, the
|
|
||||||
default sepa_iban will be assigned to the invoice before
|
|
||||||
processed. The SEPA workflow may optional include a
|
|
||||||
"invoice_update" item definition.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h:panelGroup layout="block" styleClass="imixs-form-section"
|
|
||||||
id="oderlist" binding="#{orderlistContainer}">
|
|
||||||
<h1>Debitor Options</h1>
|
|
||||||
|
|
||||||
<f:ajax render="oderlist" onevent="updateSepaList">
|
|
||||||
<table class="imixsdatatable imixs-orderitems">
|
|
||||||
<tr>
|
|
||||||
<th style="width: 140px">ID</th>
|
|
||||||
<th style="">Company<span class="imixs-required">
|
|
||||||
*</span></th>
|
|
||||||
<th style="width: 250px;">IBAN</th>
|
|
||||||
<th style="width: 150px;">BIC</th>
|
|
||||||
<th style="width: 50px">
|
|
||||||
<!-- delete -->
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<ui:repeat var="dbtr"
|
|
||||||
value="#{sepaController.dbtrList}">
|
|
||||||
<tr>
|
|
||||||
<!-- ID -->
|
|
||||||
<td><h:inputText value="#{dbtr.item['name']}"
|
|
||||||
style="width:100%;" /></td>
|
|
||||||
|
|
||||||
<!-- dbtr.name -->
|
|
||||||
<td><h:inputText value="#{dbtr.item['dbtr.name']}"
|
|
||||||
style="width:100%;" /></td>
|
|
||||||
|
|
||||||
<!-- dbtr.iban -->
|
|
||||||
<td><h:inputText value="#{dbtr.item['dbtr.iban']}"
|
|
||||||
style="width:100%;" /></td>
|
|
||||||
|
|
||||||
<!-- dbtr.bic -->
|
|
||||||
<td><h:inputText value="#{dbtr.item['dbtr.bic']}"
|
|
||||||
style="width:100%;" /></td>
|
|
||||||
|
|
||||||
|
|
||||||
<td><h:commandLink
|
|
||||||
actionListener="#{sepaController.removeDbtr(dbtr.item['name'])}">
|
|
||||||
<span class="typcn typcn-trash imixs-state-info"></span>
|
|
||||||
<f:ajax render="#{orderlistContainer.clientId}"
|
|
||||||
onevent="updateSepaList" />
|
|
||||||
</h:commandLink></td>
|
|
||||||
</tr>
|
|
||||||
</ui:repeat>
|
|
||||||
|
|
||||||
</table>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- add button -->
|
|
||||||
<h:commandButton value="#{message.add}"
|
|
||||||
a:data-id="addposbutton_id"
|
|
||||||
actionListener="#{sepaController.addDbtr}">
|
|
||||||
</h:commandButton>
|
|
||||||
</f:ajax>
|
|
||||||
</h:panelGroup>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- include timer control -->
|
|
||||||
<h1>Scheduler</h1>
|
|
||||||
|
|
||||||
<ui:include src="sub_scheduler_control.xhtml">
|
|
||||||
<ui:param name="schedulerController" value="#{sepaController}" />
|
|
||||||
</ui:include>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="imixs-footer">
|
|
||||||
<h:outputLabel value="#{message.modified}: " />
|
|
||||||
<h:outputText
|
|
||||||
value="#{sepaController.configuration.item['$modified']}">
|
|
||||||
<f:convertDateTime timeZone="#{message.timeZone}" type="both"
|
|
||||||
pattern="#{message.dateTimePattern}" />
|
|
||||||
</h:outputText>
|
|
||||||
|
|
||||||
|
|
||||||
<br />
|
|
||||||
|
|
||||||
<h:commandButton
|
|
||||||
actionListener="#{sepaController.saveConfiguration()}"
|
|
||||||
value="#{message.save}">
|
|
||||||
</h:commandButton>
|
|
||||||
|
|
||||||
<h:commandButton value="#{message.close}" action="notes" />
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</h:form>
|
|
||||||
|
|
||||||
|
|
||||||
</f:view>
|
|
||||||
</ui:define>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ui:composition>
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue