|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
& z p4 K. P9 o; ]# ~
Teamcenter ITK二次开发源码分享: 创建一个工作流
: C" O: _! ~; C+ p% i3 W3 K5 f8 J" s$ f0 ~2 x0 C0 }
- /*HEAD CREATE_A_PROCESS CCC ITK */1 S5 ^) ]3 B' H" ]+ m/ I6 b
- #include <stdlib.h>
: f: D! o( S# W+ M% Y0 _ - #include <TCcore/aom.h>
k) y3 O) U' o) R' d# q- ^ - #include <tc/emh.h>, z/ Y; v* C, }% h2 J
- #include <epm/epm.h>
2 o5 {8 ~+ M" L: Z$ W+ p* a - #include <tc/tc.h>& @3 u" D3 Z0 [5 Q6 k$ a( m
- #include <sa/tcfile.h>" X# T; P8 Q" @ r+ I" n3 S
- #include <itk/mem.h>
3 @% H. h0 U% f+ S - ! y3 F& {$ i m: R& E1 D
- #define EXIT_FAILURE 1 $ F. {0 }- e2 {# U
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
, ]7 V- N4 h9 `* K/ ?: N5 Y - static void report_error( char *file, int line, char *function, int return_code)
( u4 Y" G- f, H" B$ A1 D5 j' d% x% U - {
" ^' q1 w& F; y6 n0 h - if (return_code != ITK_ok): t& Z# n" L: I2 O5 B F
- {
, X' ?) S% \- b; V4 G7 z1 Y5 l - char *error_message_string;
9 {/ D( E/ J5 g2 R - EMH_get_error_string (NULLTAG, return_code, &error_message_string);( x* O4 Z0 V# ?+ }$ r
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);* F& ?, _2 i+ q% I2 ^5 |
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
, B" r- _5 h h) A" c% E3 ?; W$ C - if(error_message_string) MEM_free(error_message_string);* r5 H% m3 N0 f6 O
- printf("\nExiting program!\n");, |( V7 X2 B. ^# R- L
- exit (EXIT_FAILURE); 8 U9 e3 @% v7 T) H8 r5 r) B% E7 ]
- }
2 g+ c( u) c2 ^8 V' T - }
: }# g. C3 F1 W) c& O- L
9 Z C( Y4 [7 }/ b& L& P, v- #define EXIT_IF_NULL(X) (check_value(#X, (X)))$ A- l8 H! ~& E$ T% s
- static void check_value( char *function, int value )2 h+ h% S( M" W1 h- c( j7 s
- {1 G5 [7 ]: O5 x8 L4 }
- if (value == 0)* F7 l1 n9 k. D0 k
- {/ Y: Q* g$ Y8 G6 [! p2 C
- printf ("\t%s is NULL\n", function);. Q2 l/ q5 ]7 |1 K, M# p# }, m/ W
- printf("\nExiting program!\n");! y8 H8 ^' O* X
- exit (EXIT_FAILURE); 1 T; w4 h$ D& X
- }
% Q, k+ e, x2 O* `; H ~& E% w1 u/ q - }% m3 V/ B0 w4 q( R+ x
: G! m5 j& q- p& {& h4 b; |1 l. W
& C+ C9 h( b* W- static void do_it(void)( |: x; j* ^1 \5 ]. `% t5 ^+ X+ }
- {
& v; Y4 z( @3 j# q) |: d - int ' e, K! B* R3 f$ I4 Y$ \5 _1 t1 h
- attach_types[1] = {1};
* T' ^% r% B+ B - tag_t
+ C+ |" E5 B% f' z& ]2 t - rev = NULLTAG, ( o; n$ A; C! n. v* n7 t+ C# g$ F
- process_template = NULLTAG,
9 ?: D6 V/ ~4 G - process = NULLTAG;" ^; |# y' C. m% p" e5 d2 n
- / }1 t) R# O L$ I: P5 E
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
' @8 Y: v7 J2 y l( S - EXIT_IF_NULL( rev );
, M+ c% E7 i/ k; V" h - # Q) { O( V3 _. ~
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); ; t- o( U+ L" V
- EXIT_IF_NULL( process_template );0 h& m" r4 }( ^8 f, ]' E
& @9 d' q& b$ {& ~5 @; m- x) k- 3 Q5 A3 L: u4 j; S, p
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 9 F2 a7 Z7 o( a! r; z! Z+ p* e
- attach_types, &process) );% V" t* U$ }/ v2 T; @, Y2 H/ p( `
- ) o! `% e# a& \% v( R5 F6 h
- EXIT_IF_NULL( process );
9 E2 w7 f/ o7 L% d% S - }
0 ^0 u' j, C( [! Q+ W - & X8 v; V) U' ^* G$ Z1 X- l3 Y
- int ITK_user_main(int argc, char* argv[])) p% w0 }* e* H) \9 }
- {0 s* _& m5 T" O8 h$ X: j' [( v
- int
( Q* x$ d# Z4 b5 d) { - status = 0; 5 b& B1 b4 V: L# K% @! f
-
# @& J. n8 R L: `: u - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );5 D$ e8 S) Y" g+ ?
- status = ITK_auto_login();7 N I1 y" Q0 O3 s, C, g7 q
-
; l: \2 H" _7 `$ m2 v+ \$ B - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
$ }; p# e# q: }! N0 l3 H* ~& z - else8 u# [: J, @6 Y; V: o5 Y
- {
4 G8 f/ Z1 F! ^6 X; b - printf("\nLogin successful!\n\n");( P5 {, o: }% r& U* B
- ITK_set_journalling(TRUE);
3 }0 Y* \8 b" s! p7 I3 u - do_it();7 n N: {& o% `) l
- }
1 `$ S+ m1 a5 A; _* s& _4 i - ITK_exit_module(TRUE);% I9 K7 b# `9 G! Y# Y5 _2 O
- return status;% c, J) J: A( N) Y# ?' `
- }
复制代码
5 b9 m* @: N) M# V' m- [& q6 Y/ h( x6 V
0 N0 M. M/ E+ j4 U
|
|