python的workfront桥项目库

workfront-bridge的Python项目详细描述


#workfront bridge是一个库,它可以轻松地在workfront中创建桥项目。


这些自定义表单具有
多个参数,这些参数在创建项目时为fullfill(其他一些
参数在开发项目时为fullfill,而任务则为excepted)。


因此,为了实现这一目标,提供了两个主要的抽象:

*项目容器
*块


\它们的参数以及它们之间的依赖关系,以便它可以实例化和配置它们,而不会遇到困难。
任务位于Workfront模板项目中这一事实只是存储它们的一种方便方式(Workfront不允许定义一组
模板模板项目中的任务)。


通过
向其中添加不同类型的块来键入。
因此,基本上,通过创建一个项目
容器来构建工作区项目,根据
项目所需的行为设置相应的参数并将块附加到
项目容器。在此过程中,还将设置不同块的参数。


需要向wfblock构造函数提供workfront
服务和模板id。
模板ID只能包含属于此块的任务。
还可以将字段标记为可选字段,并要求在使用此块构造新项目时自动验证该字段。

:它有两个参数;name(必需)和age(可选)

"我的块模板")
超级(wfmailtestseedblock,self)。模板id)
self.\u set_required_fields(["name"])
self.\u set_optional_fields(["age"])
````

(可以是
整数,表示模板项目中的任务数,或者使用字符串
作为任务的名称)。
属性可以用于干净的设计:

`` python
@property
def name(self):
return self.\u name

@name.setter
def name(self,value):
self.name=value
self.set\task参数值("我的任务","name",值)
``

块知道如何配置由该块表示的任务组中的值。


但是,当从wfblock继承时,可以使用**u set_starter_task(task_identifier)**方法来更改这一点。
当缩进任务只组织任务时,这非常方便。因此,对于
示例,如果块中有以下任务:

*grouping task
*task 1
*task 2

例如,当任务1是自动的时,这是必需的。workfront proxy
仅当自动任务是已完成任务的直接前置任务时才启动。
因此,在本例中,当分组任务的前置任务完成时(并且
起始任务是分组任务)。任务1不会启动(因为分组任务
前置任务是任务1的间接前置任务)。因此,为了避免这种情况,任务1必须设置为起始任务。
这可以在如下块的构造函数中实现:

``python
def初始(…)
它的名字是
self._set_starter_task("task 1")
````

应提供Workfront模板项目的模板ID、所需的
和可选参数。这可以通过调用父
构造函数和方法**u set_required_fields**和
**u set_optional_fields**(您可以使用**template_id_from_name**
函数来获取模板id):

``python
class mywfprojectcontainer(wfprojectcontainer)
def来完成_初始化(self,wf,prj_name):
tid=template_id_from_name(wf,"我的wf template")
super(mywfprojectcontainer,self)。\uu初始化(wf,tid,prj_name)
self._set_required_fields(["workfront_param_value_req"])
self._set_optional_fields(["workfront_param_value_optional"])
````

然后您可以设置变量来填充调用**set_param_value**方法的
项目的参数值。例如:

`` python
@property
def my_param_value(self):
返回self。
@email_subject.setter
def my_param_value(self,v):
self。self.set_param_value("workfront_param_value_req",v)
```

您可以查看Workfront懔bridge.projects.email
中的**wfprojectemailcontainer**以获取完整示例。

项目容器可以
具有一个或多个相同类型的块。
将块添加到项目容器时,块将附加到项目中,使此新块依赖于上次添加的块。因此,例如,如果
block1、block2、block3按该顺序附加到同一个项目块,则将创建工作区项目,以便只有当block1中的最后一个任务完成时,block2中的起始任务才会被排除。同样的情况也发生在
block3上;创建的属于block3的启动任务只有在
block2的最后一个任务完成后才会启动。

用户有责任按照一定的逻辑顺序添加块



我们建议使用项目生成器,以便让那些希望使用此库创建工作区项目的人过上更轻松的生活。这允许用户
重用用于创建特定工作区项目的代码逻辑。

项目建设者提供了一个简单的接口,通过setter来创建不同的项目结构。要创建一个包含2个测试列表和1个seed
列表的简单电子邮件项目,您将执行类似的操作:

``python
from workfront.workfront import workfront
from workfront\u bridge.projects.email\u builder import emailprojectbuilder(使用workfront sdk)创建一个workfront服务对象

wf=workfront("email@wf.bridgemarketing.com","pass**)"
wf.login()

"项目测试名称")


在这种情况下,您将使用这个:
b.set_html_zip("s3://some/s3/path/creative.zip")

添加两个测试列表和一个实时种子列表
builder.add_test_list("s3://some/s3/test_list1.csv")
.add_test_list("s3://some/s3/test_list2.csv")
.set_seed_list("s3://some/s3/live_seed_list.csv")

生成并获取workfront项目
wf_project=b.build()

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java日期格式的月和日的固定长度?   无法将java ArrayList<String>转换为字符串。   java当我使用log4j 1.2.15时,编译时出现错误;当更改为1.2.16时,一切正常   java如何使用ArgumentMatchers将任何队列告知Mockito?   如何解决“java”。Java电子邮件API中的lang.ExceptionInInitializerError   java是实例化对象名并设置其值的通用方法   java在多线程环境中,如果一个线程崩溃,如何关闭JVM?   java WebDriverManager在selenium中获取不正确版本的驱动程序   如果JAVA中后减量的优先级高于前增量,那么为什么下面的代码输出为22.0而不是20.0。?   在hibernate中找不到java属性   当我用java运行调度程序时,什么都没有发生   jackson如何在java中从数据库中检索json对象   java安卓:如何在自定义适配器中设置侦听器并获取imagebutton单击的位置   java MySQLIntegrityConstraintViolationException:列“问题id”不能为空错误   JavaSpring自定义注销过滤器在注销前执行一些操作?   java如何返回常量集合   java使用subselect进行一对多分页   java二进制搜索基础。陷入无限循环