Monday, October 30, 2017

API to Create Jobs

 declare
 l_business_group_id     number;
  l_job_group_id          number;
  l_job_id                number;
  l_object_version_number number;
  l_job_definition_id     number;
  l_job_name              varchar2(200);
  v_error varchar2(500);
  v_name varchar2(100);


begin

  -- get group id and business group id






  begin
    select business_group_id,
           job_group_id
      into l_business_group_id,
           l_job_group_id
      from per_job_groups
     where displayed_name = 'sample'; --  is used for all business group will be changed

  exception
    when others then
      dbms_output.put_line('Unable to get the job group details.Error:'||sqlerrm);
      raise;
  end;

 for i in (
           select
               name,
               date_from,
                vacation_days,
                hr.job_id_nav
                from
               xxx_sample hr where hr.job_id=0


    )
  loop

  v_name:=i.name;

  HR_JOB_API.CREATE_JOB
  (p_validate                      => FALSE
  ,p_business_group_id             => l_business_group_id
  ,p_date_from                     => to_date('01/01/2006','dd/mm/yyyy')
  ,p_comments                      => 'test purpose'
  ,p_date_to                       => NULL
  ,p_job_group_id                  => l_job_group_id
  ,p_concat_segments               => i.name
  --output
  ,p_job_id                        => l_job_id
  ,p_object_version_number         => l_object_version_number
  ,p_job_definition_id             => l_job_definition_id
  ,p_name                          => l_job_name
  ,p_attribute11 => i.vacation_days-- annual vacation days
  );

  DBMS_OUTPUT.PUT_LINE('job id: '||l_job_id);
  DBMS_OUTPUT.PUT_LINE('object_version_number: '||l_object_version_number);
  DBMS_OUTPUT.PUT_LINE('job_definition_id: '||l_job_definition_id);
  DBMS_OUTPUT.PUT_LINE('job_name: '||l_job_name);


 
  end loop; 
  commit;


EXCEPTION
    WHEN OTHERS THEN
      dbms_output.put_line('unable to create a job.error:'||SQLERRM);
     rollback;
      RAISE;
END;

Tuesday, October 17, 2017

How to update Vendor Taxpayer ID (NUM_1099) with API

DECLARE
  lc_return_status            VARCHAR2(2000);
  ln_msg_count                NUMBER;
  ll_msg_data                   LONG;
  Ln_Vendor_Id              NUMBER;
  Ln_Vendor_site_Id      NUMBER;
  ln_message_int             NUMBER;
  Ln_Party_Id                 NUMBER;

  lrec_vendor_rec ap_vendor_pub_pkg.r_vendor_rec_type;
  cursor c_vendors is
  select s.taxpayer_id, s.vendor_id_ora from temporary_suppliers s where s.taxpayer_id is not null and segment1='0'
and s.acc_end_date is null;


BEGIN





  for i in c_vendors
    loop
  Ln_Vendor_Id    := i.vendor_id_ora;

  Lrec_Vendor_Rec.JGZZ_FISCAL_CODE       := i.taxpayer_id;


  ap_vendor_pub_pkg.update_vendor_public( p_api_version => 1,--
  x_return_status => lc_return_status,                 --
  x_msg_count => ln_msg_count,                         --
  x_msg_data => ll_msg_data,                           --
  p_vendor_rec => Lrec_Vendor_Rec,                     --
  p_Vendor_Id => Ln_Vendor_Id);

  IF (lc_return_status <> 'S') THEN
    IF ln_msg_count    >= 1 THEN
      FOR v_index IN 1..ln_msg_count
      LOOP
       fnd_msg_pub.get (p_msg_index => v_index, p_encoded => 'F', p_data => ll_msg_data, p_msg_index_out => ln_message_int );
        Ll_Msg_Data := 'UPDATE_VENDOR '||SUBSTR(Ll_Msg_Data,1,3900);
        dbms_output.put_line('Ll_Msg_Data - '||Ll_Msg_Data );
      END LOOP;

    End If;
  END IF;
  end loop;

EXCEPTION

WHEN OTHERS THEN
  dbms_output.put_line('SQLERRM - '||SQLERRM );
END;

API to update Customer Category

DECLARE
L_ORGANIZATION_REC hz_party_v2pub.organization_rec_type;
x_profile_id NUMBER;
l_vendor_id NUMBER;
l_party_id NUMBER;
l_object_version_number NUMBER;
l_msg_count NUMBER;
l_msg_data VARCHAR2(4000);
l_return_status VARCHAR2(10);

begin




for i in ( select s.party_id, s.vendor_id, 'TEST' category_code from ap_suppliers s, hz_parties hp
 
   where  s.party_id=hp.party_id
         and hp.category_code is null )
  loop
SELECT aps.PARTY_ID, hzp.object_version_number
into l_party_id, l_object_version_number
FROM AP_SUPPLIERS aps, HZ_PARTIES hzp
WHERE
vendor_id =i.vendor_id
AND aps.party_id = hzp.party_id;
l_organization_rec.party_rec.party_id := l_party_id;
l_organization_rec.party_rec.category_code:=i.category_code;
HZ_PARTY_V2PUB.update_organization (
p_init_msg_list => fnd_api.g_true,
p_organization_rec => l_organization_rec,
p_party_object_version_number => l_object_version_number,
x_profile_id => x_profile_id,
x_return_status => l_return_status,
x_msg_count => l_msg_count,
x_msg_data => l_msg_data);

dbms_output.put_line(l_return_status);
 dbms_output.put_line(l_party_id ||i.category_code );
FOR I IN 1..l_msg_count
LOOP
 
