Oracle S 由数据库端找到对应的前台URL地址

SELECT home_url FROM icx_parameters; 

SELECT profile_option_value  
  FROM fnd_profile_option_values  
WHERE profile_option_id=  
   (SELECT profile_option_id                              
      FROM fnd_profile_options WHERE profile_option_name = 'APPS_FRAMEWORK_AGENT')                               
   AND level_value = 0; 

Oracle ebs资产调整 api例子

declare
  l_trans_rec                 FA_API_TYPES.trans_rec_type;
  l_asset_hdr_rec             FA_API_TYPES.asset_hdr_rec_type;
  l_asset_fin_rec_adj         FA_API_TYPES.asset_fin_rec_type;
  l_asset_fin_rec_new         FA_API_TYPES.asset_fin_rec_type;
  l_asset_fin_mrc_tbl_new     FA_API_TYPES.asset_fin_tbl_type;
  l_inv_trans_rec             FA_API_TYPES.inv_trans_rec_type;
  l_inv_tbl                   FA_API_TYPES.inv_tbl_type;
  l_inv_rate_tbl              FA_API_TYPES.inv_rate_tbl_type;
  l_asset_deprn_rec_adj       FA_API_TYPES.asset_deprn_rec_type;
  l_asset_deprn_rec_new       FA_API_TYPES.asset_deprn_rec_type;
  l_asset_deprn_mrc_tbl_new   FA_API_TYPES.asset_deprn_tbl_type;
  l_inv_rec                   FA_API_TYPES.inv_rec_type;
  l_group_reclass_options_rec FA_API_TYPES.group_reclass_options_rec_type;
  l_return_status             VARCHAR2(1);
  l_mesg_count                number := 0;
  l_mesg_len                  number;
  l_mesg                      varchar2(4000);
begin
  fnd_profile.put('PRINT_DEBUG', 'Y');
  dbms_output.enable(1000000);
  FA_SRVR_MSG.Init_Server_Message;
  FA_DEBUG_PKG.Initialize;
  — asset header info
  l_asset_hdr_rec.asset_id       := 100000206;
  l_asset_hdr_rec.book_type_code := 'FIN_FA_BOOK';
  — fin info
  l_asset_fin_rec_adj.cost := 1002;

  –需注意这个金额是在原基础上的增减值。
  FA_ADJUSTMENT_PUB.do_adjustment(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,
                                  p_calling_fn            => 'ADJ_TEST_SCRIPT',
                                  x_return_status         => l_return_status,
                                  x_msg_count             => l_mesg_count,
                                  x_msg_data              => l_mesg,
                                  px_trans_rec            => l_trans_rec,
                                  px_asset_hdr_rec        => l_asset_hdr_rec,
                                  p_asset_fin_rec_adj     => l_asset_fin_rec_adj,
                                  x_asset_fin_rec_new     => l_asset_fin_rec_new,
                                  x_asset_fin_mrc_tbl_new => l_asset_fin_mrc_tbl_new,
                                  px_inv_trans_rec        => l_inv_trans_rec,
                                  px_inv_tbl              => l_inv_tbl,
                                  –px_inv_rate_tbl             => l_inv_rate_tbl,
                                  p_asset_deprn_rec_adj       => l_asset_deprn_rec_adj,
                                  x_asset_deprn_rec_new       => l_asset_deprn_rec_new,
                                  x_asset_deprn_mrc_tbl_new   => l_asset_deprn_mrc_tbl_new,
                                  p_group_reclass_options_rec => l_group_reclass_options_rec);
  dbms_output.put_line(l_return_status);
  if (l_return_status <> FND_API.G_RET_STS_SUCCESS) then
    fa_debug_pkg.dump_debug_messages(max_mesgs => 0);
    l_mesg_count := fnd_msg_pub.count_msg;
    if l_mesg_count > 0 then
      l_mesg := substr(fnd_msg_pub.get(fnd_msg_pub.G_FIRST, fnd_api.G_FALSE),
                       1,
                       512);
      dbms_output.put_line(substr(l_mesg, 1, 255));
      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,
                         512);
        dbms_output.put_line(substr(l_mesg, 1, 255));
      end loop;
      fnd_msg_pub.delete_msg();
    end if;
  else
    dbms_output.put_line('SUCCESS');
    dbms_output.put_line('THID' ||
                         to_char(l_trans_rec.transaction_header_id));
  end if;
