|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
' n L5 a8 Q) Q9 Z$ c" l; @7 d2 b) `
Teamcenter ITK二次开发源码分享: 创建一个工作流- s" R d3 h- J* ]& s5 d: k' ^+ U4 D
! a+ y, ?, u6 i, ?1 l/ w2 H
- /*HEAD CREATE_A_PROCESS CCC ITK */
7 h5 @4 d" L9 g - #include <stdlib.h>% X- P5 s# y6 M, o% \$ e
- #include <TCcore/aom.h>8 @+ Z) U e$ ? a' Q
- #include <tc/emh.h>( i9 g4 x; o$ l: u# p% r1 [2 w
- #include <epm/epm.h>
R( k, t6 k* y4 c+ G - #include <tc/tc.h>
1 N S4 u3 Y, x, c0 k% [ - #include <sa/tcfile.h>
4 E; M% s$ t" ^3 e7 s5 _4 l, ^# d, y - #include <itk/mem.h>
' M, M @2 {' Q, V9 Z0 E2 ]3 U
9 Z) N" T8 E! I4 V% D" ?: I- #define EXIT_FAILURE 1 & Y" x8 @/ F# R* o5 k' O
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
. I- }4 ~5 o# W" ?. W- H: n - static void report_error( char *file, int line, char *function, int return_code)* H# H) R% x- I7 X( P7 e2 g6 k
- {# V" E9 x3 R k9 G# |, O
- if (return_code != ITK_ok)
1 ?$ `- M3 X$ v - {
' Z+ w9 O6 b2 p" L% L* ]# a0 { - char *error_message_string;. X* q* D. |5 b# q' t! R
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);
$ G. v3 K' R" E5 F+ _) d - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);# \& R. Q" A8 m
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);: j9 w" O8 y/ H8 {4 N1 }) | \
- if(error_message_string) MEM_free(error_message_string);! q% ^2 Z7 ~8 q) |2 f* ^3 c
- printf("\nExiting program!\n");
( V: @0 [2 \5 F6 k& e# ? - exit (EXIT_FAILURE); 0 } G9 D" ^' M
- }& N% }' f3 z& `6 y- `) X% x
- }* p( j4 W! _$ Y8 K* x, X
' I6 H# H# b4 y0 a+ t+ n' E8 w5 M$ y- #define EXIT_IF_NULL(X) (check_value(#X, (X)))8 \% V: {! o. g4 @* w/ F
- static void check_value( char *function, int value )
: N7 ~( w/ E5 t - {
& ~) q5 u" _6 I# O3 r* G8 s5 z) @7 r - if (value == 0)
3 h* g4 d1 H2 j6 ~/ ~/ z0 b" v) y - {
5 m! ^! _) J; E( O, s! ?; _0 Y! r* F - printf ("\t%s is NULL\n", function);! p* Q! y4 S( Z/ h! u& U1 t' B, N
- printf("\nExiting program!\n");, T/ D2 y! {* B! k
- exit (EXIT_FAILURE); . [: U: Z) g* |( E- v- D& R
- }7 b z+ i) ?/ I0 ?4 ~0 J2 N6 M
- }
$ o- R+ \% f4 h4 r
& d* {! L4 S) B$ h
# e! j/ B( O& ^- static void do_it(void)
6 i7 u8 Z- p# H+ O& b8 }# f - {. \/ S2 o$ Y: p$ i
- int
* M0 C8 ?2 f3 s5 l' v$ Z* M8 ^ - attach_types[1] = {1};
* c& U3 D$ s0 V, w( \ - tag_t - R6 T- ~6 ^' ]6 v, ?) r3 M% w8 m
- rev = NULLTAG,
9 \" N y3 |4 M9 ~! Q8 _+ I& D - process_template = NULLTAG,
, l( F. [+ a$ u" l0 S8 H - process = NULLTAG;: G% g4 w3 Y# y) E: X" A
+ K& |+ H. ?4 k/ ~/ F) C- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );, m; W/ f: j3 {
- EXIT_IF_NULL( rev );* H" D9 }0 i1 Y* U% ?) O
A0 T; t7 u& G* Y; Q5 K4 n- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
U$ c" J* n* d6 D - EXIT_IF_NULL( process_template );
; @8 x3 R& v% J: C# C4 p/ P4 Y - ! w7 c3 x- E: \6 z# e) `. ^
# @1 |% K0 A& f- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, A, {1 k; o7 s6 ]3 F
- attach_types, &process) );3 |" Q6 w- [# W% B/ w8 C
) B7 g5 M* O" ?- EXIT_IF_NULL( process );
* z: N6 C' K2 N! P0 P& _# s8 o$ z - }# W% p3 q" Z$ T; u6 [
% B7 p) G, Q; q7 T, V$ d+ K6 B- int ITK_user_main(int argc, char* argv[])
# b- b4 [: ~0 c* U. F% ] - {- w6 h9 R0 x$ a) d
- int
$ ~8 J; P; K' H9 ]9 T* [: `4 B+ P - status = 0; 8 x* M% p! u0 W" c$ G
- - ^& T7 N# `/ g$ y6 a
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );* M: ?' Y9 A0 b+ [( {- d: G# N
- status = ITK_auto_login();6 Y: } ^! a1 X9 H% y) j$ e* N7 U5 I
- # L3 @- T% p j4 S- f
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");7 A6 j5 X# C) p8 w: N
- else
x. M7 ~/ Y- h C5 x, c - {
6 W# J. ?: `* Q E - printf("\nLogin successful!\n\n");
5 h+ k( L* A) p6 S( }$ x - ITK_set_journalling(TRUE);! V2 F4 A% Q0 Q
- do_it();
" D) a( _5 u+ v( e) b# A - }( \: ` i3 L5 b7 U" b( j
- ITK_exit_module(TRUE);
. L% K! y0 `7 x' G: u! } - return status;, }0 C( p. y1 J/ r9 C& k9 O/ B
- }
复制代码 # v0 P# n3 Y4 E* x
2 _- M) _9 e# K) I* i
- I( L1 z) r- M0 p0 E, b |
|