l_msg_data := l_msg_data||SUBSTR(FND_MSG_PUB.GET(p_encoded=>'T'),1,255);
dbms_output.put_line(l_msg_data);
END LOOP ;
end loop;
exception
when others then
raise;
end;

Wednesday, October 4, 2017

API to create relationship between Vendors

CREATE or replace  PROCEDURE P_relationships(p_party_id               IN NUMBER,
                                p_vendor_site_id         IN NUMBER,
                                p_rem_party_id      IN number,
                                p_rem_site_id IN number,
                                p_rem_vendor_site in number)
IS
  l_rem_vend_site_id NUMBER;
  l_rem_party_id     NUMBER;
  v_count number;
BEGIN




 
select count(*) into v_count from iby_ext_payee_relationships pr where pr.party_id=p_party_id
and pr.supplier_site_id=p_vendor_site_id;
if v_count=0 then
    SELECT B.vendor_site_id,
           A.party_id
    INTO   l_rem_vend_site_id, l_rem_party_id
    FROM   ap_suppliers A,
           ap_supplier_sites_all B
    WHERE  A.vendor_id = B.vendor_id
           and a.party_id =p_rem_party_id
           and b.party_site_id= p_rem_site_id
           and b.vendor_site_id=p_rem_vendor_site;
         --  AND A.vendor_name = p_rem_supplier_name
          -- AND B.vendor_site_code = p_rem_supplier_site_name;

    INSERT INTO iby_ext_payee_relationships
                (relationship_id,
                 party_id,
                 supplier_site_id,
                 remit_party_id,
                 remit_supplier_site_id,
                 from_date,
                 primary_flag,
                 active,
                 created_by,
                 creation_date,
                 last_updated_by,
                 last_update_date,
                 last_update_login,
                 object_version_number)
    VALUES      (iby_ext_payee_relship_seq.NEXTVAL,
                 p_party_id,
                 p_vendor_site_id,
                 l_rem_party_id,
                 l_rem_vend_site_id,
                 to_date('28/09/2017','dd/mm/yyyy'),
                 'Y',
                 'Y',
                 fnd_global.user_id,
                 SYSDATE,
                 fnd_global.user_id,
                 SYSDATE,
                 fnd_global.user_id,
                 1 );

    COMMIT;
    dbms_output.put_line('inserted');
    end if;
EXCEPTION
  WHEN OTHERS THEN
dbms_output.put_line('exception1');
END P_relationships;


--Run following :

declare
l_rem_party_id number;
l_rem_site_id number;
l_rem_vend_site_id number;
begin
  select   
   A.party_id,
   b.party_site_id,
           B.vendor_site_id
INTO  l_rem_party_id, l_rem_site_id,  l_rem_vend_site_id 
    FROM   ap_suppliers A,
           ap_supplier_sites_all B
    WHERE  A.vendor_id = B.vendor_id
    and a.segment1='vendor_number' 
    and b.vendor_site_code='site_code';
   
  for i in ( SELECT distinct
           A.party_id,
           B.vendor_site_id

    FROM   ap_suppliers A,
           ap_supplier_sites_all B
    WHERE  A.vendor_id = B.vendor_id
     
           and b.inactive_date is null)
           loop
  P_relationships(i.party_id, i.vendor_site_id, l_rem_party_id, l_rem_site_id,l_rem_vend_site_id);
  end loop;
  end;

API to delete Assets

declare

    l_asset_hdr_rec            FA_API_TYPES.asset_hdr_rec_type;

    l_return_status            VARCHAR2(1);
    l_mesg_count               number := 0;
    l_mesg_len                 number;
    l_mesg                     varchar2(4000);

begin






   dbms_output.enable(1000000);

   FA_SRVR_MSG.Init_Server_Message;
 
   for i in (select distinct book_type_code, asset_id from fa_books fb where fb.book_type_code='BOOK_NAME'
)
loop
   -- asset header info
   l_asset_hdr_rec.asset_id       := i.asset_id;
   l_asset_hdr_rec.book_type_code := i.book_type_code;


   FA_DELETION_PUB.do_delete
      (p_api_version             => 1.0,
       p_init_msg_list           => FND_API.G_FALSE,
       p_commit                  => FND_API.G_FALSE,
       p_validation_level        => FND_API.G_VALID_LEVEL_FULL,
       x_return_status           => l_return_status,
       x_msg_count               => l_mesg_count,
       x_msg_data                => l_mesg,
       p_calling_fn              => null,
       px_asset_hdr_rec          => l_asset_hdr_rec
      );


   l_mesg_count := fnd_msg_pub.count_msg;

   if l_mesg_count > 0 then

      l_mesg := chr(10) || substr(fnd_msg_pub.get
                                    (fnd_msg_pub.G_FIRST, fnd_api.G_FALSE),
                                     1, 250);
      dbms_output.put_line(l_mesg);

      for i in 1..(l_mesg_count - 1) loop
         l_mesg :=
                     substr(fnd_msg_pub.get
                            (fnd_msg_pub.G_NEXT,
                             fnd_api.G_FALSE), 1, 250);

         dbms_output.put_line(l_mesg);
      end loop;

      fnd_msg_pub.delete_msg();

   end if;


   if (l_return_status <> FND_API.G_RET_STS_SUCCESS) then
     dbms_output.put_line('FAILURE');
   else
     dbms_output.put_line('SUCCESS');
/*     dbms_output.put_line('ASSET_ID' || to_char(l_asset_hdr_rec.asset_id));
     dbms_output.put_line('BOOK: ' || l_asset_hdr_rec.book_type_code);*/
   end if;
end loop;
end;