end;
/
参考文件:Oracle Assets Adjustments API Documentation Supplement (文档 ID 206474.1)

Oracle EBS 取消“是否提交另一项请求”

配置文件

中文:并发:提交每个请求后显示请求摘要

英文:Concurrent: ShowRequests Summary After Each Request Submission

说明:设置为“是”以使 SRS 表单 (FNDRSRUN) 在每次提交新请求时显示当前提交请求的摘要。

使用场景:

    在使用EBS提交请求后,总要弹出“是否提交另一项请求”的提示,而我们往往选择“否”,这个提示就显得多余。  

    为了减轻这“多一步”的负担,取消“是否提交另一项请求”的提示,设置方法如下:默认:否(No),修改为是(Yes),可以在User Level上修改。

远程团队指南(二)

        作者托尼-施瓦茨的新书《我们的工作方式不起作用:被遗忘的四大促进表现的需求》一书在媒体上掀起了不小的轰动。最主要的是,他唤起了那些我们早已熟知的事情:这种现代化的时刻在线保持联络的久坐方式对我们的工作有多方面的损害。但是,对于远程团队,和我们这些劳心劳力为团队谋福利的管理者来说,这些问题非常棘手。针对他的文章《拿回你的项目》,我最近写过一篇评论。最近,我有机会向他请教一些有关管理远程团队的问题。很多人的公司都是虚拟的,他也在管理这样的公司。以下是他的一些观点:

        管理者:要非常明确的跟你的远程员工们解释清楚什么叫做成功。重要的不是他们工作的时间(反正你也不能真正的核查这一点),最重要的是他们所产出的价值。关键是要像对待成年人那样对待他们:说清楚你的预期,给他们自由去决定去选择最好的方法,最后要保证他们对自己的工作成绩负责。管理者不同花时间和雇员们来讨论和交流,来界定成功的定义,这一点对远程工作人员意义尤其重大。

员工:需要找到一种方法,在缺乏外部监管组织的情况下进行自我管理。对于施瓦茨来说,这意味着要制定一个长期的时间表,每天一清早要开始做最重要的事情,不受干扰的工作90分钟,然后休息片刻。这样的话,每天的开始效率会非常高,可以帮助员工抵挡其他诱惑,去干那些不是很紧要的比较容易做的事情——例如答复电子邮件。

        管理者:要承认那些远程上班的人,可能需要一些压力才能集中注意力。施瓦茨的书中勾画出一张非常清晰的蓝图,告诉你最有效的办法,同时照顾到你的长期需要。他说:“那些读我书的经理们首先需要从自己身上总结经验教训,然后,他们需要帮助大家来创造一种结构,使人们有可能从中取得成果——包括鼓励他们真的去重新安排时间顺序。如果你明确的定义什么是成功,而且规定好具体的办法定期检查远程工作人员的工作进度。那么,真的有人出现问题的时候,其标志就是他们什么也没贡献。你几乎可以肯定的是,其关键就是没有建立明确的责任界限,也没有明确的工作态度。记住要保持这样的对话。

        管理者:不要低估经常接触的重要性。 “人类是群居动物,我们都渴望交流,”施瓦茨说,“如果你是在管理远程工作者,你必须投入额外的精力去和他们保持联系,并对他们出色的工作表示赞赏,因为那些单枪匹马干活的人很容易感到孤独和不被尊重。你不能只依靠电子邮件——这种形式太单一了,作为沟通方式很单调。重要的是要找到时间来和他们保持联络。”

        有人苛责我说,我一直没有考虑过远程团队是可持续的,这不仅对企业不利,而且这也是不对的。我相信,和施瓦茨一样,我们必须考虑如何使人们最大程度的发挥潜能,然后有意识地创造一种环境,在这种环境下他们可以充分发展,而不是只靠运气。

转载自网络文件。

远程团队指南(一)

转载自:http://www.sohu.com/a/154074135_403607

每五个远程团队中,就有一个团队的创始人会离开。

编者按:随着科技的进步,很多工作已由传统上的上下班,变成了远距离的工作。这为人们提供了很多便利,但另一方面,远程工作减少了大家与同事间的社会交流,增加了冲突的机会。根据著名的Y Combinator 的保守统计,每五个远程团队中,就有一个团队的创始人会离开。Zapier 创始人Wade Foster发表了题为“how manage remote team”的文章,给出了他的建议。

