zoukankan      html  css  js  c++  java
  • AR*客户地点分配OU

    DECLARE
    	p_cust_acct_site_rec   hz_cust_account_site_v2pub.cust_acct_site_rec_type;
    	p_cust_site_use_rec    hz_cust_account_site_v2pub.cust_site_use_rec_type;
    	p_customer_profile_rec hz_customer_profile_v2pub.customer_profile_rec_type;
    	x_site_use_id          NUMBER;
    	x_return_status        VARCHAR2(20000);
    	x_msg_count            NUMBER;
    	x_msg_data             VARCHAR2(20000);
    	x_cust_acct_site_id    NUMBER;
    	l_org_id               NUMBER;
    	l_party_site_id        NUMBER;
    	l_cust_account_id      NUMBER;
    	l_location_id          NUMBER;
    	l_error_msg            VARCHAR2(32000);
    	v_location_rec   hz_location_v2pub.location_rec_type;
    	v_location_clear hz_location_v2pub.location_rec_type;
    	v_location_id    NUMBER;
    
    	v_version_number NUMBER;
    	CURSOR cur IS
    		SELECT t.import_id,
    					 t.ou_name,
    					 t.party_name,
    					 t.party_site_number,
    					 t.error_flag,
    					 t.error_msg,
    					 t.attribute1,
    					 t.attribute2,
    					 t.attribute3,
    					 t.attribute4,
    					 t.attribute5
    		FROM   cux_party_site_import_temp t
    		WHERE  1 = 1
    		--AND    t.party_name = '东莞市安德丰电池有限公司'
    		--  and t.import_id=406
    		;
    	-- AND    t.error_flag = 'Y';
    BEGIN
    	-- Setting the Context --
    	mo_global.init('AR');
    	fnd_global.apps_initialize(user_id      => 1318,
    														 resp_id      => 50559,
    														 resp_appl_id => 222);
    
    	l_error_msg := NULL;
    	FOR rec IN cur
    	LOOP
    		l_error_msg := NULL;
    		-- Initializing the Mandatory API parameters
    		l_org_id := NULL;
    		BEGIN
    			SELECT hou.organization_id
    			INTO   l_org_id
    			FROM   hr_operating_units hou
    			WHERE  1 = 1
    			AND    hou.name = rec.ou_name;
    		EXCEPTION
    			WHEN OTHERS THEN
    				l_org_id    := NULL;
    				l_error_msg := l_error_msg || ' 业务实体不存在';
    		END;
    	
    		mo_global.set_policy_context('S',
    																 l_org_id);
    		fnd_global.set_nls_context('AMERICAN');
    	
    		BEGIN
    			SELECT hps.party_site_id, hl.location_id
    			INTO   l_party_site_id, l_location_id
    			FROM   hz_party_sites hps, hz_parties hp, hz_locations hl
    			WHERE  hps.party_id = hp.party_id
    			AND    hps.location_id = hl.location_id(+)
    			AND    hps.party_site_number = rec.party_site_number
    			AND    hp.party_name = rec.party_name;
    		EXCEPTION
    			WHEN OTHERS THEN
    				l_party_site_id := NULL;
    				l_location_id   := NULL;
    				--l_error_msg     := l_error_msg || ' 客户地址不存在';
    		END;
    	
    		IF (l_location_id IS NULL) THEN
    		END IF;
    	
    		BEGIN
    			SELECT DISTINCT hca.cust_account_id
    			INTO   l_cust_account_id
    			FROM   hz_cust_acct_sites_all hcas,
    						 hz_cust_accounts_all   hca,
    						 hz_parties             hp
    			WHERE  hp.party_id = hca.party_id
    			AND    hca.cust_account_id = hcas.cust_account_id
    			AND    hcas.party_site_id = l_party_site_id
    			AND    hp.party_name = rec.party_name;
    		EXCEPTION
    			WHEN OTHERS THEN
    				l_cust_account_id := NULL;
    				l_error_msg       := l_error_msg || ' 客户账户不存在 ';
    		END;
    	
    		IF (l_error_msg IS NULL) THEN
    			--创建客户地点
    			p_cust_acct_site_rec.org_id            := l_org_id;
    			p_cust_acct_site_rec.cust_account_id   := l_cust_account_id;
    			p_cust_acct_site_rec.party_site_id     := l_party_site_id;
    			p_cust_acct_site_rec.location_id       := l_party_site_id;
    			p_cust_acct_site_rec.created_by_module := 'HZ_CPUI';
    		
    			dbms_output.put_line('Calling the API hz_cust_account_site_v2pub.create_cust_acct_site****************************');
    		
    			hz_cust_account_site_v2pub.create_cust_acct_site(p_init_msg_list      => fnd_api.g_true,
    																											 p_cust_acct_site_rec => p_cust_acct_site_rec,
    																											 x_cust_acct_site_id  => x_cust_acct_site_id,
    																											 x_return_status      => x_return_status,
    																											 x_msg_count          => x_msg_count,
    																											 x_msg_data           => x_msg_data);
    		
    			IF x_return_status = fnd_api.g_ret_sts_success THEN
    			
    				l_error_msg := NULL;
    				--COMMIT;
    				dbms_output.put_line('Creation of Customer Account Site is Successful,Customer Account Site Id is = ' ||
    														 x_cust_acct_site_id);
    			
    				--创建客户地点的业务用途(收单方,收货方)
    				-- Initializing the Mandatory API parameters 111
    				p_cust_site_use_rec.cust_acct_site_id := x_cust_acct_site_id;
    				p_cust_site_use_rec.site_use_code     := 'BILL_TO';
    				--p_cust_site_use_rec.location          := l_location_id;
    				p_cust_site_use_rec.created_by_module := 'HZ_CPUI';
    			
    				dbms_output.put_line('Calling the API hz_cust_account_site_v2pub.create_cust_site_use=============');
    				x_site_use_id := NULL;
    				hz_cust_account_site_v2pub.create_cust_site_use(p_init_msg_list        => fnd_api.g_true,
    																												p_cust_site_use_rec    => p_cust_site_use_rec,
    																												p_customer_profile_rec => p_customer_profile_rec,
    																												p_create_profile       => fnd_api.g_true,
    																												p_create_profile_amt   => fnd_api.g_true,
    																												x_site_use_id          => x_site_use_id,
    																												x_return_status        => x_return_status,
    																												x_msg_count            => x_msg_count,
    																												x_msg_data             => x_msg_data);
    			
    				IF x_return_status = fnd_api.g_ret_sts_success THEN
    				
    					l_error_msg := NULL;
    					--COMMIT;
    					dbms_output.put_line('Successful,Site Use Id = ' ||
    															 x_site_use_id || ',Site Use    = ' ||
    															 p_cust_site_use_rec.site_use_code);
    				ELSE
    					dbms_output.put_line('Creation of Customer Accnt Site use got failed:' ||
    															 x_msg_data);
    				
    					l_error_msg := l_error_msg || x_msg_data;
    					ROLLBACK;
    					FOR i IN 1 .. x_msg_count
    					LOOP
    						x_msg_data := fnd_msg_pub.get(p_msg_index => i,
    																					p_encoded   => 'F');
    						dbms_output.put_line(i || ') ' || x_msg_data);
    					END LOOP;
    				END IF;
    			
    				p_cust_site_use_rec.cust_acct_site_id := x_cust_acct_site_id;
    				p_cust_site_use_rec.site_use_code     := 'SHIP_TO';
    				--p_cust_site_use_rec.bill_to_site_use_id := x_site_use_id;
    				--p_cust_site_use_rec.location          :=  l_location_id;
    				p_cust_site_use_rec.created_by_module := 'HZ_CPUI';
    			
    				x_site_use_id := NULL;
    				hz_cust_account_site_v2pub.create_cust_site_use(p_init_msg_list        => fnd_api.g_true,
    																												p_cust_site_use_rec    => p_cust_site_use_rec,
    																												p_customer_profile_rec => p_customer_profile_rec,
    																												p_create_profile       => fnd_api.g_true,
    																												p_create_profile_amt   => fnd_api.g_true,
    																												x_site_use_id          => x_site_use_id,
    																												x_return_status        => x_return_status,
    																												x_msg_count            => x_msg_count,
    																												x_msg_data             => x_msg_data);
    			
    				IF x_return_status = fnd_api.g_ret_sts_success THEN
    				
    					l_error_msg := NULL;
    					--COMMIT;
    					dbms_output.put_line('Successful,Site Use Id = ' ||
    															 x_site_use_id || ',Site Use    = ' ||
    															 p_cust_site_use_rec.site_use_code);
    				ELSE
    					dbms_output.put_line('Creation of Customer Accnt Site use got failed:' ||
    															 x_msg_data);
    					--ROLLBACK;
    					FOR i IN 1 .. x_msg_count
    					LOOP
    						x_msg_data  := fnd_msg_pub.get(p_msg_index => i,
    																					 p_encoded   => 'F');
    						l_error_msg := l_error_msg || x_msg_data;
    						dbms_output.put_line(i || ') ' || x_msg_data);
    					END LOOP;
    				END IF;
    			ELSE
    				dbms_output.put_line('Creation of Customer Account Site got failed:' ||
    														 x_msg_data);
    				--ROLLBACK;
    				FOR i IN 1 .. x_msg_count
    				LOOP
    					x_msg_data  := fnd_msg_pub.get(p_msg_index => i,
    																				 p_encoded   => 'F');
    					l_error_msg := l_error_msg || x_msg_data;
    					dbms_output.put_line(i || ') ' || x_msg_data);
    				END LOOP;
    			END IF; --IF x_return_status = fnd_api.g_ret_sts_success THEN
    		
    		ELSE
    			dbms_output.put_line('l_error_msg:=' || l_error_msg);
    		END IF; --  IF (l_error_msg IS NULL) THEN
    	
    		IF (l_error_msg IS NOT NULL) THEN
    			UPDATE cux_party_site_import_temp t
    			SET    t.error_flag = 'Y', t.error_msg = l_error_msg
    			WHERE  1 = 1
    			AND    t.import_id = rec.import_id;
    		ELSE
    			UPDATE cux_party_site_import_temp t
    			SET    t.error_flag = 'N', t.error_msg = NULL
    			WHERE  1 = 1
    			AND    t.import_id = rec.import_id;
    		END IF;
    	END LOOP;
    
    	--COMMIT;
    
    EXCEPTION
    	WHEN OTHERS THEN
    		dbms_output.put_line('导入异常!');
    END;
    

      

    create table cux_party_site_import_temp
    (IMPORT_ID         NUMBER,
     OU_NAME           VARCHAR2(240),
     PARTY_NAME        VARCHAR2(240),
     PARTY_SITE_NAME   VARCHAR2(240),
     ADDRESS           VARCHAR2(240),
     ERROR_FLAG        VARCHAR2(240),
     ERROR_MSG         VARCHAR2(4000),
     ATTRIBUTE1        VARCHAR2(240),
     ATTRIBUTE2        VARCHAR2(240),
     ATTRIBUTE3        VARCHAR2(240),
     ATTRIBUTE4        VARCHAR2(240),
     ATTRIBUTE5        VARCHAR2(240))
     
    /* 
     select * from  hz_parties hps
     where hps.PARTY_NAME like '%惠州市伟江新能源有限公司%'*/
    

      

  • 相关阅读:
    CSS 字体
    列表排列
    IE6 fixed 页面抖动
    HTML中css和js链接中的版本号(刷新缓存)
    CSS3 box-shadow
    CSS3的文字阴影—text-shadow
    [LeetCode][JavaScript]Add Digits
    [LeetCode][JavaScript]Max Points on a Line
    [LeetCode][JavaScript]Subsets II
    [LeetCode][JavaScript]Subsets
  • 原文地址:https://www.cnblogs.com/wang-chen/p/11377147.html
Copyright © 2011-2022 走看看