Changeset 227
- Timestamp:
- 12/07/06 14:45:06 (2 years ago)
- Files:
-
- branches/message-handling-refactor-branch/defaults/hefeweizen-defaults (modified) (1 diff)
- branches/message-handling-refactor-branch/src/hefeweizen_big_ania.rb (modified) (11 diffs)
- branches/message-handling-refactor-branch/src/hefeweizen_library_b2b_system.rb (modified) (4 diffs)
- branches/message-handling-refactor-branch/src/hefeweizen_library_directive.rb (modified) (3 diffs)
- branches/message-handling-refactor-branch/src/hefeweizen_library_ebMS_message2.rb (added)
- branches/message-handling-refactor-branch/src/hefeweizen_library_integration_point.rb (modified) (2 diffs)
- branches/message-handling-refactor-branch/src/hefeweizen_library_transactions.rb (modified) (4 diffs)
- branches/message-handling-refactor-branch/src/taskers/hefeweizen_tasker_application_dir_observer.rb (modified) (1 diff)
- branches/message-handling-refactor-branch/test/test-systems/Coronation/infrastructure/integration-points/filebased-integration.conf (modified) (3 diffs)
- branches/message-handling-refactor-branch/test/test-systems/Gnaraloo/infrastructure/integration-points/filebased-integration.conf (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/message-handling-refactor-branch/defaults/hefeweizen-defaults
r211 r227 33 33 34 34 35 BIG_ANIA_LOAD_TEST_ENVIRONMENT= true35 BIG_ANIA_LOAD_TEST_ENVIRONMENT=false 36 36 TEST_LIB_NAME=hefeweizen_library_big_ania_test_logic.rb 37 37 branches/message-handling-refactor-branch/src/hefeweizen_big_ania.rb
r219 r227 32 32 require "#{@config['LIB_DIR']}/hefeweizen_library_b2b_system" 33 33 require "#{@config['LIB_DIR']}/hefeweizen_library_directive" 34 require "#{@config['LIB_DIR']}/hefeweizen_library_ebMS_message "34 require "#{@config['LIB_DIR']}/hefeweizen_library_ebMS_message2" 35 35 36 36 begin … … 71 71 def run 72 72 73 if ! $configured then73 if !@configured then 74 74 if configure then 75 75 @logger.info "Successfully setup hefeweizen_big_ania" … … 112 112 begin 113 113 require @config['LIB_DIR'].strip + "/" + @config['TEST_LIB_NAME'].strip 114 $test_library = HefeWeizen::HefeWeizenTestLibrary::HefeWeizenBigAniaTestBusinessLogic.new @config115 @logger.info "Loaded HefeWeizen Test Library Version: " + $test_library.version114 @test_library = HefeWeizen::HefeWeizenTestLibrary::HefeWeizenBigAniaTestBusinessLogic.new @config 115 @logger.info "Loaded HefeWeizen Test Library Version: " + @test_library.version 116 116 rescue Exception => e 117 117 @logger.error "Error loading test library." … … 119 119 return false 120 120 end 121 else 122 @test_library = nil 121 123 end 122 124 … … 215 217 # transaction manager 216 218 begin 217 @transaction_manager = HefeWeizen::HefeWeizenLibrary::HefeWeizenTransactionManager.instance @config, @config['TRANSACTION_DIR'] 219 @transaction_manager = HefeWeizen::HefeWeizenLibrary::HefeWeizenTransactionManager.instance @config 220 if @transaction_manager.nil? then 221 @logger.error "Unable to load HefeWeizen Transaction Manager" 222 return false 223 end 218 224 rescue Exception => e 219 225 @logger.error "Unable to load HefeWeizen Transaction Manager: #{e.to_s}" 220 226 return false 221 227 end 222 if @transaction_manager.nil? then223 @logger.error "Unable to load HefeWeizen Transaction Manager"224 return false225 end226 228 227 229 # configured 228 230 @logger.info 'HefeWeizen Big Ania configured.' 229 $configured = true231 @configured = true 230 232 return true 231 233 end 232 234 233 235 # This method starts big_ania 234 236 # This method calls individual start methods. … … 339 341 puts "BIG ANIA PIPE ERROR: #{error.to_s}XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 340 342 puts "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 341 sleep (0.1)343 sleep 0.1 342 344 end 343 345 end … … 365 367 if transaction then 366 368 # test library first (is less complex) 367 if ! $test_library.nil? then368 close_transaction, processed = $test_library.process_command command_hash369 if !@test_library.nil? then 370 close_transaction, processed = @test_library.process_command command_hash 369 371 if processed then 370 372 transaction.close_transaction(close_transaction, "Test message.") if close_transaction … … 397 399 ############################################################ 398 400 401 ################# rewrite 402 ################# rewrite 403 ################# rewrite 404 ################# rewrite 405 406 407 399 408 # This method executes on the commands 400 409 # Must return a true in case some code did deal with the command. 401 410 def process_command_with_transaction transaction, command, command_hash 402 411 @logger.debug "Transaction state: #{transaction.get_current_state_name}" 403 412 413 if command == 'new directive' then 414 @logger.debug "Received new directive!" 415 if !transaction.open_and_new? then 416 @logger.warn "A transaction must be new and open for a new directive." 417 else 418 result = process_new_directive2 command, command_hash, transaction 419 @logger.debug "Processed directive." 420 421 # if there is a tasker to be started for digital signature then 422 # the result variable will hold the command to start that 423 # tasker 424 if result.class == TrueClass or result.class == FalseClass then 425 if result == true 426 @logger.debug "Successfully processed new directive." 427 @logger.debug "Its time to deliver the ebXML message." 428 return deliver( transaction ) 429 elsif result == false then 430 @logger.debug "Problems processing new directive xx." 431 # ??? 432 end 433 elsif result.class == String then 434 @logger.debug "Successfully processed new directive and a tasker must be started." 435 say_to_ania result 436 else 437 @logger.warn "Problems processing new directive: #{result}" 438 # ??? 439 end 440 end 441 elsif command == 'sign ebXML message done' then 442 @logger.debug "Received signing ebXML message is done." 443 transaction.transition_to_new_state "sign ebXML message done" 444 if ((encryption = true) == true) then 445 @logger.debug "ebXML message must be encrypted. Starting encrpytion tasker" 446 447 metadata = {'complete_ebXML_message_file_path' => command_hash['ebXML_message_file_path'], 448 'complete_ebXML_message_parameters_file_path' => command_hash['ebXML_message_parameters_file_path']} 449 450 command, expectation = start_an_encrypting_tasker metadata, transaction.transaction_id, command_hash['b2b_system_name'] 451 # SET EXPECTED NEW STATE 452 transaction.set_next_expectation(expectation) 453 say_to_ania command 454 return true 455 else 456 @logger.debug "ebXML message must NOT be encrypted." 457 end 458 @logger.debug "Its time to deliver the ebXML message." 459 460 return deliver( transaction ) 461 462 elsif command == 'encrypt ebXML message done' then 463 @logger.debug "Received encrypt ebXML message is done." 464 transaction.transition_to_new_state "encrypt ebXML message done" 465 @logger.debug "Its time to deliver the ebXML message." 466 return deliver( transaction ) 467 468 else 469 puts "I dont know what the fuck to do with #{command}" 470 end 471 472 # if transaction still open and noone processed it ....... I may have to close it. 473 474 end 475 476 def read_ebXML_message_info ebXML_message_parameters_file_path 477 if (FileTest.exists?(ebXML_message_parameters_file_path) && FileTest.readable?(ebXML_message_parameters_file_path)) then 478 return YAML.load(File.open(ebXML_message_parameters_file_path)) 479 else 480 return nil 481 end 482 end 483 484 def deliver transaction 485 transaction.transition_to_new_state "ebXML message delivery process started" 486 @logger.debug "DELIVER...........:::" 487 transaction.add_comment "YEP cool dude." 488 transaction.succeed "OKEY DUDES. DONE." 489 return true 490 end 491 492 def process_new_directive2 command, command_hash, transaction 493 494 b2b_system = @b2b_systems[command_hash['b2b_system_name']] 495 if b2b_system.nil? then 496 @logger.warn "There is no B2B system with the name #{command_hash['b2b_system_name']}." 497 return false 498 end 499 500 begin 501 directive = HefeWeizen::HefeWeizenLibrary::HefeWeizenDirective.new(@config, command_hash['file']) 502 # transaction.remember_file_to_remove command_hash['file'] if command_hash['file'] 503 rescue Exception => e 504 505 @logger.warn "Unable to process Directive: #{e.to_s}" 506 target_directory = b2b_system.get_error_directory 507 success = HefeWeizen::HefeWeizenLibrary::HefeWeizenDirective.create_error_directive_and_save target_directory, "HefeWeizen system is unable to process a directive.", e.to_s, command_hash['file'] 508 if success == false then 509 @logger.error "Unable to create and store Error Directive" 510 end 511 transaction.close_transaction("failed", "Unable to process directive") 512 return false 513 end 514 515 # @logger.debug "Directive successfully read" 516 # directive.print_directive_tags 517 # @logger.debug "The directive is a ebMS signal: #{directive.is_a_ebMS_signal?.to_s}" 518 519 # This is a new transaction so we have to set the root cause of this new transaction. 520 if !transaction.set_root_cause directive then 521 @logger.error "Unable to store the directive as root cause to the new transaction" 522 return false 523 else 524 @logger.debug "Succesfully stored the directive as root cause" 525 end 526 527 if !b2b_system.supports_directive? directive then 528 @logger.warn "B2BSystem #{b2b_system.system_name} does not support the directive." 529 return false 530 end 531 532 begin 533 # this creates a plain ebXML message 534 metadata = b2b_system.process_directive directive 535 rescue Exception => e 536 @logger.warn "B2BSystem #{b2b_system.system_name} is unable to create an ebXML message: #{e.to_s}; #{e.backtrace}" 537 return false 538 end 539 540 transaction.attach_file metadata['complete_ebXML_message_file_path'], "outgoing ebXML message" 541 transaction.attach_file metadata['complete_ebXML_message_parameters_file_path'], "outgoing ebXML message parameters" 542 543 # a plain ebXML message has been created. 544 transaction.transition_to_new_state "plain ebXML message created" 545 546 # signing first 547 if ((signing = true) == true) then 548 @logger.debug "ebXML message must be signed. Starting a signer tasker" 549 command, expectation = start_a_signing_tasker metadata, transaction.transaction_id, b2b_system.system_name 550 # SET EXPECTED NEW STATE 551 transaction.set_next_expectation(expectation) 552 return command 553 else 554 @logger.debug "ebXML message must NOT be signed." 555 end 556 557 # very interesting ... if the above code thinks the ebXML message must be signed then 558 # this code will never be called. only in the case the ebXML message must not be signed then 559 # this code will be called. 560 if ((encryption = false) == true) then 561 @logger.debug "ebXML message must be encrypted. Starting an encrypting tasker" 562 command, expectation = start_an_encrypting_tasker metadata, transaction.transaction_id, b2b_system.system_name 563 # SET EXPECTED NEW STATE 564 transaction.set_next_expectation(expectation) 565 return command 566 else 567 @logger.debug "ebXML message must NOT be encrypted." 568 end 569 570 return true 571 end 572 573 def start_a_signing_tasker metadata, transaction_id, b2b_system_name 574 expectation = "signed_ebXML_message_done" 575 command_hash = { 576 "from" => "big_ania", 577 "to" => "ania", 578 "command" => "start_tasker", 579 "tasker" => "#{@config['BIN_DIR']}/hefeweizen_tasker_application_sign_ebXML_message.rb", 580 "tasker arguments" => "--b2b-system-name #{b2b_system_name} --pipe-to-ania #{@config['PIPE_TO_ANIA']} --config #{@config['CONFIG_DIR']}/hefeweizen.conf --ebXML-message-file-path #{metadata['complete_ebXML_message_file_path']} --parameters-file-path #{metadata['complete_ebXML_message_parameters_file_path']} --transaction-id #{transaction_id} --state-expectation #{expectation}", 581 "uuid" => HefeWeizen::HefeWeizenLibrary::HefeWeizenUUID.uuid 582 } 583 @logger.debug "Call tasker to send ebXML message." 584 command = "#{HefeWeizen::HefeWeizenLibrary::HefeWeizenCommand.hash_to_command command_hash}" 585 586 return command, expectation 587 588 end 589 590 def start_an_encrypting_tasker metadata, transaction_id, b2b_system_name 591 expectation = "encrypt_ebXML_message_done" 592 command_hash = { 593 "from" => "big_ania", 594 "to" => "ania", 595 "command" => "start_tasker", 596 "tasker" => "#{@config['BIN_DIR']}/hefeweizen_tasker_application_encrypt_ebXML_message.rb", 597 "tasker arguments" => "--b2b-system-name #{b2b_system_name} --pipe-to-ania #{@config['PIPE_TO_ANIA']} --config #{@config['CONFIG_DIR']}/hefeweizen.conf --ebXML-message-file-path #{metadata['complete_ebXML_message_file_path']} --parameters-file-path #{metadata['complete_ebXML_message_parameters_file_path']} --transaction-id #{transaction_id} --state-expectation #{expectation}", 598 "uuid" => HefeWeizen::HefeWeizenLibrary::HefeWeizenUUID.uuid 599 } 600 @logger.debug "Call tasker to send ebXML message." 601 command = "#{HefeWeizen::HefeWeizenLibrary::HefeWeizenCommand.hash_to_command command_hash}" 602 603 return command, expectation 604 605 end 606 607 608 609 610 611 ################# rewrite 612 ################# rewrite 613 ################# rewrite 614 ################# rewrite 615 616 617 618 619 620 621 622 623 624 def old_____process_command_with_transaction transaction, command, command_hash 404 625 ######################################### 405 626 # the commands below are related to: … … 560 781 end 561 782 783 562 784 # This method handles a new directive. 563 785 # --> includes the creation of a new HefeWeizenDirective object. … … 572 794 # do compensation/rollback 573 795 transaction.remember_file_to_remove command_hash['file'] 574 transaction.close_transaction("failed", error)796 transaction.close_transaction("failed", "Unable to process Directive") 575 797 return true 576 798 end … … 1022 1244 big_ania.run 1023 1245 else 1024 exit -11246 exit(-1) 1025 1247 end branches/message-handling-refactor-branch/src/hefeweizen_library_b2b_system.rb
r177 r227 159 159 end 160 160 161 def get_error_directory 162 @parameters['integration-points'].first.get_error_directory 163 end 164 165 166 # This message processes a directive. This typically invloves to create an ebXML message. 167 def process_directive directive 168 # get the ebXML Message information 169 # this will hold all the required information about what has to be 170 # in the ebXML message plus how it has to be sent. 171 ebMS_message_info = get_ebMS_message_info directive 172 if ebMS_message_info.nil? then 173 throw Exception.new( "CPA Manager could not provide a valid ebXML Message information." ) 174 end 175 176 @logger.debug "Creating plain (not signed not encrypted) ebXML message" 177 metadata = @ebMS_message_manager.create_plain_message directive, ebMS_message_info 178 if metadata.nil? then 179 throw Exception.new( "Error creating ebXML message" ) 180 end 181 @logger.debug "Creating ebXML message done. ebXML message is created." 182 183 return metadata 184 end 185 161 186 private 187 162 188 163 189 def has_identity? id … … 179 205 @system_name = File.basename(system_path) 180 206 @system_name.freeze 181 207 182 208 @logger = @config['LOGGER'] 183 209 184 210 @cpa_manager = nil 185 211 186 212 require @config['LIB_DIR'].strip + "/hefeweizen_library_cpa" 187 213 require @config['LIB_DIR'].strip + "/hefeweizen_library_ebMS_message2" 214 188 215 result = load_parameters 189 216 if result.nil? then 190 @logger.error "Error loading configuration." 191 raise "Errro loading configuration" 217 throw Exception.new( "Errro loading configuration" ) 218 end 219 220 @ebMS_message_manager = HefeWeizen::HefeWeizenLibrary::EBMessageManager.new @config, @system_name 221 if @ebMS_message_manager.nil? then 222 throw Exception.new( "Error creating an ebXML Message Manager for B2B System #{@system_name}." ) 192 223 end 193 224 … … 221 252 # validating a signature will be done by a tasker. 222 253 def load_parameters 223 if @parameters == nilthen254 if @parameters.nil? then 224 255 @parameters = Hash.new 225 256 else … … 403 434 # - implementation 404 435 def validate 405 end406 436 return true 437 end 407 438 408 439 end branches/message-handling-refactor-branch/src/hefeweizen_library_directive.rb
r220 r227 90 90 <?xml version="1.0" encoding="UTF-8"?> 91 91 <Error> 92 <Type>Directive</ CpaId>92 <Type>Directive</Type> 93 93 <DateTime>#{Time.now.to_s}</DateTime> 94 94 <Description>#{common_error_description}</Description> … … 99 99 100 100 error += "<ErrorFileContent>" 101 error += File.read(optional_file) 101 opt_file = File.open(optional_file, "r") 102 opt_file.each_line{ | line | 103 if line =~ /.*<\?xml.*/ then 104 # we are not copying xml instruction 105 else 106 error += line 107 end 108 } 109 opt_file.close 102 110 error += "</ErrorFileContent>" 103 111 end … … 111 119 file.sync = true 112 120 file.close 121 122 return true 113 123 end 114 124 branches/message-handling-refactor-branch/src/hefeweizen_library_integration_point.rb
r220 r227 31 31 line =~ /^(outgoing: directive-directory:)\s*(.*)$/ or 32 32 line =~ /^(outgoing: payload-directory:)\s*(.*)$/ or 33 line =~ /^(error-directory: )\s*(.*)$/ then33 line =~ /^(error-directory:)\s*(.*)$/ then 34 34 @logger.debug "Integration point: #{$1} with value #{$2}." 35 35 integration_point_config[$1] = $2 … … 64 64 @integration_config.each_pair{ | usage, path | 65 65 path = "#{@config['SPOOL_DIR']}/#{path}" 66 if FileTest.exist? (path) and FileTest.executable?(path) and FileTest.readable?(path)\67 and FileTest.owned? (path)then66 if FileTest.exist? path and FileTest.executable? path and FileTest.readable? path \ 67 and FileTest.owned? path then 68 68 @logger.info "Integration Point: path directory (#{path} does already exist. Nothing to do." 69 69 else 70 FileUtils.mkdir_p (path)71 sleep (0.2)70 FileUtils.mkdir_p path 71 sleep 0.2 72 72 @logger.info "Integration Point: created directory #{path} for #{usage}." 73 73 end branches/message-handling-refactor-branch/src/hefeweizen_library_transactions.rb
r223 r227 156 156 end 157 157 158 def add_comment comment 159 get_state.add_comment comment 160 end 161 158 162 def set_root_cause cause 159 163 path = "#{@transaction_path}/root_cause" 160 if !(FileTest.exists? (path) and FileTest.directory?(path) and FileTest.owned?(path)) then161 FileUtils.mkdir (path)164 if !(FileTest.exists? path and FileTest.directory? path and FileTest.owned? path) then 165 FileUtils.mkdir path 162 166 end 163 167 if cause.class == HefeWeizenDirective then 164 FileUtils.mv (cause.file, path, :force => true)168 FileUtils.mv cause.file, path, :force => true 165 169 if !cause.payloads.nil? and !cause.payloads.empty? then 166 170 @logger.debug "Also copying referenced payloads as root causes. Number of payloads in directives are #{cause.payloads.size.to_s}." … … 168 172 uuid = HefeWeizen::HefeWeizenLibrary::HefeWeizenUUID.uuid 169 173 target = "#{path}/payload_#{payload_path.gsub(/\//, "@@@@")}_uuid_#{uuid}" 170 FileUtils.cp (payload_path, target)174 FileUtils.cp payload_path, target 171 175 } 172 176 end 173 177 return true 174 178 elsif cause.class == String then 175 FileUtils.cp (cause, path)179 FileUtils.cp cause, path 176 180 return true 177 181 else … … 241 245 242 246 def succeed comment 243 return close_transaction "succeeded", comment247 return close_transaction( "succeeded", comment ) 244 248 end 245 249 246 250 def fail comment 247 return close_transaction "failed", comment251 return close_transaction( "failed", comment ) 248 252 end 249 253 … … 346 350 end 347 351 352 def add_comment comment 353 FileUtils.touch "#{@directory}/#{@name}/comment__#{comment}" 354 end 355 348 356 end 349 357 branches/message-handling-refactor-branch/src/taskers/hefeweizen_tasker_application_dir_observer.rb
r176 r227 133 133 134 134 command = HefeWeizen::HefeWeizenLibrary::HefeWeizenCommand.hash_to_command command_hash 135 puts command 135 136 write_to_ania command 136 137 branches/message-handling-refactor-branch/test/test-systems/Coronation/infrastructure/integration-points/filebased-integration.conf
r110 r227 1 1 # This file defines one or multiple file and directory based integration points. 2 # There are t wo main types and each type has 2 subtypes:2 # There are three main types. These types are incoming, outgoing, and errors 3 3 4 4 # incoming: -> An incoming ebXML message will get unpacked. Metadata will be written to … … 14 14 # as well as to read and remove the payload files. 15 15 # 16 # example: incoming: directive-dir : <directory>17 # incoming: payload-dir : <directory>16 # example: incoming: directive-directory: <directory> 17 # incoming: payload-directory: <directory> 18 18 # 19 19 # the directory is added to the SPOOL_DIR definition in the HefeWeizen configuration file. 20 20 # 21 21 # so: 22 # incoming: directive-dir : /coronation/incoming/directives22 # incoming: directive-directory: /coronation/incoming/directives 23 23 # becomes: 24 # outgoing: directive-dir: /var/spool/hefeweizen/coronation/incoming/directives24 # incoming: directive-directory: /var/spool/hefeweizen/coronation/incoming/directives 25 25 # 26 26 27 incoming: directive-dir : /coronation/incoming/directives28 incoming: payload-dir : /coronation/incoming/payloads27 incoming: directive-directory: /coronation/incoming/directives 28 incoming: payload-directory: /coronation/incoming/payloads 29 29 30 30 # outgoing: -> The backend application has to write the payload (the business documents, … … 43 43 44 44 # there are three configurations required 45 # outgoing: directive-dir: <directory> 46 # outgoing: payload-dir: <directory> 47 # outgoing: error-dir: <directory> 45 # outgoing: directive-directory: <directory> 46 # outgoing: payload-directory: <directory> 48 47 # 49 48 # the directory is added to the SPOOL_DIR definition in the HefeWeizen configuration file. 50 49 # 51 50 # so: 52 # outgoing: directive-dir : /outgoing/directives51 # outgoing: directive-directory: /outgoing/directives 53 52 # becomes: 54 # outgoing: directive-dir : /var/spool/hefeweizen/outgoing/directives53 # outgoing: directive-directory: /var/spool/hefeweizen/outgoing/directives 55 54 # 56 55 57 outgoing: directive-dir: /coronation/outgoing/directives 58 outgoing: payload-dir: /coronation/outgoing/payloads 59 outgoing: error-dir: /coronation/outgoing/errors 56 outgoing: directive-directory: /coronation/outgoing/directives 57 outgoing: payload-directory: /coronation/outgoing/payloads 58 59 # errors: -> This is the way HefeWeizen can communicate errors to the backend applications. 60 # The HefeWeizen system will create an XML file that includes errors and will 61 # store those files in an error directory. 62 # Any errors will be reported here. Any means for processing of 63 # o outgoing directives 64 # o incoming ebXML messages 65 # 66 # System Errors will not be reported here. Only what is relevant to this B2B party. 67 # syntax: 68 # error-directory: <directory> 69 # example: 70 # error-directory: /coronation/error-directory 71 # becomes: 72 # error-directory: /var/spool/hefeweizen/coronation/error-directory 73 74 error-directory: /coronation/errors branches/message-handling-refactor-branch/test/test-systems/Gnaraloo/infrastructure/integration-points/filebased-integration.conf
r115 r227 1 1 # This file defines one or multiple file and directory based integration points. 2 # There are t wo main types and each type has 2 subtypes:2 # There are three main types. These types are incoming, outgoing, and errors 3 3 4 4 # incoming: -> An incoming ebXML message will get unpacked. Metadata will be written to … … 14 14 # as well as to read and remove the payload files. 15 15 # 16 # example: incoming: directive-dir : <directory>17 # incoming: payload-dir : <directory>16 # example: incoming: directive-directory: <directory> 17 # incoming: payload-directory: <directory> 18 18 # 19 19 # the directory is added to the SPOOL_DIR definition in the HefeWeizen configuration file. 20 20 # 21 21 # so: 22 # incoming: directive-dir : /gnaraloo/incoming/directives22 # incoming: directive-directory: /gnaraloo/incoming/directives 23 23 # becomes: 24 # outgoing: directive-dir: /var/spool/hefeweizen/gnaraloo/incoming/directives24 # incoming: directive-directory: /var/spool/hefeweizen/gnaraloo/incoming/directives 25 25 # 26 26 27 incoming: directive-dir : /gnaraloo/incoming/directives28 incoming: payload-dir : /gnaraloo/incoming/payloads27 incoming: directive-directory: /gnaraloo/incoming/directives 28 incoming: payload-directory: /gnaraloo/incoming/payloads 29 29 30 30 # outgoing: -> The backend application has to write the payload (the business documents, … … 43 43 44 44 # there are three configurations required 45 # outgoing: directive-dir: <directory> 46 # outgoing: payload-dir: <directory> 47 # outgoing: error-dir: <directory> 45 # outgoing: directive-directory: <directory> 46 # outgoing: payload-directory: <directory> 48 47 # 49 48 # the directory is added to the SPOOL_DIR definition in the HefeWeizen configuration file. 50 49 # 51 50 # so: 52 # outgoing: directive-dir : /outgoing/directives51 # outgoing: directive-directory: /outgoing/directives 53 52 # becomes: 54 # outgoing: directive-dir : /var/spool/hefeweizen/outgoing/directives53 # outgoing: directive-directory: /var/spool/hefeweizen/outgoing/directives 55 54 # 56 55 57 outgoing: directive-dir: /gnaraloo/outgoing/directives 58 outgoing: payload-dir: /gnaraloo/outgoing/payloads 59 outgoing: error-dir: /gnaraloo/outgoing/errors 56 outgoing: directive-directory: /gnaraloo/outgoing/directives 57 outgoing: payload-directory: /gnaraloo/outgoing/payloads 58 59 # errors: -> This is the way HefeWeizen can communicate errors to the backend applications. 60 # The HefeWeizen system will create an XML file that includes errors and will 61 # store those files in an error directory. 62 # Any errors will be reported here. Any means for processing of 63 # o outgoing directives 64 # o incoming ebXML messages 65 # 66 # System Errors will not be reported here. Only what is relevant to this B2B party. 67 # syntax: 68 # error-directory: <directory> 69 # example: 70 # error-directory: /gnaraloo/error-directory 71 # becomes: 72 # error-directory: /var/spool/hefeweizen/gnaraloo/error-directory 73 74 error-directory: /gnaraloo/errors