过去几年来,人们对有关远程工作之优点的争论上,耗费了大量精力。 不幸的是,关于如何设置远程工作,以便你和你的团队能取得成功,却没有太多可以共享的信息。过去三年来,Zapier是由一支远程队伍来运作的。 我们已经由最初的三个创始人增长到二十多人。 我们已经收到了很多关于我们如何运作的问题。以下让我做一下说明:

我们的旅程

从第一天起,(2011年10月)Zapier一直是分布式团队。 即使布赖恩,迈克和我住在同一个城市,但由于学习和工作的原因,我们有不同的时间表。 每个人一有空就在Zapier工作,但这种分配,并无法奇迹般地将我们安排在同一时间,同一个房间里工作,所以我们必须成为一支远程队伍。2012年6月,我们被Y Combinator接受,并搬到加利福尼亚州山景城的一个共享公寓。 接下来的三个月是我们公司历史上唯一一个,大家都在一个时间,同一个城市的时期。2012年8月,当迈克的女友毕业于法学院,他搬回密苏里州。2012年10月,我们开始招聘。 既然我们已经是一个分布式团队,那么继续这样做是合乎情理的,因为我们知道,我们可以聘请很棒的人,他只是跟我们住不同的地方。在41个月的时间里,我们学到了一些关于构建和管理远程团队的知识。 还有其他人比我们有更多的经验。 虽然GitHub,Automattic,Citrix等公司已经证明,分布式团队可以取得成功,但我不确定这样的团队可以扩大到何种规模。 但如果你只是一个小团队,并希望加入到远程工作的队伍中,请考虑这个crash course。

设置成功远程工作的三个要素

你不可能期望,在历史上任何时刻,采取任何随机的方式,把分散在全球各地人们放在一起就能期望他们创立一些惊人的东西,并取得成功。我们发现要做好远程工作,有三个重要组成部分:团队,工具和步骤。 团队到目前为止,最重要的成分是团队。 不是每个人都可以在远程环境中工作。也不是每个人都可以管理一个远程团队(虽然我怀疑过一段时间,我了解到很多经理可以找出成功运作的方法)。 因此,组建一个能够在远程环境中工作的团队很重要。 这是我们总结出的一些最好办法: 

1. 雇用有效率的人员有效率的人员即使身处马里,也会完成任务。 你不必跟他们布置必须完成哪些工作。 你只需对最重要的事情指明方向并提供指导就好了。但是即使什么都没有的话,有效率的员工也会尽全力去实施。 

2.雇用你可以信任的人当你不能信任另一端的人时,远程工作将无法进行。 如果你不断地发现自己在担心某人正在做什么,那么你将损耗大量精力去关注一些别的事情而不是产品。记住,信任是关键。 

3.信任你雇用的人另一方面,你也需要与你雇用的人员保持信任。 作为经理,你需要学习通过期望而不是对号入座的方式来管理人员,因此请确保你能够对你所雇用的人给以信任。 

4. 聘请擅长写作的人在同一个办公室里的工作环境中,很多信息是亲自分享的。 在远程情况下,大量的内容都需要通过书面通信的方式来共享。 沟通是远程团队最重要的部分之一。 因此,好的写作水平是很重要的。 

5. 雇用那些能适应没有社交工作场所的人尝试在远程团队中创建一些社交活动是很重要的。 但事实真相是,远程工作的社交接触通常比在同一地方工作的人要少。团队的成员要能适应这一点。 最好的远程工作人员能在这种环境中茁壮成长。

工具

工具在远程工作中很重要,因为它们可以让你更好地组织团队,并将所有人都保留在同一页面上。在近距离工作中,你可以随时把团队组织起来,开全方位的会议,以使每个人都不掉队。 在远程团队中,你需要使用正确的工具,以确保每个人都能在身旁无人的情况下执行任务。 

当我们的团队有20个成员的时候,我们使用了以下工具: 

1. SlackSlack是我们的虚拟办公室。 如果你在Slack,那么你在上班。 像Slack这样的团体聊天室, 也是创造友情的好地方。根据你团队的规模,你还可以在Slack中使用”频道”这个功能。 有些时候,大家都在一起发言,会使它变得十分嘈杂,所以如果把聊天室分成诸如“工程”,“营销”不同频道的话,是十分方便的。在我们大约有10人左右的时候,开始使用多个频道。 我们现在有23个频道(一些需要被存档)。 活跃的频道包括#市场,#支持和#创客以及像#min,#价格这样跟项目有关的专门频道。

2. AsyncAsync是我们构建的内部工具。 这有点像一个博客遇到reddit。 以前我们使用了WordPress的P2主题,但后来发现我们想要更多。有时候Slack的节奏太快了,以致有人会迷失方向。Async是一个我们可以查找出重要对话的地方。 它取代了内部电子邮件,并且作为一个伟大的档案,团队中的任何人都可以参考以前的讨论。 

3. TrelloTrello是我们的默认路线图。 每当有一些我们想要做的事情,就将其添加到Trello的待办事项列表中。 在大多数情况下,你会发现自己创建了太多的卡片,去尝试做过多的事情。为避免这一情况,卡片创建人还必须编写一个详细的特征描述,以说明为什么它很重要,以及成功实现这个功能后的结果将是怎样的。我们还使用Trello来跟踪我们编辑的日历,支持文档和真正需要完成的任何项目。这对远程团队来说非常有用,因为如果公司里有任何人想要找点事儿做的话,他们可以从Trello那里选一张卡片,并且知道完成后,这对产品/公司来讲,有什么积极作用。 

4. GitHub在Zapier,议题(Issues) 和从远程取回请求(pull)是有特殊目的的。 就像GitHub使用GitHub来构建GitHub,我们使用GitHub来创建Zapier。 GitHub包含所有与代码相关的项目管理。取回请求是有关功能的操作。议题限定使用在跟Bug相关的。 特色会在Trello和/或计划文档中涉及到。 

5. LastPass由于我们已经登录了数百项服务,所以对于任何进入公司的人来说,无需登陆即时消息或等待电子邮件回复,即可访问它们,将会非常方便。 使用LastPass,任何队友都可以登录我们使用的任何服务,而无需知道登录密码。 

6. Google Docs & HackpadGoogle文档很棒。 我们通过分享电子表格,来对关键指标进行分析。 我们分享含有团队和其他重要信息的电子文档,以备以后使用。 我们共享合同和记录的文件。 任何可能多次使用的内容都应记录在案,Google文档为快捷方便地共享文件,提供了便利条件。不过,Google文档无法被用来进行组织和协作。 我们发现Hackpad非常适合作为内部文档使用。 任何需要教别人如何做一些事情的文档,都可以被添加到Hackpad中的一个便笺本和收藏之中,必要时,其他人可以快速地访问Zapier的集体智慧。 

7. GoToMeeting有大量很酷的视频会议工具。 GoToMeeting不是其中之一。 它很笨重,但GoToMeeting的音频和视频质量比任何其他应用都要好。 我们也尝试过很多工具。 有时我们会通过Google环聊或Skype进行一次通话,但是当你需要与10多人进行团队聊天时,GoToMeeting是你的朋友。 

8. HelloSign你和你的员工不时要签署一些文件。使用HelloSign,可以免去自己将文档打印出来,签上名,将其扫描回机器上传,并与下一个签名者进行文档共享的繁琐程序。 步骤建立一支强大的远程队伍的第三个成分是步骤。 我知道大多数人不喜欢步骤的问题, 它使人感到无聊和僵硬。 但是,如果你将步骤视为“我们的工作方式”,它将开始变得非常强大。设计优良的步骤能为执行任务提供结构和方向,它可以帮你顺利地完成工作。这并不意味着步骤应该是僵硬的,不变的或没有意义的。 在一家小的公司中,步骤可以有利于提供反馈,以便你衡量公司和公司人员的进度。 

以下是使用Zapier运行的一些步骤。我还喜欢叫它们:我们如何工作 

1. 大家都参与客户支持服务客户是我们的命脉。 我们每天努力解决客户的问题,帮助他们更轻松地工作。 当团队中的每个人都对客户提供支持时,就都能听到客户的声音。此外,构建产品的人也最终提供产品支持服务。 如果一个客户对一个bug很生气的话,那么这个人在听到直接反馈后,会立即修复它。 

2. 专心文化由于每个人都做客户支持,我们制定了专门的开发计划,以便使Zapier团队中的每个开发人员能轮流花费一周时间做支持服务。 其他周这些工程师们将100%致力于功能开发。 这样可以给开发人员足够的时间来专心作出一番事业。 同样,这也确保了新功能开发的良好节奏。 

3.每周环聊每个星期四上午9点太平洋时区,我们聚在一起进行闪电会谈,演示和/或采访。 既然现在有20多人,有时很难每周都见到每个人。 这些环聊有机会对你经常看不到的人说声“你好”。这些环聊也是学习新东西的好机会。 每个星期,团队内有人会对有趣的事情做一个敏捷地讲话或演示,再或者有人跑过来加入队伍中,我们会让他做一个快速地介绍。之所以会议定在星期四的上午9点召开,是因为这是一个地理上分布式团队的最佳时间,所以没有人会在周末受到太多的打扰。 

4. 结伴活动随着我们的发展,认识你的所有队友变得更难了。一个简单地解决方法就是让队友们每周随机地与另外一个队友配对,并进行短暂的10-15分钟对话。 我们用这个机会聊聊生活,工作或其他任何感兴趣的事情。 有时,很酷的新产品功能就是通过这些聊天聊出来的,其他时候,它只是很好玩。 无论如何,这有助于每个人更好地了解他们的队友。 

5. 每月一对一在我曾经做过的每一份工作中(甚至是近距离的工作),我和我的主管之间没有足够的回馈机制。 所以在Zapier,我和每一个团队成员在Skype或者Google环聊上设置一个,每个月的定期活动,聊聊四件事情:你感到兴奋的是什么,你担心的是什么? 我可以怎样更好地帮你完成你的工作,你可以做些什么事情来改善你的工作。这些问题具有一致性,所以它很容易去准备,而且也能够随着时间的变化去衡量。 我们特别将其限制为每个问题只涉及一个项目。这样可以比较轻松去实现。 但随着时间的推移,被解决的问题就会积少成多。每个月对话的答案都会被记录在Google文档中,以便下一次会话时,可以参考上一个月的信息并帮助我们检查工作进度。过去我和每个人都做一对一会谈。 然而,当团队扩大到大约15人左右时,这有些太难了。所以现在我专注于支持和营销团队,而Bryan和Mike(我的共同创始人)分别专注于工程和产品团队。这些审核非常好地反映了我们这个远程团队是否在良好地运作,因为它让我得到了大大小小,各方面的反馈,使我们知道哪些方面需要改善,能使工作起来更加愉快。 例如,我发现库克西和詹姆斯偶尔在哥伦比亚市中心共同工作,最后他们在自己淘腰包付停车费。 因此,我们设置了一个简单的报销计划,以确保队员在为公司支出后,可以报销这笔费用。 

6.责任感的文化一个经常被问到的问题是“你如何知道人们是否在做工作?” 我们的简单方法是每周五做一次更新。 每个星期五,团队中的每个人都会向Async发送一份有关本周他们做了什么,下一周他们计划做什么的的工作报告。这样可以轻松地保持项目的进度,让Zapier里的每个人都有责任感,并尽其所能。 

7. 亲身体验文化团队成员间的互动,对任何团队来说都是有价值的。 当队友们在一起,亲自做某件事的时候,肯定会有一些特别的经历。 因此,我们力争将团队一年两次聚在一起,这让人感觉很酷。我们公司特别安排了访问华盛顿,科罗拉多州,阿拉巴马州和犹他州。除了全公司聚会之外,我们有些小组,在协调一个重大项目/功能时,还会安排见面活动。 通常这只是一个人跳上飞机去探望另一个人。这似乎看起来很破费,事实也确实如此。 但是不要忘了,其实你已经省下了一大笔办公室租赁费。 

8.自动化任何可以自动控制的工作Zapier的核心是自动控制。 这里有几个原因。 一是,它允许我们保持小规模团队,因为我们不需要人员来执行重复,平凡和无聊的任务。 二是,它让队友可以大部分时间都专注于做一些影响深远的工作,而不是被一些无足轻重的繁琐细节而困扰。

从别人那里学习

有很多知识是由其他人发掘的。 不幸的是,没有多少人写了有关远程工作的,以及如何管理它的材料。 大多数文章非常肤浅,譬如只是建议人们“使用Google环聊”,这不是超级有用的。最后,了解远程工作的最佳方式是询问那些在做远程工作的人。 我从Lance Walley,Buffer的Joel Gascoigne,整个Basecamp(以前的37Signals)团队,GitHub的Zach Holman和一些其他创始人及远程工作人员那里学到了很多。希望本文能够帮你深入了解如何管理远程团队。 但请不要把它当成普遍真理。最大的赢家不是从网上找到线索的人,而是那些通过亲身实践并发现答案的人。

技术笔记(小潘的技术记录博客)